Danke schon mal für die Tipps.
Wie ich jetzt FastMM ausprobieren wollte, ist das nächste komische Problem aufgetaucht (ist nicht durch FastMM verursacht):
Im Moment kann ich das Projekt IM DEBUG MODUS nicht mal starten. Da kommt ein Fehler in der Funktion GetDynaMethod in
Unit System in der markierten Zeile:
Delphi-Quellcode:
function GetDynaMethod(
vmt: TClass; selector: SmallInt): Pointer;
{$IFDEF PUREPASCAL}
type
TDynaMethodTable =
record
Count: Word;
Selectors:
array[0..9999999]
of SmallInt;
{Addrs: array[0..0] of Pointer;}
end;
PDynaMethodTable = ^TDynaMethodTable;
var
dynaTab: PDynaMethodTable;
Parent: Pointer;
Addrs: PPointer;
I: Cardinal;
begin
while True
do
begin
dynaTab := PPointer(PByte(
vmt) + vmtDynamicTable)^;
// <<<<<<<<<<<<<<<<<<<<<<<<<<<<
if dynaTab <>
nil then
begin
for I := 0
to dynaTab.Count - 1
do
if dynaTab.Selectors[I] = selector
then
begin
Addrs := PPointer(PByte(@dynaTab.Selectors) + dynaTab.Count * SizeOf(dynaTab.Selectors[0]));
Result := PPointer(PByte(Addrs) + I * SizeOf(Pointer))^;
Exit;
end;
end;
Parent := PPointer(PByte(
vmt) + vmtParent)^;
if Parent =
nil then Break;
vmt := PPointer(Parent)^;
end;
Result :=
nil;
end;
{$ELSE !PUREPASCAL}
...
Eigentlich wird im normalen Quelltext nur eine Action auf enabled bzw. disabled gesetzt (nicht erschrecken: uralter Quelltext mit deutschen Bezeichnungen...
):
Form1.acDateiSpeichern.Enabled := Form1.bVeraendert;
Ich bekomme keinen Fehler, wenn ich die RELEASE VERSION starte...
Irgendwelche Ideen dazu???