Fórum Função comum a varios componentes #237357
11/06/2004
0
O que eu pretendo fazer é um Help (do tipo HTML Help) sensível ao contexto. Já tenho tudo pronto p/ executar o comando, só preciso saber o contexto propriamente dito. Para isso, estou colocando na propriedade HelpContext (que tem em todos os componentes que irão chamar a procedure) o valor do contexto.
Assim, só preciso de uma procedure única, que usaria o componente.HelpContext p/ chamar o help:
procedure TfrmPrincipal.AjudaClick(Sender: TObject);
begin
htmlHelp(self.Handle, ´help.chm´, HH_HELP_CONTEXT, ??.HelpContext);
end;
A proc eu to colocando num menu PopUp. Como eu faço p/ descobrir qual o componente que chamou a proc p/ usar a tal propriedade ???
Pensei em usar o Components, mas com o que eu vou comparar p/ saber se o Components[X] é o que chamou a proc e usar a propriedade dele, e não acabar usando a propriedade de um componente errado ??
Espero ter me feito entender.....
@dils0n
Curtir tópico
+ 0Posts
11/06/2004
@dils0n
Gostei + 0
11/06/2004
@dils0n
procedure TfrmPrincipal.AjudaClick(Sender: TObject);
var i: integer;
begin
for i := 0 to ComponentCount - 1 do
begin
if (Components[i] is TEdit) then
begin
if (Components[i] as TEdit).Focused then
htmlHelp(self.Handle, ´help.chm´, HH_HELP_CONTEXT, (Components[i] as TEdit).HelpContext);
end
else if (Components[i] is TStringGrid) then
begin
if (Components[i] as TStringGrid).Focused then
htmlHelp(self.Handle, ´help.chm´, HH_HELP_CONTEXT, (Components[i] as TStringGrid).HelpContext);
end;
end;
end;
Problemas :
1) Pra cada componente que for acessar a procedure, teria que acrescentar ele nos IFs
2) Se for clicar c/ o botao direito sem antes ter colocado o focus no lugar certo, vai pegar o help do lugar errado
3) p/ componentes sem ´focused´ ferra a coisa.
Alguma ideia melhor !?!!?
Gostei + 0
11/06/2004
Xanatos
no evento onmousemove dos componentes voce atribui o valor do helpcontext
Espero que isso ajude!!!
Gostei + 0
11/06/2004
Xanatos
:idea:
Gostei + 0
14/06/2004
@dils0n
blz, tambem é uma !! mas eu nao sou muito fã de var globais :D mas pelo menos vai dar menos erros !!
Valeu pela força !!
Gostei + 0
14/06/2004
Xanatos
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)