Zitat von
Luckie:
da fällt mir noch ein: Anstatt
OldProgressWndProc(Msg);
eventuell mal die ursprüngliche mit
inherited(..);
aufrufen.
Geht doch nicht, weil er
WindowProc ersetzt; und weil er die Klasse ProgressBar nicht erweitert hat.
Zitat von
turboPASCAL:
Möglicherweise liegt das am Aufruf der OldWndProc.
Versuche es mal so:
NewProgressProc := CallWindowProc(OldProgressProc...
Nein, das würde nicht funktionieren. Das ist ja keine
Windows-Fensterprozedur sondern eine
TWndMethod.
Der Vorschlag mit madExcept ist gut, da siehst du genau, wo der Fehler auftritt.
[Nachtrag]
Was mir jetzt spontan auffällt ist, dass du nur ein SelectObject machst.
SelectObject(dc, myfont);
Normalerweise macht man so etwas wieder rückgängig:
Delphi-Quellcode:
oldfont := SelectObject(
dc, myfont);
DrawText(...);
SelectObject(
dc, oldfont);
Außerdem: warum erzeugst du den Font selbst und holst ihn dir nicht einfach von deinem Hauptformular?
myfont := MyProg_Main.Font.Handle
(dann aber natürlich das DeleteObject weglassen).