Selecao DevMedia QUERO SER PRIME

Fórum TPanel Não Dispara o Help do Programa? #358031

06/05/2008

0

Numa aplicação qualquer tenho um Tbutton e um Tpanel. Ambos tem a propriedade helpContext = 10

A propriedade borderStyle do form é bsSizeable e a propriedade BorderIcons é [biSystemMenu,biHelp].

Na aplicação só tem essas duas rotinas:

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnHelp := AppHelp;
end;

function TForm1.AppHelp(Command: Word; Data: Longint; var CallHelp: Boolean): Boolean;
begin
ShowMessage(screen.ActiveControl.Name);
end;


A dúvida: ao rodar o programa, se eu clicar no ícone de help (o sinal de ?) do form e depois clicar no botão, o sistema apresenta a mensagem ´button1´, mas, se eu fizer o mesmo no panel1, nada acontece, ou seja, apesar do componente tpanel ter a propriedade helpContext, numa chamada do help do programa, ele (o panel) não dispara o evento.

Isso tem solução ou outra forma de remediar?

Obviamente o ´showMessage´ foi só para deixar a explicação do exemplo mais sintética, mas a idéia é que quando o usuário clicar no ´?´ do form e depois clicar no panel, seja acionado o help do sistema.

Obrigado.


Armindo

Armindo

Responder

Posts

06/05/2008

Massuda

O TPanel é apenas um container para outros componentes (edits, buttons, etc) de modo que o usuário não interage diretamente com ele. Por isso ele não gera o evento de ajuda contextual. Isso acontece com qualquer componente que não receba foco de entrada.


Responder

Gostei + 0

06/05/2008

Armindo

O TPanel é apenas um container para outros componentes (edits, buttons, etc) de modo que o usuário não interage diretamente com ele. Por isso ele não gera o evento de ajuda contextual.


Obrigado Massuda,

É isso que eu também sei desse componente. É que como percebi que ele tem 3 propriedades - helpContext, helpKeyword e helpType (que no caso, não servem para absolutamente nada), imaginei que alguém soubesse de alguma forma de remediar essa questão.

Por gentileza, me responde uma outra dúvida que surgiu: numa aplicaçãoo que tiver apenas panels e labels, não será possível utilizar essa rotina que descrevi no tópico de abertura (o usuário usar o ´?´ do form para acionar o help) ?
Apesar de tanto o form, o label e o panel terem as três propriedades relacionadas ao help, elas praticamente não tem utilidade nesse meu caso?

Obrigado


Responder

Gostei + 0

06/05/2008

Massuda

...numa aplicaçãoo que tiver apenas panels e labels, não será possível utilizar essa rotina que descrevi no tópico de abertura (o usuário usar o ´?´ do form para acionar o help) ?
Exato. O Windows (não o Delphi) assume que isso só interessa no caso de componentes que recebem foco de entrada.


Responder

Gostei + 0

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

Aceitar