Como saber qual form chamou um segundo form?

Delphi

27/09/2006

Caros colegas,

Numa completa falta de memória, o esquecimento total me pegou:
Preciso:

Chamar um segundo form (pesquisas genéricas) que retornam dados, mas preciso saber qual form foi que disparou/chamou esse form pesquisa!

Problema
To Testando na hora de retornar os dados do form pesquisa com
TFORM1 <> nil then...
instruções
TFORM2 <> nil then
instruções
TFORM3 <> nil then
instruções

Só que alguns destes forms poderão estar aberto e com isso gerar um erro. Preciso de algo que funcione melhor do que o ´NIL´

OBRIGADO aos que me ajudarem!


Microbios

Microbios

Curtidas 0

Respostas

Micheus

Micheus

27/09/2006

Chamar um segundo form (pesquisas genéricas) que retornam dados, mas preciso saber qual form foi que disparou/chamou esse form pesquisa!

uma opção seria parametrizar na chamada, assim provavelmente vc não teria qualquer tipo de problema.
type
  TFrmPesquisa = class(TForm)
  private
    InTipoPesquisa :integer;
  public
    procedure Pesquisa(aInTipoPesquisa :integer);
  end;

procedure FrmPesquisa.Pesquisa(aInTipoPesquisa :integer);
begin
  InTipoPesquisa := aInTipoPesquisa;
  ShowModal;   // ou show
  ...
end;
...
procedure FrmPesquisaBtnOK(Sender :TObject);
begin
  case InTipoPesquisa of
    1 : begin// instruções para tipo um
    2 : // instruções para tipo dois
    3 : // instruções para tipo três
  end;
end;

[]s


GOSTEI 0
Microbios

Microbios

27/09/2006

Valeu Micheus,

Não é bem isso... mas aproveitei pra guardar a dica! :D

o que eu quero saber, explicando melhor, é: Qual foi o form que chamou o form pesquisa! Já que o form pesquisa pode ser chamado por vários outros forms... Qual chamou ele por último?

Obrigado e valeu pela dica!


GOSTEI 0
Delmar

Delmar

27/09/2006

uma possibilidade é passar um parametro em suas chamada modal ou showmodal


veja se este link pode te ajudar

http://forum.devmedia.com.br/viewtopic.php?t=12877&highlight=&sid=085f984fdfe30f7ca63791c30e323bb2

Delmar


GOSTEI 0
Adelor Silva

Adelor Silva

27/09/2006

Em uma aplicação que estou estudando e desenvolvendo fiz da seguinte forma...

No FormPrincipal, criei uma variavel (Formulario : String)

Cada formulário que eu abro, alimento a Variável com um nome... Ex: (Formulario := FormCadastro)

No FormPesquisa, fiz assim...

If (Formulario = FormCadastro) then
begin
digita suas condições
end;

if (Formulario = ´´ ´´) then
begin
digite suas condições
end;

Quando eu fecho o FormCadastro, eu limpo a (Variavel Formulario)

Pra mim funcionou legal... acredito ter formas mais corretas, mas pra mim funcionou legal...

espero ter ajudado... Um Abraço...


GOSTEI 0
POSTAR