1、
procedure TForm1.PaintBox1Paint(Sender: TObject; Canvas: TCanvas); var bitmap :TBitMap; pt1, pt2 :TPointF; begin pt1 := TPointF.Create(0, 0); pt2 := TPointF.Create(PaintBox1.Width, PaintBox1.Width); //ShowMessage('yes'); bitmap := TBitMap.Create(Trunc(PaintBox1.Width), Trunc(PaintBox1.Width)); try bitmap.Canvas.BeginScene(); // ZC: 做画图工作时,这一句必须要 bitmap.Canvas.Stroke.Kind := TBrushKind.bkSolid; bitmap.Canvas.Stroke.Color := TAlphaColorRec.Black; bitmap.Canvas.DrawLine(pt1, pt2, 1); bitmap.Canvas.EndScene; // ZC: 做画图工作时,这一句必须要 //TCanvas.CopyBitmap(bitmap, Canvas.Bitmap); //PaintBox1.Canvas.BeginScene(); // ZC: 这里,可以不执行这一句 PaintBox1.Canvas.DrawBitmap( bitmap, TRectF.Create(0, 0, PaintBox1.Width, PaintBox1.Width), TRectF.Create(0, 0, PaintBox1.Width, PaintBox1.Width), 1); //PaintBox1.Canvas.EndScene; // ZC: 这里,可以不执行这一句 finally if Assigned(bitmap) then bitmap.Free; end; end;
2、
3、
本文提供了一个使用Delphi进行绘图的例子代码。通过创建一个简单的PaintBox组件,利用TBitMap来绘制从左上角到右下角的黑色线条,并展示了如何在Paint事件中完成这一过程。该示例还介绍了如何将绘制的内容显示在PaintBox中。
2152

被折叠的 条评论
为什么被折叠?



