2010-11-14 6 views
0

J'ai un petit problème. Je suis en train de créer un TPaintBox sur un TPanel comme ceci:Problème lors de la création de tpaintbox sur le 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; 

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

Merci d'avance!

Répondre

0

Le TPanel est-il visible pour commencer?

De plus, TPaintBox n'a pas de propriété publique Brush (vous pensez peut-être à TShape?). TWinControl le fait, mais TPaintBox n'est pas un descendant de TWinControl. C'est un descendant de TGraphicControl.

+0

De toute façon, je viens de l'avoir. Bien que la boîte de peinture ait été créée avec succès, je ne savais pas que je devais travailler avec l'événement onPaint afin de le rendre visible. – Demetris

+0

qu'avez-vous fait pour le faire fonctionner? –

0

Ouais c'était une erreur à moi. 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 .... ne sais pas.

Questions connexes