GARANTIR DESCONTO

Fórum Form mdi x form Normal #344688

18/08/2007

0

Pessoal, preciso saber como faço por exemplo para fazer o seguinte:

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

Farnetani

Responder

Posts

22/08/2007

Jáder Medeiros

Por que você não quer usar o ShowModal?


Responder

Gostei + 0

22/08/2007

Marcosrocha

Janelas sem Modal dificultam muito o controle sobre outras telas... caso realmente seja necessário a dispensa do método. Mas pelo que eu entendi você só quer deixar o usuário fechar a pesquisa se ele selecionar um Registro, é isso? :?


Responder

Gostei + 0

23/08/2007

Aschaves

Deixa eu ver se entendi, você está em um form qualquer, dispara um form de pesquisa e não quer que o usuário saia do form de pesquisa sem passar por determinada condição?

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.



Responder

Gostei + 0

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

Aceitar