Adriano Santos wrote: > Ai galera, o Thiago trabalha comigo aqui. > O que precisamos é o seguinte: > > Nesta função abaixo nós criamos o form passando para a função o nome > dele, porém precisamos saber se o mesmo já foi criado e então apenas dar > um Show no mesmo. Não estamos conseguindo montar corretamente a função. > > Teria que ser mais ou menos isso: > > function AbreForm(AForm: String; AEstilo: TBorderStyle = bsSingle; > AShow: Boolean = True): Boolean; > var > Pc: TPersistentClass; > nome: TForm; > begin > Pc := GetClass('t' + AForm); > if (Pc <> nil) then > {aqui teria que ter uma verificação} > if not Form_Já_Criado_E_Registrado then
Nome := nil; I := 0 while I < Screen.FormCount do begin if Screen.Forms[I] is Pc then Nome := Screen.Forms[I]; Inc(I); end; > begin > with TFormClass(Pc).Create(frmPrincipal) do > try > Show; > finally > Free; > end; Show seguido de Free irá destruir o form logo depois de apresentá-lo. Use ShowModal ou destrua o form só quando ele for fechado (Action := caFree). > end > else > Show; > end; -- João Morais > -------- Mensagem original -------- > De: "Thiago Filiano (America Soft)" <[EMAIL PROTECTED]> > Para: delphi-br@yahoogrupos.com.br > Assunto: [lista-delphi] Como saber se a Classe está ou não registrada? > Data: 14-02-2007 13:44 >> Pessoal, >> >> Bom dia!! >> >> Tenho a seguinte função para chamar os forms: >> >> function AbreForm(AForm: String; AEstilo: TBorderStyle = bsSingle; >> AShow: Boolean = True): Boolean; >> var >> Pc: TPersistentClass; >> nome: TForm; >> begin >> Pc := GetClass('t' + AForm); >> if (Pc <> nil) then >> with TFormClass(Pc) >> >> .Create(frmPrincipal) do >> try >> Show; >> Update; >> finally >> Free; >> end; >> end; >> >> >