Janela ativa para popup....

Delphi

06/01/2004

Amigos, o que eu gostaria de fazer é o seguinte: Eu tenho um menu popup, e ele vai funcionar para todas as minhas forms, mas nele há comandos de inicialização de form, inclusive o da form atual, o que eu quero fazer é ao aparecer o popup ele verificar por qual form ele está sendo executado, para assim desabilitar a opção de inicialização dessa mesma form no popup... explicando melhor, seu eu abrir a form de cadastro de computador e no menu tem essa opção, eu quero que, caso eu faça aparecer o menu popup de novo a opção de abrir a tela de cadastro de computadores esteja desabilitada.... mas se eu estiver em outra janela ela volte a se habilitar de novo... deu pra entender?? Se não deu perguntem... falta só isso pra eu terminar minha aplicação... se alguém puder me ajudar ficarei muito grato... desde já agradeço! :)


Marshall Mathers

Marshall Mathers

Curtidas 0

Respostas

Eag

Eag

06/01/2004

Se sua aplicação for do tipo MDI no evento OnPopup do popup vc verifica qual form está ativo da seguinte forma.

procedure TForm1.PopupMenu1Popup(Sender: TObject);
begin
PopupItem1.Enabled:= FormPrincipal.ActiveMDIChild <> Form1;
end;


GOSTEI 0
Marshall Mathers

Marshall Mathers

06/01/2004

Ok... mas num é MDI.... eu já tentei usar o evento onpopup fazendo o seguinte:

1º - Eu crio os formulários só quando eles são chamados;
2º - No evento onClose/onDestroy do form eu coloco: Form1:=[b:e8ec8855f2]nil[/b:e8ec8855f2]
3º - Isso quer dizer que na variável de criação da form ele vai setar nulo e ae quando eu abro o form a variável muda o status, saindo de [b:e8ec8855f2]nil[/b:e8ec8855f2] e no onpopup então eu testo:


IF Form1<>[b:e8ec8855f2]nil[/b:e8ec8855f2] then OpcaodoPopupdessaform.Enabled:=False;


Só que não está dando certo... aonde eu estou errando... ou alguém pode me ajudar??? Me dar outra opção pra eu fazer isso...
Desde já agradeço.


GOSTEI 0
Eag

Eag

06/01/2004

tente o seguinte

if Form1.Handle = GetActiveWindow then
OpcaodoPopupdessaform.Enabled:= False
else
OpcaodoPopupdessaform.Enabled:= True;


GOSTEI 0
Marshall Mathers

Marshall Mathers

06/01/2004

Amigo... coloquei o código que vc me deu no evento onpopup e não deu certo... não sei aonde posso estar errando....
Estou pensando dessa forma... o popup é acionado na tela principal e ae ele está com todas as opções...tá, eu escolho a tela1 e vou pra ela... a tela1 usa o mesmo popup da janlea principal... mas como eu já estou na tela1 o popup não pode deixar habilitada a opção de ir para a tela1 de novo... então somente na tela1 a opção da tela1 do popup ficaria desabilitada e a mesma coisa para outras telas do programa... entendeu??? Acho q deu pra explicar...
Se alguém souber uma forma de me ajudar eu ficaria muito grato e desde já agradeço.

Bye


GOSTEI 0
Marshall Mathers

Marshall Mathers

06/01/2004

Corrigindo... o código funciona sim... testei num aplicaçãozinha aqui e deu certo... só que no meu num ker funcionar... num sei pq.. tá td igual... só a diferença q eu estou usando o componente Transpear XP, akle q dá a aparência do XP ao programa e tem nele um componente de form que ocupa a área do form toda... mas acho q isso não interfere já q o popup é acionado pela form e não pelo componente... OU teria alguma coisa haver com eu estar criando as forms em tempo de execução?? :roll: :roll: :? :?
Se alguém me ajudar, obrigado.


GOSTEI 0
POSTAR