Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Probleme mit Kontext Hilfe Popup (https://www.delphipraxis.net/8749-probleme-mit-kontext-hilfe-popup.html)

dreamtheater 11. Sep 2003 12:05


Probleme mit Kontext Hilfe Popup
 
Ich habe wieder einmal (http://www.delphi-forum.de/viewtopic.php?t=13722) das Problem, daß der Hilfetext, der bei Drücken von F1 eigentlich in einem (gelben) Popupkästchen erscheinen sollte, in einem voll funktionsfähigen WinHelp Fenster erscheint!
Nun hat mir damals jemand den Tip gegeben, das OnHelp Ereignis so zu modifizieren:

Code:
if Command <> HELP_CONTEXTPOPUP then begin
  Application.HelpCommand(HELP_CONTEXTPOPUP, Data);
  CallHelp:=false;
end;
was auch prima funktionierte.

Jetzt bin ich aber von Delphi 3 auf D7 umgestiegen, und da funktioniert das nicht mehr (ob nun das, oder etwas anderes der Grund ist, dessen bin ich mir unschlüssig). Fakt ist, daß, wenn ich zB einem Button den Fokus gebe und F1 Drücke, KEIN (gelbes) Popupkästchen erscheint, sondern ein WinHelp Fenster - wohl mit der gewünschten Information, aber eben nicht per einfachem Klick zu entfernen.

Offenbar wird nämlich bei Drücken von F1 das OnHelp Ereignis nicht mehr ausgelöst (was unter D3, so glaube ich mich zu erinnern, aber sehr wohl passiert ist). Der Tip, eine Unit zu benutzen, die das Verhalten, daß das OnHelp-Ereignis nicht mehr ausgelöst wird, kuriert, führte (obwohl das OnHelp Ereignis dann ausgelöst wurde) nicht zum gewünschten Ergebnis.

Wie kann ich dieses _nervtötende_ Problem lösen? Bitte um Hilfe (egal, ob ContextPopup, oder normal, in diesem Fall ;o) )
Grüße,
dreamtheater

MatthiasO 11. Sep 2003 16:12

Re: Probleme mit Kontext Hilfe Popup
 
Hallo,

hast du schon mal probiert, ob Application.HelpCommand(HELP_CONTEXTPOPUP, Data) die richtige Wirkung erzielt?
Bei mir tut es das jedenfalls nicht (Delphi 6 Personal). Bei mir ging's folgendermaßen:
Delphi-Quellcode:
WinHelp(Handle, PChar(Application.HelpFile), HELP_CONTEXTPOPUP, HelpContext);

dreamtheater 11. Sep 2003 20:21

Re: Probleme mit Kontext Hilfe Popup
 
Naja, das Problem ist: wo soll ich das hischreiben? In ein OnKeyPress Event? Oder soll ich das ins OnHelp Ereignis reinschreiben (die entsprechende Unit mit dem OnHelpFix vorausgesetzt)?

MatthiasO 12. Sep 2003 13:52

Re: Probleme mit Kontext Hilfe Popup
 
Versuch's erst mal ins OnHelp-Ereignis reinzuschreiben. Wenn's nicht funktioniert, dann schreib es ins OnKeyDown-Ereignis.

dreamtheater 13. Sep 2003 12:42

Re: Probleme mit Kontext Hilfe Popup
 
Ok, es scheint jetzt zu funktionieren. Unter Verwendung der D6OnHelpfix Unit (funktioniert trotz des Namens natürlich auch für D7) wird das OnHelp-Ereignis wieder ausgelöst. Im OnHelp-Ereignis sorgt folgender Code für das Erscheinen der jeweils GEWÜNSCHTEN Art von Hilfe:
Code:
 
 if Command = HELP_CONTENTS then
   begin
     WinHelp(Handle, PChar(Application.HelpFile), HELP_CONTENTS, Data);
     CallHelp:=false;
  end
 else
 if Command <> HELP_CONTEXTPOPUP then
   begin;
     WinHelp(Handle, PChar(Application.HelpFile), HELP_CONTEXTPOPUP, Data);
     CallHelp:=false;
   end;
Danke für die Tips - das Problem scheint für's erste mal gelöst.
Warum mußte das SO kompliziert sein? Kann mir das jemand erklären? Oder anders gefragt: geht das nicht einfacher? (unter D7).

P.S.: Der Beitrag ist jetzt eh nicht mehr als 'Offene Frage' gehandhabt, oder? Wenn doch - wie kann ich sie als beantwortet angeben?

dreamtheater 13. Sep 2003 14:34

Re: Probleme mit Kontext Hilfe Popup
 
Neue Probleme haben sich ergeben - siehe hier


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz