Re: [delphi-br] Ajuda em criação de um form.
Ok, porem eu preciso ter esse código no Create do FormA. - Original Message - From: Sérgio T. Uetanabaro To: delphi-br@yahoogrupos.com.br Sent: Monday, May 07, 2007 10:10 AM Subject: RES: [delphi-br] Ajuda em criação de um form. É só vc instanciar FORMB aon inves de FORMA. Ex: Var Form1:TFormA; Begin Form1 := TFormB.Create(nil); restante do codigo Form1.Free; End; []´s Sergio _ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Ricardo Lima Enviada em: segunda-feira, 7 de maio de 2007 09:48 Para: delphi-br@yahoogrupos.com.br Assunto: [delphi-br] Ajuda em criação de um form. Pessoal tenho a seguinte situação. FormA e FormB, o FormB herda do formA, no create do FormA eu queria que seja criada uma stancia do FormB ao inves do FormA. Tipo assim: constructor TFormA.Create(AOwner: TComponent); begin Self := TFormA.Create(AOwner); end; Alguem tem algum ideia? Obrigado a todos. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Ajuda em criação de um form.
Ricardo Lima wrote: Ok, porem eu preciso ter esse código no Create do FormA. Tem um meio de fazer isto de forma eficiente, mas eu preciso que você detalhe um pouco mais o que você precisa fazer. -- Joao Morais - Original Message - From: Sérgio T. Uetanabaro To: delphi-br@yahoogrupos.com.br Sent: Monday, May 07, 2007 10:10 AM Subject: RES: [delphi-br] Ajuda em criação de um form. É só vc instanciar FORMB aon inves de FORMA. Ex: Var Form1:TFormA; Begin Form1 := TFormB.Create(nil); restante do codigo Form1.Free; End; []´s Sergio _ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Ricardo Lima Enviada em: segunda-feira, 7 de maio de 2007 09:48 Para: delphi-br@yahoogrupos.com.br Assunto: [delphi-br] Ajuda em criação de um form. Pessoal tenho a seguinte situação. FormA e FormB, o FormB herda do formA, no create do FormA eu queria que seja criada uma stancia do FormB ao inves do FormA. Tipo assim: constructor TFormA.Create(AOwner: TComponent); begin Self := TFormA.Create(AOwner); end; Alguem tem algum ideia? Obrigado a todos.
Re: [delphi-br] Ajuda em criação de um form.
Eu quero fazer uma alteração na herança do form, antes dele ser criado. Eu fiz esse código constructor TFormMasterCadastro.Create(AOwner: TComponent); type PClass = ^TClass; begin PClass(Self)^ := ClassFormMasterCadastro; inherited; end; Funciona pra eu alterar a classe do form, porem o que eu quero alterar é o parent da classe algo tipo assim: PClass(Self.ClassParent)^ := ClassFormMasterCadastro; Obrigado. - Original Message - From: Joao Morais To: delphi-br@yahoogrupos.com.br Sent: Monday, May 07, 2007 10:32 AM Subject: Re: [delphi-br] Ajuda em criação de um form. Ricardo Lima wrote: Ok, porem eu preciso ter esse código no Create do FormA. Tem um meio de fazer isto de forma eficiente, mas eu preciso que você detalhe um pouco mais o que você precisa fazer. -- Joao Morais - Original Message - From: Sérgio T. Uetanabaro To: delphi-br@yahoogrupos.com.br Sent: Monday, May 07, 2007 10:10 AM Subject: RES: [delphi-br] Ajuda em criação de um form. É só vc instanciar FORMB aon inves de FORMA. Ex: Var Form1:TFormA; Begin Form1 := TFormB.Create(nil); restante do codigo Form1.Free; End; []´s Sergio _ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Ricardo Lima Enviada em: segunda-feira, 7 de maio de 2007 09:48 Para: delphi-br@yahoogrupos.com.br Assunto: [delphi-br] Ajuda em criação de um form. Pessoal tenho a seguinte situação. FormA e FormB, o FormB herda do formA, no create do FormA eu queria que seja criada uma stancia do FormB ao inves do FormA. Tipo assim: constructor TFormA.Create(AOwner: TComponent); begin Self := TFormA.Create(AOwner); end; Alguem tem algum ideia? Obrigado a todos. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Ajuda em criação de um form.
Ricardo Lima wrote: Eu quero fazer uma alteração na herança do form, antes dele ser criado. Eu fiz esse código constructor TFormMasterCadastro.Create(AOwner: TComponent); type PClass = ^TClass; begin PClass(Self)^ := ClassFormMasterCadastro; inherited; end; Funciona pra eu alterar a classe do form, porem o que eu quero alterar é o parent da classe algo tipo assim: PClass(Self.ClassParent)^ := ClassFormMasterCadastro; Quando você cria a instância de uma classe, o compilador reserva espaço suficiente para abrigar todos os membros da classe. A instância é criada antes da sua chamada a PClass(Self)..., e não pelo inherited, portanto o seu hacking pode até ter funcionado, mas a sua dor de cabeça será diretamente proporcional a euforia em botar a coisa toda pra funcionar. Recomendação de quem adora um hacking: foge disso. Ao invés de fazer com que o construtor altere a própria classe, faça com que a chamada seja feita através de um ponteiro para classe: var VFormClass: TFormClass; ... VFormClass := TFormB; ... VMeuForm := VFormClass.Create(nil); limpo, bonito, seguro, orientado a objetos, e o melhor de tudo: funciona muito bem. Pra fechar, você ainda não me disse o que você quer *realmente* fazer. -- Joao Morais
Re: [delphi-br] Ajuda em criação de um form.
Vou explicar o que eu estou querendo fazer: Tenho um FormHeranca que serve de herança para outros forms(tem uns 100 forms herdados dele), e é utilizado em todos os projetos(aplicações) da empresa. Porem em um dos projetos que utiliza esse form como herança sentiu a necessidade de se fazer um código na herança para que funcione em todos os forms somente desse projeto, os forms de outros projetos não precisam desse código, primeiro eu pensei em criar outro form herdando de FormHerança e mudar toda a aplicação para que herdasse desse novo form, ou tentar fazer dessa forma, eu passaria um parametro pro form informando a classe pai e no create eu trocaria essa classe. Entendeu? Qual solução você acha melhor pra esse caso? Obriagado. - Original Message - From: Joao Morais To: delphi-br@yahoogrupos.com.br Sent: Monday, May 07, 2007 1:38 PM Subject: Re: [delphi-br] Ajuda em criação de um form. Ricardo Lima wrote: Eu quero fazer uma alteração na herança do form, antes dele ser criado. Eu fiz esse código constructor TFormMasterCadastro.Create(AOwner: TComponent); type PClass = ^TClass; begin PClass(Self)^ := ClassFormMasterCadastro; inherited; end; Funciona pra eu alterar a classe do form, porem o que eu quero alterar é o parent da classe algo tipo assim: PClass(Self.ClassParent)^ := ClassFormMasterCadastro; Quando você cria a instância de uma classe, o compilador reserva espaço suficiente para abrigar todos os membros da classe. A instância é criada antes da sua chamada a PClass(Self)..., e não pelo inherited, portanto o seu hacking pode até ter funcionado, mas a sua dor de cabeça será diretamente proporcional a euforia em botar a coisa toda pra funcionar. Recomendação de quem adora um hacking: foge disso. Ao invés de fazer com que o construtor altere a própria classe, faça com que a chamada seja feita através de um ponteiro para classe: var VFormClass: TFormClass; ... VFormClass := TFormB; ... VMeuForm := VFormClass.Create(nil); limpo, bonito, seguro, orientado a objetos, e o melhor de tudo: funciona muito bem. Pra fechar, você ainda não me disse o que você quer *realmente* fazer. -- Joao Morais [As partes desta mensagem que não continham texto foram removidas]