Erro ao criar um componente

Delphi

18/05/2006

Ola Galera,

Estou tentando criar um novo componente baseado no TDBRadioButton. No create do componente peço para ser criado 2 radiobuttons. Compilo e instalo o componente certinho. Quando vou colocar o componente no form ele da o seguinte erro: [b:50bf7987b2]Control ´´ has no parent window[/b:50bf7987b2] .
Ja percebi que o erro esta relacionado a esta linha [b:50bf7987b2]Items.Add(´CGC´)[/b:50bf7987b2].

ja tentei usar .Parent:=self e não deu certo, já não sei mais o que fazer. Caso alguem puder me ajudar agradeço.
Abaixo segue fonte:



unit DBRGCpfCGC;

interface

uses
SysUtils, Classes, Controls, StdCtrls, ExtCtrls, DBCtrls,Messages,Dialogs,DB;

type
TDBRGCpfCGC = class(TPanel)
EdtCGCCPF : TDBEdit;
EdtRGIE : TDBEdit;
DBRGPessoa : TDBRadioGroup;
private


{ Private declarations }
protected
{ Protected declarations }

public
{ Public declarations }
constructor Create (AOwner: TComponent); override;
destructor Destroy; override;

published
{ Published declarations }


end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents(´ComponentesKronus´, [TDBRGCpfCGC]);
end;


{ TDBRGCpfCGC }

constructor TDBRGCpfCGC.Create(AOwner: TComponent);
begin
inherited create (Aowner);
[i:50bf7987b2]//Parent:=self; [/i:50bf7987b2] [color=red:50bf7987b2]Tentei isso e não deu certo[/color:50bf7987b2]
DBRGPessoa:=TDBRadioGroup.Create(Self);
EdtCGCCPF:=TDBEdit.Create(DBRGPessoa);
EdtRGIE:=TDBEdit.Create(DBRGPessoa);
BevelInner:=bvNone;
BevelOuter:=bvNone;
Caption:=´´;
Height:=150;
Width:=250;
Items.Add(´CGC´); [color=red:50bf7987b2]O erro da aqui[/color:50bf7987b2]

end;



destructor TDBRGCpfCGC.Destroy;
begin

inherited;
end;



end.


Educacau

Educacau

Curtidas 0

Respostas

Os1000r

Os1000r

18/05/2006

Olá,,,

Como vc esta criando um componente visual, é necessário fornecer um container (form, panel,etc) para que ele saiba onde será criado e e quem é seu pai.

No create do componente acrescente o seguinte:

// Atribua a propriedade ParentWindow do componente o Handle do
// form no qual vc o está colocando.
TDBRadioButton.ParentWindow:=tForm.handle 


Fazendo isso deve funcionar direitinho..

Abraço


GOSTEI 0
POSTAR