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:
was auch prima funktionierte.
if Command <> HELP_CONTEXTPOPUP then begin
Application.HelpCommand(HELP_CONTEXTPOPUP, Data); CallHelp:=false; end; 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 |
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);
|
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)?
|
Re: Probleme mit Kontext Hilfe Popup
Versuch's erst mal ins OnHelp-Ereignis reinzuschreiben. Wenn's nicht funktioniert, dann schreib es ins OnKeyDown-Ereignis.
|
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:
Danke für die Tips - das Problem scheint für's erste mal gelöst.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; 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? |
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