Problema con la creazione di tpaintbox su tpanel
Domanda
Ho un piccolo problema. Sto cercando di creare un TPaintBox su un TPanel come questo:
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;
Ora, se cambio il genitore del PaintBox a Form1, posso vedere il pennello. Ma, con i genitori cambiato in Panel1, non succede nulla. Qualsiasi idea di come posso risolvere questo problema?
Grazie in anticipo!
Nessuna soluzione corretta
Altri suggerimenti
È la TPanel visibile per cominciare?
Inoltre, TPaintBox non ha una proprietà Brush
pubblica (forse si sta pensando di TShape?). TWinControl fa, ma TPaintBox non è un discendente TWinControl. Si tratta di un discendente TGraphicControl.
Sì che è stato un errore mio. Ho cambiato il codice per:
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;
, ma senza successo .. Voglio dire, se lascio cadere un componente PaintBox alla forma allora il codice è entrata in vigore come dovrebbe fare, ma la creazione dinamica di una TPaintBox .... Boh.