Проблема с созданием tpaintbox на tpanel - PullRequest
0 голосов
/ 14 ноября 2010

У меня маленькая проблема.Я пытаюсь создать 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 ]

0 голосов
/ 18 ноября 2010

Да, это была моя ошибка. Я изменил код на:

  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 .... не знаю.

0 голосов
/ 18 ноября 2010

Виден ли TPanel с самого начала?

Кроме того, у TPaintBox нет открытого свойства Brush (возможно, вы думаете о TShape?). TWinControl делает, но TPaintBox не является потомком TWinControl. Это потомок TGraphicControl.

...