HY Choose!
OK, also werde ich EAX brav in Ruhe lassen bzw. sichern, sofern ich noch ne weitere Klassenmethode aufrufen möchte! Das mit der Optimierung und Self wird damit auch verständlich.
Dann könnte ich eigentlich ausführlich schreiben:
Call [EAX].HorzLine
Das entspricht dann in Pascal:
Self.HorzLine(XStart,XEnd,Y);
Das mit der Parameterübergabe ist mir allerdings trotz des guten Links noch nicht ganz geläufig. Die Daten müssen auf den Stack und gemäß der Standardaufrufkonvention register von links nach rechts. Somit muss ich mein Beispiel von eben wohl in dieser Art erweitern:
Delphi-Quellcode:
Var SicSelf:TDIBSection24; XStart,XEnd,YPos:DWord;
asm
mov SicSelf, eax
// Das muss sein!
push ecx
push edx
mov eax, SicSelf
// Das muss sein!
mov edx, XStart
mov ecx, XEnd
push Y
Call HorzLine
pop Y
pop edx
pop ecx
Werde das mal testen, ob ich damit hinkomme! Dir noch einen schönen Nachmittag.
OLLI