Danke schon mal für die Antworten. VPE ist eine Komponente.
Das Problem liegt offenbar gar nicht direkt beim "with".
Ich habe das ganze mal noch etwas verkürzt und den with-Abschnitt komplett auskommentiert:
Delphi-Quellcode:
begin
NextVPEPageOrientation(VPE, VORIENT_LANDSCAPE);
// outputdebugstring(pchar(inttostr(nbottom))); // Compiler meckert
// outputdebugstring(pchar(floattostr(nbottom))); // Compiler meckert
outputdebugstring(pchar(floattostr(vpe.nbottom)));
outputdebugstring('-----------');
end;
Die ersten zwei Zeilen akzeptiert der Compiler nicht mit der Meldung:
[DCC Fehler] frSystemMelee.pas(1423): E2003 Undeklarierter Bezeichner: 'nbottom'
Ist ja auch i.O.
Zur Laufzeit zeigen die überwachten Ausdrücke jedoch nbottom=0 an!?
Im Kontextmenü der überwachten Ausdrücke sehe ich ungeführ, worauf sich die Ausdrücke beziehen (dazu doch nochmal ein Bild).
Zur Laufzeit kann also offenbar auf eine "Integervariable nBottom" zugegriffen werden, die für den Compiler unbekannt ist. Die Eigenschaft VPE.nBottom ist dagegen vom Typ Double.
Eine Deklaration nBottom finde ich nirgends. Ich hatte dann vermutet, dass das vielleicht mit FastMM zusammenhängt, da diese im Projektquelltext eingebunden wird und habe den ausgeklammert. Brachte aber nichts.
Wenn ich nach der Speicheradresse suche finde ich eine entsprechende Deklaration. Ich kann aber noch nicht erkennen, in welcher
Unit diese erfolgt.
Wenn ich das Projekt mit F7 starte ist die Variable bereits vorhanden (wird also nicht später erst irgendwo eingebunden).
Bin ziemlich ratlos, wie so etwas sein kann. Vielleicht ist die Variable in einer
DCU deklariert, von der mir kein Quelltext vorliegt? Wie finde ich die dann heraus?
Ein schnell angelegtes Testprojekt mit der VPE konnte das Problem nicht reproduzieren.
Stahli