Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Form como parametro (https://www.clubdelphi.com/foros/showthread.php?t=34815)

pascalutn2003 22-08-2006 21:33:07

Form como parametro
 
Hola a todos: :)

Estoy creando un componente, ya lo he probado, pero quiero que cuando lo pase de la paleta al form, reconozca el color de este último y lo cambie a un color predeterminado. :rolleyes:

¿Alguien sabe como?
:confused:

roman 22-08-2006 21:38:25

Así a bote pronto, yo diría que en el constructor de la componente:

Código Delphi [-]
constructor TLaComponenteDePascalutn2003.Create(AOwner: TComponent);
begin
  if (AOwner is TForm) then
    Self.Color := TForm(AOwner).Color;
end;

// Saludos

delphi.com.ar 22-08-2006 23:55:07

Si tu componente hereda de TControl, bien podrías utilizar la propiedad ParentColor que por defecto es True.
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TElComponenteDePascalutn2003 = class(TCustomControl)
  protected
    procedure Paint; override;
  published
    property ParentColor;
    property Color;
  end;


  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TElComponenteDePascalutn2003 }

procedure TElComponenteDePascalutn2003.Paint;
begin
  inherited;
  Canvas.Brush.Color := clBlack;
  Canvas.Ellipse(ClientRect);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Color := clBlue;

  with TElComponenteDePascalutn2003.Create(Self) do
  begin
    Parent := Self;
    BoundsRect := Rect(0, 0, 100, 100);
    Visible := True;
  end;

  with TElComponenteDePascalutn2003.Create(Self) do
  begin
    Parent := Self;
    BoundsRect := Rect(100, 0, 200, 100);
    Color := clRed; {El ParentColor pasa a ser False}
    Visible := True;
  end;
end;

end.


La franja horaria es GMT +2. Ahora son las 06:07:16.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi