Hint no Statusbar

19/02/2006

0

Bom Dia lista,

Tenho três FORM: PRINCIPAL, CADASTRO e TRÂMITE, também têm um STATUSBAR e um PROGRESSBAR.
Então fica assim no STATUSBAR:

Painel 0 = PROGRESSBAR;
[b:234e3a8e26]Painel 1 = ??[/b:234e3a8e26]
Painel 2 = Dados dos formulários ao movimento do mouse;
Painel 3 = Data e no;
Painel 4 = Horas;

Meu pensamento: Que no PAINEL 1 fique o nome do formulário em foco,
mas quando esse fosse fechado o nome do formulário saísse do painel
e não restando mais nenhum formulário em foco que mostre o nome do formulário principal.

Conseguir o mínimo, pois no MainMenu que chama
cada formulário coloquei no seu onclick dessa forma:

Statusbar1.Panels[1].Text := ´O NOME DO FORMULÁRIO´;

Dessa forma a cada click chama o formulário e se chamar todos, sendo que primeiro um e depois outro e outro, nesta proporção vai mudando no painel, mas depois que fecho o que foi aberto por último, o anterior que fica com o
foco, neste o nome não aparece no painel e sim o que foi fechado.
Pessoal deu pra entender? Alguém poderia dar uma dica pro iniciante aqui de
como posso fazer esse processo? Valeu e obrigado desde já.


Jrcosmoluis

Jrcosmoluis

Responder

Posts

19/02/2006

Edilcimar

por que em vez de colocar o nome no status bar vc não coloca no próprio form (no caption), aí vc sermpre terá o nome do form!


Responder

19/02/2006

Marco Salles

amigo existem muitas maneiras de se realizar isto

no meu modo de ver ha melhor talves seje com o objeto global application (a partir do delphi5)

porem como parece ser simples o que voce quer ,podemos usar o evento (OnActive dos formularios)

voce disse que:
Conseguir o mínimo, pois no MainMenu que chama cada formulário coloquei no seu onclick dessa forma: Statusbar1.Panels[1].Text := ´O NOME DO FORMULÁRIO´;


voce deve substitui esta linha de codigo e escrever no evento OnActive de cada formulario a seguinte instrução

procedure TPRINCIPAL.FormActivate(Sender: TObject);
begin
PRINCIPAL.StatusBar1.Panels[0].Text:=(sender as tform).caption;
end;


procedure TCADASTRO.FormActivate(Sender: TObject);
begin
PRINCIPAL.OnActivate(sender);
end;


procedure TTRAMITE.FormActivate(Sender: TObject);
begin
PRINCIPAL.OnActivate(sender);
end;


e claro que para isto compilar os devidos formularios devem ser definidos na secção uses correpondentes

mas digo mais , existemmuitas formas de se realizar isto...


Responder

19/02/2006

Jrcosmoluis

Amigos,

[b:d29caae500]Edilcimar[/b:d29caae500] mais uma vez obrigado pela sugestão e [b:d29caae500]Marco Salles [/b:d29caae500]eu conseguir fazer (com ajuda é claro) dessa forma aí em baixo. E como você mesmo disse, tem varias maneiras de se fazer... agora vou testar a sua também.

Obrigado pela ajuda e atenção.

PARA COLOCAR O NOME DO FORMULÁRIO NO STATUSBAR DO FORM PRINCIPAL

1 – CRIA A “PROCEDURE AOTROCARFORM”;

[b:d29caae500]procedure tform1.aotrocarform(sender: tobject);
begin
statusbar1.panels[1].text := screen.activeform.caption;
end;[/b:d29caae500]

2 – NO EVENTO ONACTIVE DO FORMULÁRIO PRINCIPAL COLOQUE CÓDIGO ABAIXO:

[b:d29caae500]procedure tform1.formcreate(sender: tobject);
begin
screen.onactiveformchange := aotrocarform;
end;[/b:d29caae500]

3 – E POR FIM NO EVENTO ONDESTROY DO FORMULÁRIO PRINCIPAL COLOQUE CÓDIGO ABAIXO:

[b:d29caae500]procedure tform1.formdestroy(sender: tobject);
begin
screen.onactiveformchange := nil;
end;[/b:d29caae500]


DICA FUNCIONOU LEGAL


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar