在tpanel上创建tpaintbox的问题
题
我有一个小问题。我正在尝试在这样的tpanel上创建一个tpaintbox:
procedure TForm1.mkPaint(S: string);
var PB: TPaintBox;
begin
PB := TPaintBox.Create(Self);
with PB do
begin
Parent := Panel1;
Visible := True;
Name := S;
Height := 100;
Width := 100;
Left := 8;
Top := 8;
// ParentColor := False;
Brush.Style := bsSolid;
Brush.Color := $00000000;
end;
Application.ProcessMessages;
end;
现在,如果我将Paintbox的父母更改为Form1,我可以看到刷子。但是,随着父母更改为面板1,什么也没发生。对我该如何解决的任何想法?
提前致谢!
没有正确的解决方案
其他提示
TPANEL是否可以一开始?
另外,tpaintbox没有公众 Brush
财产(也许您正在考虑TSHAPE?)。 TwinControl确实如此,但Tpaintbox不是一个双感染者。它是TgraphicControl后代。
是的,那是我的错误。我将代码更改为:
pb := TPaintBox.Create(self);
with pb do begin
Parent := Form1;
Visible := true;
Top := 1;
Left := 1;
Width := 250;
Height := 100;
ParentColor := false;
Canvas.Brush.Color := clBlack;
Canvas.Font.Size := 12;
Canvas.Font.Color := clWhite;
Canvas.FillRect(ClientRect);
Canvas.TextOut(1, 1, 'test');
end;
但是没有成功。.我的意思是,如果我将油漆框组件放到表单上,那么代码会像应做的那样生效,但动态创建了一个tpaintbox .... dunno。
不隶属于 StackOverflow