ich hab ein Problem beim Konvertieren eines Delphi Projektes (läuft dort).
Gegeben sind 2 Formulare und ein String (FFilename) welchen ich im 2. Fomular unter den Publicvariablen hinzufüge.
das 2. Form erstell ich unter der Laufzeit so:
Code: Alles auswählen
procedure TMainForm.CreateMDIChild(Name: string;lAnz,lECAT,l2dImage,lRaw: boolean);
var
Child: TMDIChild;
begin
//LockWindowUpdate(MainForm.Handle);
Child := TMDIChild.Create( Application );
Child.Caption := Name;
...
TMDIChild(MainForm.ActiveMDIChild).LoadFileList;
//LockWindowUpdate(0);
end;
Das Projekt lässt sich starten, nur wenn ich eine Funktion ausführen will kommt dieser Fehler:
"... External SIGSEGV ausgelöst. In Datei ... lFilenameWOPath := extractfilename(FFilename);"
oder wenn ich den String FFilname verändern oder in Showmessage ausgeben will:
00403C2A 0000 add %al,(%eax)
00403C2C 0000 add %al,(%eax)
00403C2E 0000 add %al,(%eax)
fpc_ansistr_decr_ref
00403C30 833800 cmpl $0x0,(%eax) // <-- Hier zeigt ein grüner Pfeil drauf
00403C33 7501 jne 0x403c36 <fpc_ansistr_decr_ref+6>
00403C35 c3 ret
Für mich ensteht der Eindruck als läge der Fehler nicht beim String sondern an der Erkennung von TMDIChild(MainForm.ActiveMDIChild)
Unter Dlephi liefs problemlos, wenn ich TMDIChild(MainForm.ActiveMDIChild).LoadFileList; durch IChild.LoadFileList; ersetzte läufts auch wieder.
Liegts am auskommentierten LockWindowUpdate?
Kann mir wer helfen? ich brauche TMDIChild(MainForm.ActiveMDIChild) später wieder in anderen Prozeduren, da mehrere Childs vorhanden sind!
Danke schonmal!