Programação Kylix: Informações do menu na barra de status
Dica publicada em Kylix / Avançado
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:
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;
{ 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}
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.
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).