formulario invocador
tenho um formulario padrao de pesquisa de registros em banco de dados que é chamado por outros formularios do meu sistema. meu problema é o seguinte: preciso saber qual formulario esta invocando o formulario de pesquisa, sem ter que definir no codigo cada formulario.
flaviosan
flaviosan
Flaviosan
Curtidas 0
Respostas
Falinden
12/02/2004
Flaviosan,
Coloque o código no OnCreate de cada form e acesse a variável
[color=red:9a19e2a9f0]var
Formulario_Ativo :string; // variável global
procedure Tform.FormCreate(Sender: TObject);
begin
Formulario_Ativo := TForm(Sender).Name;
end;[/color:9a19e2a9f0]
Espero ter ajudado,
Coloque o código no OnCreate de cada form e acesse a variável
[color=red:9a19e2a9f0]var
Formulario_Ativo :string; // variável global
procedure Tform.FormCreate(Sender: TObject);
begin
Formulario_Ativo := TForm(Sender).Name;
end;[/color:9a19e2a9f0]
Espero ter ajudado,
GOSTEI 0
Vinicius2k
12/02/2004
Colega,
:idea:
crie uma variável MeChamou : String, para cada form q eh chamado...
antes de chamar vc faz : formY.QuemMeChamou:= formX.name...
Espero ter ajudado...
:idea:
crie uma variável MeChamou : String, para cada form q eh chamado...
antes de chamar vc faz : formY.QuemMeChamou:= formX.name...
Espero ter ajudado...
GOSTEI 0
Flaviosan
12/02/2004
Flaviosan,
Coloque o código no OnCreate de cada form e acesse a variável
[color=red:c4cd8520ea]var
Formulario_Ativo :string; // variável global
procedure Tform.FormCreate(Sender: TObject);
begin
Formulario_Ativo := TForm(Sender).Name;
end;[/color:c4cd8520ea]
Espero ter ajudado,
deixa eu ver se entendi: coloco a variavel formulario_ativo no formulario que é invocado, no evento oncreate, certo? e depois no mesmo evento faço a variavel receber o nome do formulario invocador usando TForm(Sender).Name? Não entendi como funciona este ´sender´
desculpe a minha ignorancia :P
flaviosan
GOSTEI 0
Vinicius2k
12/02/2004
deixa eu ver se entendi: coloco a variavel formulario_ativo no formulario que é invocado, no evento oncreate, certo? e depois no mesmo evento faço a variavel receber o nome do formulario invocador usando TForm(Sender).Name? Não entendi como funciona este ´sender´
desculpe a minha ignorancia :P
flaviosan
Colega, na rotina q falinden de passou, a variável formulário_ativo deve ser declarada de forma global, no form principal da aplicação... desta forma ele pode ser acessada por qualquer outro form desde q o form principal esteja na lista de uses deste form q foi chamado...
neste código,
Formulario_Ativo := TForm(Sender).Name;
cada vez que um novo form é criado a variável muda de valor recebendo o nome do formulário atual... isso lhe indica qual é o form atual, entende ?
o código está escrito bem formalmente... vc poderia usar simplesmente Formulario_ativo:= Name; resumidamente o Sender significa o próprio Form...
:!:
Só tem um porém : pelo q eu entendi vc não quer saber quem está ativo e sim quem chamou então, acho q a minha resposta seria a mais apropriada para o seu caso... para usar seria dessa forma :
Todos seus forms teriam declaradas uma variável ´Chamador´ do tipo String; (declare na seção ´var´ da unit de cada form)
var .... Chamador: String; ....
e este é o único código de vc precisa colocar... em qualquer uma das procedures ou funções que vc precisar saber qual form que chamou o form atual é só vc ler a variável Chamador...
No Form que chama os outros antes do show/showmodal vc entra com:
FormY.Chamador:= Name;
antes de ser exibido a variável ´Chamador´ do FormY estará recebendo o nome do FormX que é quem o está chamando... dessa forma mesmo que vc faça uma cascata de 3 ou mais forms vc saberá sempre quem chamou quem bastando q para isso passe o valor para variável antes do show...
GOSTEI 0
Roberson
12/02/2004
Utilize a variavel do delphi Screem.
Screem.Forms[0].asname - eh o nome do seu formulario ativo.
Screem.Forms[1].asname - eh o nome do formulario que o chamou.
espero ter ajudado..
Screem.Forms[0].asname - eh o nome do seu formulario ativo.
Screem.Forms[1].asname - eh o nome do formulario que o chamou.
espero ter ajudado..
GOSTEI 0