wahrscheinlich stehe ich nur irgendwo ganz doof auf dem Schlauch:
ich habe eine kleine Applikation, die ich vom Windows Delphi auf mein Linux/Lazarus übertragen will. Ich habe also das Delphi-Projekt konvertiert und dann versucht den ganzen Delphi-spezifischen Code zu eliminieren (also auch die .dpr und .dpi oder .dpm in entsprechende Lazarus-Dateien konvertiert und das {$IFDEF FPC} {$MODE Delphi} {$ENDIF} entfernt). Das ganze wird auch in der IDE übersetzt und ich kann es starten und ausführen.
Bloß, wenn ich den Close-Button clicke, der die entsprechende Funktion aufruft, lande ich mit einem SEGV-Error im Debugger und da direkt im Assembler-Tab. Die Funktion ist nichts besonderes und als Callback für den ButtonClick-Event eingetragen:
Code: Alles auswählen
procedure TMainForm.ButtonCloseClick(Sender: TObject);
begin
Close;
end;
Eigentlich mache ich das immer so, wenn nichts weiter aufzuräumen ist.
Mögliche Ursachen:
- vielleicht sind noch nicht alle Arrays, Felder, StringList ordentlich aufgeräumt (mögliches Memory Leak). Sollte aber doch kein Problem sein, wenn ich die Applikation beende, oder?
- Konvertierung bzw. meine Eingriffe, um von Delphi los zu kommen. In dem Fall würde ich das Projekt neu in Lazarus aufsetzen; Nachteil: ich müsste das GUI-Fenster/Form nachbauen.
Ciao,
Photor