Das Einzige was ich mir dazu vorstellen kann ist die Lösung des Win64 Problems.
Da kann ich leider nichts lösen, weil der Fehler nach meiner Beurteilung nicht in meinem Code liegt (ist natürlich derselbe für
Win32 und Win64), und der Debugger beim Auftreten der
AV auch nicht in irgendeinen Code springt. Sobald ich Application.Handle setze und bei irgendeinem Button oder einer anderen Komponente
ShowHint:= True;
und Hint auf irgendwas setze, tritt die
AV auf, sobald der Hint angezeigt werden soll. Dasselbe passiert, wenn ich eine TActionList mit einem TPopupMenu verknüpfe und letzteres angezeigt werden soll (manuelles Popup beim Klick auf einen Button).
Zitat:
Welche (XE-)Version verwendest du denn, denn mit D5 kann's ja wohl nicht gehen?
Das ist völlig unabhängig von der Delphi-Version. Ich habe XE2 und XE5 probiert und bei beiden liefert mir der TC exakt denselben Stacktrace:
Code:
---------------------------
Total Commander 8.51a
---------------------------
Access violation.
Access violation
Windows XP Pro x64 SP2 5.2 (Build 3790)
Please report this error to the Author, with a description
of what you were doing when this error occurred!
Stack trace (x64):4AC25F
4364F2 436372 436191 40F40D 8CDC28 814EB9 8D7E72 77C43ABC
Press Ctrl+C to copy this report!
Continue execution?
---------------------------
Ja Nein
---------------------------
Nur kann weder ich noch der TC-Autor damit etwas anfangen. Es ist auch unabhängig von der Windows-Version. Ich habe XP64, Win7 x64 und IIRC auch Win8.1 x64 probiert und bei allen tritt dasselbe Problem mit demselben Stacktrace auf.
Offenbar mag es Delphi (die
VCL oder die
RTL) nicht, wenn man Application.Handle in einer
DLL auf ein fremdes Fenster setzt. Naja, das an sich funktioniert ja, hat aber eben Nebenwirkungen. Und deshalb frag(t)e ich nach Alternativen.
MfG Dalai