Question

J'ai un petit problème. Je suis en train de créer un TPaintBox sur un TPanel comme ceci:

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;

Maintenant, si je change à Form1, le parent du PaintBox je peux voir la brosse. Mais, avec les parents a changé à Panel1, rien ne se passe. Toute idée de comment puis-je résoudre ce problème?

Merci à l'avance!

Pas de solution correcte

Autres conseils

TPanel est visible pour commencer?

En outre, TPaintBox ne dispose pas d'une propriété publique de Brush (peut-être que vous pensez TShape?). TWinControl fait, mais TPaintBox est pas un descendant TWinControl. Il est un descendant TGraphicControl.

Oui, ce fut une erreur de la mienne. J'ai changé le code:

  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;

mais sans succès .. je veux dire, si je laisse tomber un composant PaintBox à la forme alors le code prend effet comme il se doit, mais de créer dynamiquement un TPaintBox .... je sais pas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top