新建一窗体,要在新建窗体显示时显示在其上画出的图形,下面代码不能显示图形,
只有在窗体显示后才能在其上画图形,怎样才能实现在窗体显示时也显示图形?
procedure TForm1.Button2Click(Sender: TObject);
begin
Form2:=TForm.Create(nil);
Form2.Left:=Left+5;
Form2.Top:=Top+5;
Form2.Width:=Width;
Form2.Height:=Height;
Form2.Canvas.MoveTo(10,10);
Form2.Canvas.LineTo(200,10);
Form2.Canvas.LineTo(200,200);
Form2.Canvas.LineTo(10,200);
Form2.Canvas.LineTo(10,10);
Form2.Canvas.Arc(100,100,200,200,100,150,200,150);
Form2.Canvas.Arc(100,100,200,200,200,150,100,150);
Form2.Show;
end;
只有在窗体显示后才能在其上画图形,怎样才能实现在窗体显示时也显示图形?
procedure TForm1.Button2Click(Sender: TObject);
begin
Form2:=TForm.Create(nil);
Form2.Left:=Left+5;
Form2.Top:=Top+5;
Form2.Width:=Width;
Form2.Height:=Height;
Form2.Canvas.MoveTo(10,10);
Form2.Canvas.LineTo(200,10);
Form2.Canvas.LineTo(200,200);
Form2.Canvas.LineTo(10,200);
Form2.Canvas.LineTo(10,10);
Form2.Canvas.Arc(100,100,200,200,100,150,200,150);
Form2.Canvas.Arc(100,100,200,200,200,150,100,150);
Form2.Show;
end;
begin
Form2:=TForm.Create(nil);
Form2.Left:=Left+5;
Form2.Top:=Top+5;
Form2.Width:=Width;
Form2.Height:=Height;
Form2.Show; //这一句放上来
Form2.Canvas.MoveTo(10,10);
Form2.Canvas.LineTo(200,10);
Form2.Canvas.LineTo(200,200);
Form2.Canvas.LineTo(10,200);
Form2.Canvas.LineTo(10,10);
Form2.Canvas.Arc(100,100,200,200,100,150,200,150);
Form2.Canvas.Arc(100,100,200,200,200,150,100,150);
end;
我本来的问题是:要做一个透明窗体Form2,在其上只显示画出的图形,原想可能是窗体显示时图形没显示的原因,这样做好像也不行,谁能帮我解决再加50分。
procedure TForm1.Button2Click(Sender: TObject);
begin
Form2:=TForm.Create(nil);
Form2.BorderStyle:=bsNone;
Form2.BorderIcons:=[];
Form2.Color:=clRed;
Form2.Left:=Left;
Form2.Top:=Top;
Form2.Width:=Width;
Form2.Height:=Height;
BeginPath(Form2.Canvas.Handle);
SetBkMode(Form2.Canvas.Handle,TRANSPARENT);
Form2.Canvas.Pen.Color :=clRed;
Form2.Canvas.Pen.Width :=3;
Form2.Canvas.MoveTo(10,10);
Form2.Canvas.LineTo(200,10);
Form2.Canvas.LineTo(200,200);
Form2.Canvas.LineTo(10,200);
Form2.Canvas.LineTo(10,10);
Form2.Canvas.Arc(100,100,200,200,100,150,200,150);
Form2.Canvas.Arc(100,100,200,200,200,150,100,150);
EndPath(Form2.Canvas.Handle);
SetWindowRgn(Form2.Handle,PathToRegion(Form2.Canvas.Handle),true);
Windows.SetParent(Form2.Handle,Handle);
Form2.Show;
end;
procedure TForm1.Button1Click(Sender: TObject);
var form2:tform;
begin
Form2:=TForm.Create(nil);
Form2.Brush.Style:=bsClear;
Form2.BorderStyle:=bsNone;
Form2.Left:=Left+5;
Form2.Top:=Top+5;
Form2.Width:=Width;
Form2.Height:=Height;
Form2.Show; //这一句放上来
Form2.Canvas.MoveTo(10,10);
Form2.Canvas.LineTo(200,10);
Form2.Canvas.LineTo(200,200);
Form2.Canvas.LineTo(10,200);
Form2.Canvas.LineTo(10,10);
Form2.Canvas.Arc(100,100,200,200,100,150,200,150);
Form2.Canvas.Arc(100,100,200,200,200,150,100,150);
end;