Also kann es am Code definitiv nicht liegen denn dann dürfte beides nicht gehn.
Beispielsweise könnte der Typ von TMDBInfoDlgContH falsch sein und so der Wert abgeschnitten werden, wenn der Variablentyp zu klein für den Wert ist. Wie gesagt, das ist nur ein Beispiel, aber es gibt schon diverse Varianten, bei denen der Code eigentlich gar nicht korrekt ist, aber zufällig doch geht.
Da du nun weißt wo der Fehler auftritt:
Kannst du nicht den ganzen anderen Code rauswerfen um dann hier ein Projekt zu posten, bei dem der Fehler nachvollziehbar ist?
Ich bin mir sicher, dass dann schnell die Ursache klar wäre.
TMDBInfoDlgContH: HWND;
Nochmal wenn der Code falsch wäre würde es auch ohne Optimierung nicht funktionieren.
Trotz allem Danke.
EDIT:
Zitat:
Es gibt also schon Dinge, die man tun könnte, wenn falsche Werte zurückkommen.
Habe es mal getestet
Delphi-Quellcode:
if GetWindowRect(TMDBInfoDlgContH, lpr)
then
begin
//...
end else
raise Exception.Create(SysErrorMessage(GetLastError));
Kein Fehler läuft durch aber Koordinaten sind falsch.
Ich lasse es jetzt ohne Optimierung macht keinen sinn.