Olá pessoal, bem vindo a mais um tutorial.
Neste tutorial, vamos aprender como jogar o Hint de um componente numa StatusBar (barra de status) no Delphi.
Talvez você pergunte, qual a relevância de utilizarmos a propriedade "Hint" dos componentes.
A reposta para esta pergunta é muito simples, sempre digo para meus alunos e pra qualquer pessoa, eu gosto de deixar um software o mais interativo possível, porque hoje, isso é uma questão que ganha destaque no mercado de softwares, nada melhor que o próprio software ensinar o usuário como usá-lo, ou seja, uma interação "software-usuário".
Pra que ainda não sabe, um Hint seria tipo uma dica, imagine o seguinte: quando o usuário passar o cursor do mouse sobre um botão por exemplo, o hint do botão será exibido numa barra de status explicando brevemente o que tal botão faz, saco?
Muito bem, muito simples de se fazer isso no Delphi, então vamos a um exemplo bem prático. Vou utilizar aqui a tela de cadastro de livro do nosso sistema para controle de biblioteca versão 1.0.
Com sua tela de cadastro aberta no Delphi, insira o componente "ApplicationEvents" da paleta "Additional" em seu formulário. Este componente é utilizado para controlar e manipular alguns eventos, sendo um deles, o evento "OnHint" que vamos usar nesse exemplo.
Após inserir o componente no formulário, digite as dicas na propriedade "Hint" dos componentes botões e campos, como por exemplo, na propriedade "Hint" do botão "Salvar", poderíamos digitar: "use este botão para salvar o registro atual". Só um exemplo. Insira também uma "statusBar" da paleta "Win32".
Muito bem, vamos criar um painel para a barra de status, para que possamos utilizá-la, pra isso, basta dar um duplo clique sobre ela, e clicar no primeiro botão (Add New), note que será cria uma instância chamada de "0 - TStatusPanel". Beleza, só fechar a janela.
Após isso, declare o seguinte procedimento:
Esse procedimento vai exibir o Hint do componente na barra de status.
Ao declarar o procedimento, pressione as teclas de atalho de implementação: "Shift+Ctrl+C".
Feito isso, implemente os comandos abaixo:
Nesses comandos, notamos que, estamos atribuindo os hints de nossa aplicação "Application.Hint" para o painel da posição "0" de nossa barra de status que criamos, e especificando que o Hint é um texto (StatusBar1.Panels[0].Text).
Ok, agora, volte para o formulário, selecione-o, dê um duplo-clique no evento "OnCreate" do mesmo e digite os seguintes comandos:
Note que no evento "OnHint" de nossa aplicação, estamos atribuindo o procedimento "DisplayHint" que implementamos, desta forma, assim que o formulário de cadastro de livro for criado, serão captados todos os hints de nossa aplicação e será exibido na barra de status, assim que o usuário passar o cursor do mouse sobre algum componente que tenha a propriedade "Hint" preenchida. Simples e fácil.
Agora para testarmos, compile e execute o seu projeto e veja o resultado.
Na imagem acima, note que ao posicionar o cursor do mouse sobre o botão "Novo", é exibido na barra de status o "hint" do mesmo. Abraço galera e até o próximo artigo.
(Por Welinton Junior Dias)
Dica: caso você não queira exibir o hint de um componente na barra de status, você pode configurá-lo para mostrar o hint perto do cursor quando passar o mouse sobre o componente. Para isso, basta selecionar o botão por exemplo, e mudar a propriedade "ShowHint" para "True", pronto, com isso, se a propriedade "Hint" estiver preenchida, ao executar e passar o mouse sobre o componente, abaixo da seta do mouse será exibido o Hint. Abraço.
ResponderExcluirGrande dica, antigamente no CA Clipper usávamos no um tipo de hint no "set messege to" (boa época), Obrigado pelo post.
ResponderExcluirPor nada, sempre estaremos postando artigos novos aqui sobre Delphi, Java e até C#! Precisando de ajuda, estamos qui, abraço!
ExcluirEste comentário foi removido pelo autor.
ResponderExcluirEu uso DisplayHint no FormMain, funciona perfeitamente.
ResponderExcluirMas se eu também construir no segundo formulário, ao fechar este Form2, ele mostra "access violação".
Você pode me ajudar a resolver esse erro.
Já debugou para descobrir em qual linha está levantando AV?
Excluir