tem que ser como string? para isso registre a classe na seção initialization do form:
initialization RegisterClass(TForm1); finalization UnRegisterClass(TForm1); então no formulario que irá chamar vc nao precisa declarar no uses a unit do form :) aí vc chama dessa maneira. procedure TfrmPrincipal.CriaForm(const NomeForm: string); var TClasse : TPersistentClass; Form : TForm; begin Form := nil; TClasse := GetClass(NomeForm); if (TClasse <> nil) {and TClasse.InheritsFrom(TForm)} then Form := TFormClass(TClasse).Create(self); if not Assigned(Form) then MessageDlg(_('Form não registrado!'), mtError, [mbOK], 0) else begin Form.Name := Self.Name + '_' + FormatFloat('00', ComponentCount + 1); Form.Caption := Caption;// + ' ' + FormatFloat('00', ComponentCount + 1); Form.Show; end; end; espero ter ajudado, qq coisa estamos aih. JB Software Developer [EMAIL PROTECTED] --- Em delphi-br@yahoogrupos.com.br, alessandra porto <[EMAIL PROTECTED]> escreveu > > > > Chamo meu formularios assim: > > > if FmAgenda = nil then > begin > Application.CreateForm(TFmAgenda,FmAgenda); > FmAgenda.ShowModal; > end; > > > A ideia e criar uma variavel para informar o nome do formulario que > sera aberto naquele momento > > > var > formulario:string; > > > formulario:=teste; > > if teste = nil then > begin > Application.CreateForm(T+teste,teste); > teste.ShowModal; > end; > > com string dá erro como posso fazer isso? > > > > fico agradecida aos colegas que ajudarem > > > Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. > http://br.new.mail.yahoo.com/addresses > > [As partes desta mensagem que não continham texto foram removidas] >