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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top