Programação Kylix: Informações do menu na barra de status
Melhore os recursos de seus programas em Kylix (Delphi
para Linux).
Com este procedimento você poderá usar a barra de
status para dar informações, por exemplo, de um menu
item.
Vamos utilizar o Hint, aumentando a sua utilidade, não
para exibí-lo como hint, mas sim na barra de status,
podendo dar dicas de cada menu item do mainmenu.
Chamarei o form principal de sua aplicação Kylix como
Form1.
Inclua uma barra de status no formulário principal do seu
programa, caso já não o tenha feito.Não esquecendo de
incluir uns dois status panel dentro do status bar. Eu
disse dois pois meu exemplo usa o segundo, mas você pode
usar apenas um.
Agora você deverá colocar na propriedade hint de cada
menuitem do mainmenu, uma informação que se refere aquele
item, com um espaço na frente. Por exemplo:
' Abre o arquivo de teste'
A propriedade ShowHint fica como False, pois não é para
ser usado como hint. No MainMenu esta propriedade não deve
nem aparecer, mas ela existe, de qualquer forma não se
preocupe.
Quando selecionado um item no menu, mesmo sem clicar, uma
dica, digo informação do item, irá aparecer na barra de
status.
Então para que serve o Espaço na frente? O Espaço serve para distinguir se o hint deve ser usado normalmente como hint mesmo, sem o Espaço na frente. Ou
ser usado na barra de status colocando o espaço. O
procedimento não exibe na barra de status se não tiver o
espaço na frente.
Procure o código abaixo no formulário principal de sua
aplicação.
private
{ Private declarations }
public
{ Public declarations }
end;
Modifique, inserindo a linha indicada:
private
{ Private declarations }
public
{ Public declarations }
Procedure DisplayHint(Sender: TObject); // inclua
esta linha.
end;
No evento de Create ou no evento de FormShow do seu
formulário principal, adicione a linha abaixo.
Application.OnHint := DisplayHint;
Depois coloque este procedimento no código do seu
formulário principal de sua aplicação Kylix.
procedure TForm1.DisplayHint(Sender: TObject);
begin
If (Length(Application.Hint) > 0) and
(Application.Hint[1] = Chr(32)) Then
StatusBar1.Panels.Items[1].Text :=
Trim(Application.Hint){}
Else
StatusBar1.Panels.Items[0].Text := '';{if}
end;{procedure}
Feito! Isso é tudo. Mas não esqueça de olhar as
imagens anexas à dica.
[1] Comentário enviado por felipehf em 06/07/2009 - 14:54h
Olá,
tem um método muito mais fácil de fazer isto: é só ativar a propriedade do TStatusBar->AutoHint=true, que todo hint da aplicação será mostrado no TStatusBar.Panel[0] (se houver mais de um painel).
[2] Comentário enviado por anderson_souza em 06/07/2009 - 17:09h
Certo! Mas o fato é pela dica vc pode escolher qual o hint vc quer que apareca no statusbar, todos fica impropriado já que muitos são desejados aparecerem como hint mesmo.
Além disso este opcão que vc citou deve ser para o Delhpi mais novo, mas a dica é para o Kylix, que por sua vez também compatível com o Delphi. Pelo menos não achei no Kylix nem no Lazarus nem no Delhpi até a versão 7.