我定义了一个 G_Handle:THandle 全局句柄,发现在当前函数(即Button1Click)中赋值时,能正常画图,
而在 另外函数(比如 Button2Click)中先赋值,再点击画图函数时,就无法实现画图。
刚接触GDI+,很困惑这个问题,盼老手指点迷津~~
procedure TForm1.Button1Click(Sender: TObject);
var
g: TGPGraphics;
p: TGPPen;
begin
GL_Handle:= image1.Canvas.Handle;
g := TGPGraphics.Create(GL_Handle);
p := TGPPen.Create(0, 2);
p.SetColor(aclRed);
g.DrawRectangle(p,10,10,20,20);
g.Free;
p.Free;
Image1.Repaint;
end;
而在 另外函数(比如 Button2Click)中先赋值,再点击画图函数时,就无法实现画图。
刚接触GDI+,很困惑这个问题,盼老手指点迷津~~
procedure TForm1.Button1Click(Sender: TObject);
var
g: TGPGraphics;
p: TGPPen;
begin
GL_Handle:= image1.Canvas.Handle;
g := TGPGraphics.Create(GL_Handle);
p := TGPPen.Create(0, 2);
p.SetColor(aclRed);
g.DrawRectangle(p,10,10,20,20);
g.Free;
p.Free;
Image1.Repaint;
end;
我在另外一个帖子中看到您的回复 Create(form1.Handle, False) 这样创建的TGPGraphics可以重复使用,是不是就是因为Form的句柄是个稳定的句柄,同样的,像Panel的句柄也是稳定的吧?
但是如果要在 TImage 这个控件上实现,该怎么稳定创建呢,TImage好像没有handle句柄属性,
只有canvas.handle 这个句柄.