Fórum Form mdi x form Normal #344688
18/08/2007
0
Imagine que estou num campo dbedit do tipo codigoPaciente,
através de um atalho eu chame um form de pesquisa (mdi),
só que quero que os comandos abaixo da execução do form
fiquem esperando enquanto eu nao fechar o form...
Não sei se expliquei direito...
segue um pedaço do código:
frm_pesquisa_clientes.show; <aqui quero que só execute depois de ter dado um clique no botao seleciona deste form, queria fazer isto sem ter q dar um .showmodal travando a aplicação neste ponto> if not (frm_pesquisa_clientes.chave_pk=´´) then begin Tabelais_paciente.value:=strtoint(frm_pesquisa_clientes.chave_pk); db5.Text:=frm_pesquisa_clientes.chave_pk; atualiza_paciente; end;
Farnetani
Curtir tópico
+ 0Posts
22/08/2007
Jáder Medeiros
Gostei + 0
22/08/2007
Marcosrocha
Gostei + 0
23/08/2007
Aschaves
Fazendo como se o form pesquisa fosse showmodal, não pode sair enquanto não clicar no OK?, testa o codigo abaixo, que simula um showmodal.
1º - Ao criar o form seta uma variavel logica para false (FORMCREAT)
2º - Ao fechar o form testa se a variavel é true (FORMCLOSEQUERY)
3º - Ao sair do form sem fechar, testa se a variavel é true (FORMDEACTIVATE)
var
FormPesq: TFormPesq;
Podefechar :boolean;
implementation
{$R *.dfm}
procedure TFormPesq.FormCreate(Sender: TObject);
begin
PodeFechar := False; // define a variavel
// seu codigo em diante
.
.
.
end;
// Aqui voce define em um button ou outro evento qualquer a condição verdadeira para fechar
procedure TFormPesq.Button1Click(Sender: TObject);
begin
PodeFechar := True; //
// seu codigo em diante
.
.
.
end;
procedure TFormPesq.FormClose(Sender: TObject; var Action: TCloseAction);
begin
formPesq.Close := caFree;
end;
// Se tentar fechar o form
procedure TFormPesq.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := True;
if not podefechar then
CanClose := False;
end;
// se tentar ir para outro form já aberto
procedure TFormPesq.FormDeactivate(Sender: TObject);
begin
if not PodeFechar then
begin
(sender as Tform).SetFocus;
(sender as Tform).BringToFront
end;
end;
end.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)