Ajuda para criar componente
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
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
Curtidas 0
Respostas
Giordanocwb
12/12/2007
Coloque, por favor, a parte de código da criação do componente para que a gente possa analisar!
T+
T+
GOSTEI 0
Jonn
12/12/2007
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!!
GOSTEI 0
Giordanocwb
12/12/2007
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+
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+
GOSTEI 0
Jonn
12/12/2007
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!!!
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!!!
GOSTEI 0
Giordanocwb
12/12/2007
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+
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+
GOSTEI 0
Jonn
12/12/2007
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??
mas entao nao tem como criar um componente ao mesmo tempo q é criado a aplicacao??
GOSTEI 0