Tchê, não vou responder a tua pergunta, mas ta ai uma dica de como criar (se 
preciso) os forms de forma otimizada:

 if not assigned(frmCadCli) then
  frmCadCli := TfrmCadCli.Create(self);
 with frmCadCli do Begin
  Show;
  // Aqui vc pode colocar outras instruções
  // a serem executadas após a abertura do
  // form, tipo mudar a página de um PageControl
 end;

Você poderia implementar assim:

procedure TfrmPrincipal.criatela(TFormulario: TFormClass;
  Formulario: TForm);
begin

 if not assigned(Formulario) then
  Formulario := TFormulario.Create(self);
 with Formulario do begin
  Show;
  BringToFront;
 end;
end;

Fica ai a dica.

Abraço,

José Luis
  ----- Original Message ----- 
  From: Carlos 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Sunday, December 26, 2004 7:16 PM
  Subject: [delphi-br] Problema com procedure


  Ola, pessoal.
  Minha situação é a seguinte: Para criar uma tela uso o seguinte:
  /procedure TfrmPrincipal.Funcionrios1Click(Sender: TObject);
  var
    found, i: Integer;
  begin
    found:= -1;
    for i:=0 to Screen.FormCount -1 do
    if Screen.Forms[i] is TfrmCadFuncionarios then
    found:= i;
    if found >= 0 then
    Screen.Forms[found].Show
    else
    begin
    frmCadFuncionarios:= TfrmCadFuncionarios.Create(Self);
    frmCadFuncionarios.Show;
    end;
  /Se a tela está aberta, coloco o foco nela, senão crio e abro.
  Criei a procedure abaixo para automatizar o processo:
  /procedure TfrmPrincipal.criatela(TFormulario: TFormClass;
    Formulario: TForm);
  var
    found, i: Integer;
  begin
    found:= -1;
    for i:=0 to Screen.FormCount -1 do
    if Screen.Forms[i] is TFormulario then
    found:= i;
    if found >= 0 then
    Screen.Forms[found].Show
    else
    begin
    Formulario:= TFormulario.Create(Self);
    Formulario.Show;
    end;
  end;/
  Agora chamo desta maneira:
  /criatela(TfrmCadFuncionarios, frmCadFuncionarios);
  /Só que está acontecendo algo estranho: tenho um dm com os componentes 
  sqldataset, datasetprovider e clientdataset. Quando vou criar um novo 
  registro, dexei no frmcadfuncionários um currencyedit que deve ser 0 
  (zero):
  /procedure TDMATC.cds_cadfuncNewRecord(DataSet: TDataSet);
  begin
  frmcadfuncionarios.CurrencyEdit1.Value:= 0;/
  Só que ele retorna dizendo que houve acces violation. To verificando e 
  ele diz que/
  //frmcadfuncionarios.CurrencyEdit1.Value:= 0; 
  (//frmcadfuncionarios.CurrencyEdit1 inacessible value)./
  O que pode estar errado? Declarei a criatela na seção public do form 
  principal que chama as outras telas e os form criados são mdichild.

    ----------

  No virus found in this outgoing message.
  Checked by AVG Anti-Virus.
  Version: 7.0.298 / Virus Database: 265.6.5 - Release Date: 26/12/2004


  [As partes desta mensagem que não continham texto foram removidas]



  -- 
  <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

  Para ver as mensagens antigas, acesse:
  http://br.groups.yahoo.com/group/delphi-br/messages

  Para falar com o moderador, envie um e-mail para:
  [EMAIL PROTECTED] ou [EMAIL PROTECTED]



        Yahoo! Grupos, um serviço oferecido por: 
             
             
                      
             
       


------------------------------------------------------------------------------
  Links do Yahoo! Grupos

    a.. Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/
      
    b.. Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]
      
    c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço 
do Yahoo!. 



[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a