Pregunta

Tengo un pequeño problema. Estoy intentando crear un TPaintBox en un TPanel como esto:

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;

Ahora, si cambio de Padres de la PaintBox a Form1, puedo ver el cepillo. Pero, con el padre cambió a Panel1, no pasa nada. Cualquier idea de cómo puedo solucionar este problema?

Gracias de antemano!

No hay solución correcta

Otros consejos

Es la TPanel visibles para empezar?

Además, TPaintBox no tiene una propiedad Brush pública (tal vez usted está pensando en TShape?). TWinControl hace, pero TPaintBox no es un descendiente TWinControl. Es un descendiente TGraphicControl.

Si, eso fue un error mío. He cambiado el código para:

  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;

pero sin éxito .. Es decir, si se me cae un componente PaintBox a la forma a continuación, el código está haciendo efecto como debería hacerlo, pero crear dinámicamente un TPaintBox .... No sé.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top