Hallo
Ich habe unlängst mal in diesem Thread
http://www.delphipraxis.net/168136-x...ml#post1165205 um Hilfe gebeten, da ich ein Programm auf D2007 zum Laufen brachte aber mit XE2 zwar kompilieren aber komische Speicherüberläufe nach dem starten der Exe bekam.
Ich bin nun der Sache nachgegangen und hab mich durch den Code gearbeitet.
Original:
Delphi-Quellcode:
function RectFromSize(X, Y, Width, Height: integer): TRect;
begin
with Result do
begin
Left := X;
Top := Y;
Right := (Left + Width);
Bottom := (Top + Height);
end;
end;
von mir für Testzwecke ergänzt:
Delphi-Quellcode:
function RectFromSize(X, Y, Width, Height: integer): TRect;
begin
with Result do
begin
Left := X;
Top := Y;
Right := (Left + Width);
Bottom := (Top + Height);
end;
sleep(0);
// MIL
Result.Left := X;
Result.Top := Y;
Result.Right := Result.Left + Width;
Result.Bottom := Result.Top + Height;
Result.Left := X + Y; //nur damit ich einen Haltepunkt erhalte und nicht X/Y wegoptimiert wird..
end;
Ich habe zwei Screenshots angehängt mit den Ergebnissen... Was sagt ihr dazu? Warum ist die erste Variante("with"), die auf D2007 einwandfrei funktioniert im Ergebniss nicht korrekt?
- Ist das ein XE2 Bug?
- Könnt ihr dies auf verschiedenen Delphi Versionen nachvollziehen?
Danke Schlingel