GARANTIR DESCONTO

Fórum Application.CreateForm() no Delphi 2005 #274046

24/03/2005

0

Caros amigos, ao selecionar uma opção do menu utilizo o seguinte código para chamar o form:

[color=blue:8d1e79bfba]Application.CreateForm(TfrmManPopulacaoVendedor, frmManPopulacaoVendedor);
frmManPopulacaoVendedor.ShowModal;
frmManPopulacaoVendedor.Free;[/color:8d1e79bfba]

No evento OnCreate do form que acabei de chamar testo se o acesso ao banco de dados ocorre com sucesso, caso haja falha na conexão ou outro tipo de erro qualquer finalizava o form e retornava ao form anterior ( no caso o do menu principal ). O problema e que no Delphi 2005 não consigo fazer o sistema cancelar o Oncreate. Após o except quero que o form seja cancelado e volte ao form anterior. abaixo o código do evento OnCreate do form frmManPopulacaoVendedor.

[color=blue:8d1e79bfba]procedure TfrmManPopulacaoVendedor.FormCreate(Sender: TObject);
begin
try
Dm.PopulacaoVendedor.Active := true;
Dm.PopulacaoUF.Active := true;
except
Mensagem(´Não foi possível acessar tabelas de manutenção ´);
frmManPopulacaoVendedor.Close;
end

end;[/color:8d1e79bfba]

No delphi 6/7 funcionava perfeitamente. Alguém poderia por gentileza explicar-me onde estou errando no 2005.
Desde já agradeço.

Marcos


M_gab

M_gab

Responder

Posts

24/03/2005

Bon Jovi

Fica melhor não colocar esse código no evento OnCreate e sim em uma função separada, onde caso dê erro vc nem precisa chamar o Show do Form desnecessariamente.
function TfrmManPopulacaoVendedor.Abre: boolean;
begin
  Result := False;
  try
    Dm.PopulacaoVendedor.Active := true;
    Dm.PopulacaoUF.Active := true;
    Result := True;
  except
    Mensagem(´Não foi possível acessar tabelas de manutenção ´);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Form: TfrmManPopulacaoVendedor;
begin
  Form := TfrmManPopulacaoVendedor.Create(nil);
  try
    if Form.Abre then
      Form.ShowModal;
  finally
    FreeAndNil(Form);
  end;
end;




Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar