Fórum Ajuda para criar componente #350459

12/12/2007

0

Boa tarde...
estou criando um componente e tudo esta funcionando, ele é criado quando eu clico no botao sem problema nenhum...

mas eu gostaria que ele fosse criado antes mesmo do form ser inicializado, ou seja, ele precisa ser criado quando a aplicacao esta sendo inicializada...

eu até consigo fazer o evento create do componente executar, mas quando ele chega no atributo self, ele aparece um erro de memoria...

alguem sabe uma solucao para isso??

faloo valeu


Jonn

Jonn

Responder

Posts

12/12/2007

Giordanocwb

Coloque, por favor, a parte de código da criação do componente para que a gente possa analisar!

T+


Responder

Gostei + 0

12/12/2007

Jonn

procedure TBarraGrafico.Componentes(Owen:TComponent);
var Icon:TIcon;
begin

  FEditorChart:=TChartEditor.Create(FEditorChart);

  ListaDeImagem:=TImageList.Create(ListaDeImagem);

  Icon:=TIcon.Create;
  Icon.LoadFromFile(´C:\Documents and Settings\user\Desktop\Trabalhos - Delphi\BarraGrafico\Icone.ico´);
  ListaDeImagem.AddIcon(Icon);

  Self.Images:=ListaDeImagem;
  Self.ShowCaptions:=false;

  FGerenciadorAcao:=TActionManager.Create(FGerenciadorAcao);
  FGerenciadorAcao.Images:=ListaDeImagem;

  AcaoEdit:=TAction.Create(AcaoEdit);
  AcaoEdit.OnExecute:=EditGrafico;
  AcaoEdit.ImageIndex:=0;
  AcaoEdit.Caption:=´Teste´;
  FGerenciadorAcao.AddAction(AcaoEdit,nil,true);

  FBotaoExemplo:=TToolButton.Create(FBotaoExemplo);
  FBotaoExemplo.Style:=tbsButton;
  FBotaoExemplo.Action:=AcaoEdit;
  FBotaoExemplo.Width:=25;
  FBotaoExemplo.Height:=25;
  FBotaoExemplo.Parent:=Self;

end;


esse é o codigo q cria o componente depois q clico no botao e funciona perfeitamente

  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;


e esse é o codigo q inicia a aplicacao e q chama o evento create, mas da erro...

faloo valeu!!


Responder

Gostei + 0

12/12/2007

Giordanocwb

Veja bem, o Self é um parâmetro implícito que temos nas procedures ou functions de uma classe. Ele representa a instância do objeto que estamos tentando referenciar.

No seu caso, naquela linha Self, ele está tentando acessar um objeto do tipo TBarraGrafico.

Verique se isso procede ok!!!

Self, nem sempre é o formulário!!! Imagino que você esteja se confundindo com isso.

T+


Responder

Gostei + 0

13/12/2007

Jonn

Exatamente o self ta se referenciando ao TBarraGrafico, mas o problema é q ele ainda nao foi criado e dai ele da aparesenta um erro sempre que chega no self...

o que eu gostaria de saber é se tem uma forma de fazer referencia ao componente antes mesmo dele se criado, ou entao, cria-lo antes para nao dar erro com o self...

falo valeu!!!


Responder

Gostei + 0

13/12/2007

Giordanocwb

Seguinte, se ele não foi criado ainda, ele não pode chamar Self.

Como que você chama a procedure Componentes do TBarraGrafico?? Para fazer a chamada a ela você tem que ter o objeto criado, concorda comigo??

T+


Responder

Gostei + 0

13/12/2007

Jonn

Certo... eu faço a chamada da procedure Componentes pela function create do proprio componente...

mas entao nao tem como criar um componente ao mesmo tempo q é criado a aplicacao??


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar