Re: [delphi-br] Form Dinamico, erro ao acessar objetos...
2009/2/4 contato.pcsolution : > procedure CreateFormFromName(const FormName : string); > var > fc : TFormClass; > f : TForm; > begin > fc := TFormClass(FindClass(FormName)); > f := fc.Create(Application); > f.Show; > end; Essa rotina tá perigosa. Arruma pra algo mais ou menos assim: function CreateFormFromName(const FormName : string): Boolean; var fc : TClass; f : TForm; begin fc := FindClass(FormName); Result := Assigned(fc) and fc.InheritsFrom(TForm); if Result then fc.Create(Application).Show; end; Se retornar False, o form não foi encontrado. > PARTE QUE ACONTECE O ERRO.. > > procedure TMainForm.Button1Click(Sender: TObject); > begin > FirstForm.Label1.Caption := 'Testando'; > end; Adapte a rotina acima com os truques desse artigo: http://blog.joaomorais.com.br/2008/08/31/dica-gerenciamento-form.html Joao Morais
RE: [delphi-br] Form Dinamico, erro ao acessar objetos...
Negativo! Leia a minha resposta e saberá exatamente o q está acontecendo! Sds. > To: delphi-br@yahoogrupos.com.br > From: jmariogue...@gmail.com > Date: Wed, 4 Feb 2009 12:51:42 -0300 > Subject: Re: [delphi-br] Form Dinamico, erro ao acessar objetos... > > > Aparentemente você tem que fazer um typecast, algo mais ou menos assim: > > > > TFirstForm(FirstForm).Label1.Caption := 'Testando'; > > > > Acredito que a variável FirstForm seja do tipo TForm, onde não existe o > > Label1. > > > > Certo? > > > _ Conheça o Windows Live Spaces, a rede de relacionamentos do Messenger! http://www.amigosdomessenger.com.br/
Re: [delphi-br] Form Dinamico, erro ao acessar objetos...
Aparentemente você tem que fazer um typecast, algo mais ou menos assim: TFirstForm(FirstForm).Label1.Caption := 'Testando'; Acredito que a variável FirstForm seja do tipo TForm, onde não existe o Label1. Certo? [As partes desta mensagem que não continham texto foram removidas]
RE: [delphi-br] Form Dinamico, erro ao acessar objetos...
Se vc prestar bem atenção nesse código que vc postou, vai concluir que a instância FirstForm não foi inicializada, e sim uma instância interna que fica localmente na rotina CreateFormFromName(). E, por conta disso, o erro (exceção que vc não mencionou), com toda certeza é um Access Violation! Sds. > To: delphi-br@yahoogrupos.com.br > From: contato.pcsolut...@yahoo.com.br > Date: Wed, 4 Feb 2009 14:27:38 + > Subject: [delphi-br] Form Dinamico, erro ao acessar objetos... > > > Olá Pessoal, tudo bem? > > > > Tenho uma rotinha que cria os forms dinamicamente com variaveis, no > > qual funciona corretamente.. > > Porém não consigo acessar nenhuma propriedade ou objeto deste form > > pelo "nome dele"... > > > > procurei bastante na internet mas nao achei nada > > > > este link tem o exemplo das rotinas que estou usando... > > > > http://delphi.about.com/library/weekly/aa080905a.htm > > > > procedure CreateFormFromName(const FormName : string); > > var > > fc : TFormClass; > > f : TForm; > > begin > > fc := TFormClass(FindClass(FormName)); > > f := fc.Create(Application); > > f.Show; > > end; > > > > procedure TMainForm.FormCreate( > > Sender: TObject); > > begin > > RegisterClass(TFirstForm); > > RegisterClass(TSecondForm); > > RegisterClass(TThirdForm); > > end; > > > > procedure TMainForm.CreateFormButtonClick( > > Sender: TObject); > > var > > s : string; > > begin > > s := 'TFirstForm'; > > CreateFormFromName(s); > > end; > > > > PARTE QUE ACONTECE O ERRO.. > > > > procedure TMainForm.Button1Click(Sender: TObject); > > begin > > FirstForm.Label1.Caption := 'Testando'; > > end; > _ Cansado de espaço para só 50 fotos? Conheça o Spaces, o site de relacionamentos com até 6,000 fotos! http://www.amigosdomessenger.com.br