Проблема с созданием tpaintbox на tpanel
У меня небольшая проблема. Я пытаюсь создать TPaintBox на TPanel следующим образом:
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, я могу видеть кисть. Но, когда родитель изменился на Panel1, ничего не происходит. Любая идея, как я могу это исправить?
Заранее спасибо!
2 ответа
TPanel виден с самого начала?
Кроме того, у TPaintBox нет публичного Brush
собственность (возможно, вы думаете о TShape?). TWinControl делает, но TPaintBox не является потомком TWinControl. Это потомок 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;
но безуспешно... я имею в виду, если я добавляю компонент PaintBox в форму, то код вступает в силу, как и должно, но динамически создает TPaintBox.... не знаю.