Wie kann ich ein Lazarusprojekt auf Delphi7 umstellen?
-
MmVisual
- Beiträge: 1639
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4.4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Wie kann ich ein Lazarusprojekt auf Delphi7 umstellen?
Hallo,
Ich habe mit Lazarus große Probleme, nicht mit Lazarus oder FPC an sich, sondern das Debuggen funktioniert nicht richtig.
Siehe Beitrag: http://www.lazarusforum.de/viewtopic.ph ... 170#p24707" onclick="window.open(this.href);return false;
Leider sind noch einige Fehler drin die mit Lazarus nicht debuggt und gelöst werden können, daher möchte ich erstmal alles in Delphi zum laufen bekommen.
Wie kann ich möglichst einfach das Projekt auf Delphi umstellen?
LFM in DFM hab ich schon umbenannt. Aber es sind sehr viele TZQuery mit definierten Feldern drin. Dabei hat Delphi wahllost jede Menge raus geschmissten, auch die Events dazu. Kompillieren konnte ich nach vielen Änderungen, aber viele Komponenten sind jetzt auf der Form verschoben.
Wie ich das manuell richten kann weiß ich selbst, aber gibt es nicht etwas automatisches, so dass ich nicht erst jedes einzelne anfassen muss, und dabei noch womöglich Fehler entstehen?
Vielen Dank für Eure Hilfe.
Ich habe mit Lazarus große Probleme, nicht mit Lazarus oder FPC an sich, sondern das Debuggen funktioniert nicht richtig.
Siehe Beitrag: http://www.lazarusforum.de/viewtopic.ph ... 170#p24707" onclick="window.open(this.href);return false;
Leider sind noch einige Fehler drin die mit Lazarus nicht debuggt und gelöst werden können, daher möchte ich erstmal alles in Delphi zum laufen bekommen.
Wie kann ich möglichst einfach das Projekt auf Delphi umstellen?
LFM in DFM hab ich schon umbenannt. Aber es sind sehr viele TZQuery mit definierten Feldern drin. Dabei hat Delphi wahllost jede Menge raus geschmissten, auch die Events dazu. Kompillieren konnte ich nach vielen Änderungen, aber viele Komponenten sind jetzt auf der Form verschoben.
Wie ich das manuell richten kann weiß ich selbst, aber gibt es nicht etwas automatisches, so dass ich nicht erst jedes einzelne anfassen muss, und dabei noch womöglich Fehler entstehen?
Vielen Dank für Eure Hilfe.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
Christian
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Wie kann ich ein Lazarusprojekt auf Delphi7 umstellen?
Da musst du wohl erst einen Converter basteln. ich seh den Sin darin aber nicht wirklich, es gibt mittlerweile einige Projekte die die Grössenordnung von Lazarus selbst annehmen und dort gibt es auch keine Probleme mit dem debuggen. Den Bug den du in ZeOS hattest hab ich schlichtweg behoben und den ZeOS projekt schon vor 3 Monaten zur Verfügung gestellt scheint sich leider niemand drum zu bemühen den einzupflegen.
Das ist übrigends auch der richtige Weg und das Problem hat nichts mit Lazarus debugger zu tun. Bei Exceptions wird auch unter Delphi der Debugger aufgerufen ...
Das ist übrigends auch der richtige Weg und das Problem hat nichts mit Lazarus debugger zu tun. Bei Exceptions wird auch unter Delphi der Debugger aufgerufen ...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
Euklid
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 10:38
- OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
- Wohnort: Hessen
- Kontaktdaten:
Re: Wie kann ich ein Lazarusprojekt auf Delphi7 umstellen?
Hallo MmVisual,
da sich meines Wissens weder Borland, noch Codegear, noch wer im Moment für Delphi verantwortlich ist die Mühe gemacht hat, einen Lazarus-nach-Delphi-Konvertierer zu schreiben, bleibt dir zur Zeit nichts anderes übrig, als den mühsamen Weg "per Hand" zu gehen.
Um noch ein paar persönliche Worte zu verlieren: Lazarus befindet sich auf einem aufsteigenden Ast. D.h. es ist zu erwarten, dass die Unterstützung externer Komponenten stetig besser wird. Bei Delphi habe ich derzeit eher das Gefühl, dass es leider in die andere Richtung geht.
Viele Grüße, Euklid
da sich meines Wissens weder Borland, noch Codegear, noch wer im Moment für Delphi verantwortlich ist die Mühe gemacht hat, einen Lazarus-nach-Delphi-Konvertierer zu schreiben, bleibt dir zur Zeit nichts anderes übrig, als den mühsamen Weg "per Hand" zu gehen.
Um noch ein paar persönliche Worte zu verlieren: Lazarus befindet sich auf einem aufsteigenden Ast. D.h. es ist zu erwarten, dass die Unterstützung externer Komponenten stetig besser wird. Bei Delphi habe ich derzeit eher das Gefühl, dass es leider in die andere Richtung geht.
Viele Grüße, Euklid
-
MmVisual
- Beiträge: 1639
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4.4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Wie kann ich ein Lazarusprojekt auf Delphi7 umstellen?
Ich habe ZeOS 6.6.4 und damit kommt der Fehler.
Aber ich habe das Gefühl, es liegt nicht an ZeOS, sondern viel mehr an der "FloatToStr" Routine, die ZeOS aufruft. Ich bekomme ähnliche Fehlermeldungen auch bei einem BoolToStr. Diese Routinen rufen allesamt im Hintergrund die gleiche Routine auf, ich bin mir nicht ganz sicher, ich glaube die heißt "Val" oder so ähnlich.
@Christian
Kannst Du mir den geänderten Code posten, dann binde ich das bei mir selbst ein und ich Teste es nochmal unter Lazarus
@Euklid
Ich sehe es auch so, dass Lazarus die Zukunft ist und Delphi in den trash wandern wird. Alle neuen Projekte mache ich nur noch mit Lazarus.
Nur leider bin ich bei einem Projekt an die Grenzen des Debuggens gestoßen. (Multithred, Verschachtelte Zugriffe, usw.) Mit Delphi ist das Debuggen (noch) einen Tick besser als mit GDB, und jetzt gerade brauche ich diesen, weil Lazarus gnadenlos abstürzt und aus dem Speicher verschwindet. Es bleibt nur noch eine in GDB hängende Applikation, die man mit Taskmanager (kill GDB) weg kriegt.
Der Vorteil von dem neuen Lazarus ist vor allem der Unicode Zeichensatz, den Delphi wohl niemals erhalten wird.
Ich möchte auch nur mit Delphi meinen Code in Ordnung kriegen, später geht es dann wieder mit Lazarus weiter.
Aber ich habe das Gefühl, es liegt nicht an ZeOS, sondern viel mehr an der "FloatToStr" Routine, die ZeOS aufruft. Ich bekomme ähnliche Fehlermeldungen auch bei einem BoolToStr. Diese Routinen rufen allesamt im Hintergrund die gleiche Routine auf, ich bin mir nicht ganz sicher, ich glaube die heißt "Val" oder so ähnlich.
@Christian
Kannst Du mir den geänderten Code posten, dann binde ich das bei mir selbst ein und ich Teste es nochmal unter Lazarus
@Euklid
Ich sehe es auch so, dass Lazarus die Zukunft ist und Delphi in den trash wandern wird. Alle neuen Projekte mache ich nur noch mit Lazarus.
Nur leider bin ich bei einem Projekt an die Grenzen des Debuggens gestoßen. (Multithred, Verschachtelte Zugriffe, usw.) Mit Delphi ist das Debuggen (noch) einen Tick besser als mit GDB, und jetzt gerade brauche ich diesen, weil Lazarus gnadenlos abstürzt und aus dem Speicher verschwindet. Es bleibt nur noch eine in GDB hängende Applikation, die man mit Taskmanager (kill GDB) weg kriegt.
Der Vorteil von dem neuen Lazarus ist vor allem der Unicode Zeichensatz, den Delphi wohl niemals erhalten wird.
Ich möchte auch nur mit Delphi meinen Code in Ordnung kriegen, später geht es dann wieder mit Lazarus weiter.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
Christian
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Wie kann ich ein Lazarusprojekt auf Delphi7 umstellen?
vergiss das mal ganz schnell das ständig hin und herzuconvertieren macht mehr arbeit als ein rewirte der Applikation.Ich möchte auch nur mit Delphi meinen Code in Ordnung kriegen, später geht es dann wieder mit Lazarus weiter.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
- Garfield
- Beiträge: 225
- Registriert: Do 5. Jun 2008, 22:07
- OS, Lazarus, FPC: Ubuntu 24.04 LTS (Laz 4.4 FPC3.2.2)
- CPU-Target: 64Bit
- Wohnort: Aken
Re: Wie kann ich ein Lazarusprojekt auf Delphi7 umstellen?
Delphi 2009. Sieht ganz gut aus. 350-400 € als Update. Mir prersönlich zum Schreiben von Freeware zu teuer. SSL gibt es schon für ~110 €.MmVisual hat geschrieben:Der Vorteil von dem neuen Lazarus ist vor allem der Unicode Zeichensatz, den Delphi wohl niemals erhalten wird.
http://cc.codegear.com/Free.aspx?id=26308" onclick="window.open(this.href);return false;
Würde ich nicht machen. Viel zu viel Arbeit. Dann eher die Routinen, in welchen der Fehler vermutet wird, mit denen aus Delphi austauschen bzw nur vergleichen.MmVisual hat geschrieben:Ich möchte auch nur mit Delphi meinen Code in Ordnung kriegen, später geht es dann wieder mit Lazarus weiter.
Gruß Garfield
-
MmVisual
- Beiträge: 1639
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4.4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Wie kann ich ein Lazarusprojekt auf Delphi7 umstellen?
Ich habe die Fehlermeldung "EConvertError" auf dem Bildschirm. (Siehe Grafiken)
Und jetzt hab ich keine Ahnung wo ich ansetzen soll.
Also erst kommt die Meldung "Bild1", dann "Bild2" Wenn ich nun F7 drücke, dann läuft die Applikation einfach weiter und springt nicht zur Zeile.
Wie kann ich hier in Lazarus den Fehler eingrenzen, bzw. was kann ich machen?
Im "Bild3" habe ich den Aufrufstack angehängt.
Vielen Dank für eure Hilfe.
Und jetzt hab ich keine Ahnung wo ich ansetzen soll.
Also erst kommt die Meldung "Bild1", dann "Bild2" Wenn ich nun F7 drücke, dann läuft die Applikation einfach weiter und springt nicht zur Zeile.
Wie kann ich hier in Lazarus den Fehler eingrenzen, bzw. was kann ich machen?
Im "Bild3" habe ich den Aufrufstack angehängt.
Vielen Dank für eure Hilfe.
- Dateianhänge
-
- Bild3.png (9.39 KiB) 3358 mal betrachtet
-
- Bild2.png (7.73 KiB) 3615 mal betrachtet
-
- Bild1.png (6.33 KiB) 3615 mal betrachtet
EleLa - Elektronik Lagerverwaltung - www.elela.de
- Garfield
- Beiträge: 225
- Registriert: Do 5. Jun 2008, 22:07
- OS, Lazarus, FPC: Ubuntu 24.04 LTS (Laz 4.4 FPC3.2.2)
- CPU-Target: 64Bit
- Wohnort: Aken
Re: Wie kann ich ein Lazarusprojekt auf Delphi7 umstellen?
Sieht so aus, als würdest Du einer
einen leeren String übergeben. Alternativ könntest Du
verwenden. S ist Dein String, Value ist die zurückgegebene Zahl und der Ergebniswert der Function bedeutet, ob die Umwandlung erfolgreich war.
Code: Alles auswählen
Function StrToFloat(Const S : String) : Extended;Code: Alles auswählen
Function TryStrToFloat(Const S : String; Var Value: Extended): Boolean;Gruß Garfield
-
MmVisual
- Beiträge: 1639
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4.4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Wie kann ich ein Lazarusprojekt auf Delphi7 umstellen?
Ja, natürlich ich kenne all diese Funktionen.
Ich habe extra noch den "Aufrufstack" als Grafik mit angehängt. Dort werden auch in der Sysutils diese Funktionen benutzt. Aber als dritten Aufrufpunkt steht nur ein "??". Also wie kann ich weiter suchen um diese Aurufende Zeile in einem Code mit über 100000 Zeilen zu finden?
Ich habe auch schon in allen Events, die mit der Datenbank zu tun haben Breakpoints gesetzt, aber nirgends springt der rein. Direkt nach QueryXXX.Open kommt der Fehler.
Ich möchte ja nicht, dass jemand mir Zeigt wo da ein Fehler ist, sondern nur wie ich den Suchen/Finden kann. Gibt es noch weitere Funktionen in Lazarus, irgendwie muss man doch die Nuss knacken können.
Ich habe extra noch den "Aufrufstack" als Grafik mit angehängt. Dort werden auch in der Sysutils diese Funktionen benutzt. Aber als dritten Aufrufpunkt steht nur ein "??". Also wie kann ich weiter suchen um diese Aurufende Zeile in einem Code mit über 100000 Zeilen zu finden?
Ich habe auch schon in allen Events, die mit der Datenbank zu tun haben Breakpoints gesetzt, aber nirgends springt der rein. Direkt nach QueryXXX.Open kommt der Fehler.
Ich möchte ja nicht, dass jemand mir Zeigt wo da ein Fehler ist, sondern nur wie ich den Suchen/Finden kann. Gibt es noch weitere Funktionen in Lazarus, irgendwie muss man doch die Nuss knacken können.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
Alfred
- Beiträge: 101
- Registriert: Do 22. Nov 2007, 20:06
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: München
Re: Wie kann ich ein Lazarusprojekt auf Delphi7 umstellen?
Hallo mvisual,
größere Programme erhalten bei mir folgende Struktur:
am Anfang setzte ich eine globalge Variable ndebug = 0;
in jede Unterprozedur kommt am Anfang eine
if-Abfrage mit
if ndebug = 1 then
begin
Showmessage('Modulname');
end;
Zum debuggen setze ich den ndebug auf 1
und dann bekommst Du das Modul wo es
knallt.
Wenn ich das Modul gefunden habe, gehe ich einfach mit
Showmessage('irgend ein TexT') je Zeile auf Suche.
Gruß
Alfred
größere Programme erhalten bei mir folgende Struktur:
am Anfang setzte ich eine globalge Variable ndebug = 0;
in jede Unterprozedur kommt am Anfang eine
if-Abfrage mit
if ndebug = 1 then
begin
Showmessage('Modulname');
end;
Zum debuggen setze ich den ndebug auf 1
und dann bekommst Du das Modul wo es
knallt.
Wenn ich das Modul gefunden habe, gehe ich einfach mit
Showmessage('irgend ein TexT') je Zeile auf Suche.
Gruß
Alfred
-
Christian
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Wie kann ich ein Lazarusprojekt auf Delphi7 umstellen?
Wiso benutzt du nicht einfach den Debugger ? Bei einer Exception ladest du dann doch automatisch auf der Zeile die die Exception ausgelöst hat ?!
Und benutzt den sonst keiner ? Wozu brauch man solche komische konstrukte Alfred ?! Dazu kann man sich selbst in der App beim Kunden den Aufrufstack bei einer Exception ausgeben lassen bei mir landet der sogar mit im Bugtracker automatisch dann hab ich bs zur Zeile wo die Exception ausgelöst wurde sogar vom Kunden alles.
Und benutzt den sonst keiner ? Wozu brauch man solche komische konstrukte Alfred ?! Dazu kann man sich selbst in der App beim Kunden den Aufrufstack bei einer Exception ausgeben lassen bei mir landet der sogar mit im Bugtracker automatisch dann hab ich bs zur Zeile wo die Exception ausgelöst wurde sogar vom Kunden alles.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
- Garfield
- Beiträge: 225
- Registriert: Do 5. Jun 2008, 22:07
- OS, Lazarus, FPC: Ubuntu 24.04 LTS (Laz 4.4 FPC3.2.2)
- CPU-Target: 64Bit
- Wohnort: Aken
Re: Wie kann ich ein Lazarusprojekt auf Delphi7 umstellen?
Da keine Quelle und keine Zeile angegeben sind, dürfte der Debugger auch Schwierigkeiten haben, irgendwo hinzuspringen.
Wenn Du dort StrToFloat hast, ersetze sie testweise durch TryStrToFloat.MmVisual hat geschrieben:Ich habe auch schon in allen Events, die mit der Datenbank zu tun haben Breakpoints gesetzt, aber nirgends springt der rein. Direkt nach QueryXXX.Open kommt der Fehler.
Gruß Garfield
- af0815
- Lazarusforum e. V.
- Beiträge: 7202
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Wie kann ich ein Lazarusprojekt auf Delphi7 umstellen?
ZeosDb mit debuginfos kompiliert oder ohne ? Voreinstellung wird sicherlich ohne sein.MmVisual hat geschrieben:... Gibt es noch weitere Funktionen in Lazarus, irgendwie muss man doch die Nuss knacken können.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
mschnell
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Wie kann ich ein Lazarusprojekt auf Delphi7 umstellen?
DAS wäre schön. !!!! Bei uns funktioniert es aber leider meistens nicht. Bei Delphi übrigens auch oft nicht,Christian hat geschrieben:Wiso benutzt du nicht einfach den Debugger ? Bei einer Exception ladest du dann doch automatisch auf der Zeile die die Exception ausgelöst hat ?!
Der Grund ist vermutlich oft, dass die ursprüngliche Execption in ein einer Funktion auftritt, deren Quellcode nicht im Projekt eingebunden ist, sondern die nur aufgerufen wird. Der Mechanismus schafft es dann nicht, die Zeile in den Sourcen des Projektes zu finden, die die unterste bekannte Quellcode-Zeile im Call-Stack war.
-Michael
-
MmVisual
- Beiträge: 1639
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4.4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Wie kann ich ein Lazarusprojekt auf Delphi7 umstellen?
Wenn ich eine neue Komponente installiere, dann wird das doch in Lazarus eingebunden und man muss diese neu erstellen, also meine Lazarus.exe ist gerade 85MB groß. Darin sollten auch alle Debu-Infos drin sein. Oder muss ich die Komponente anders installieren?
Der Befehl QueryXXX.Open führt ja eine Menge aus. Soll ich alle FloatToStr in die Try-Version ersetzen? Ich weiß nicht ob es da noch unangenehme Seiteneffekte gibt, die anders in der Komponente abgefangen sind.
@mschnell: GENAU. DAS wäre genial !!! Delphi zeigt wenigstens noch eine Assembler-Ansicht von z.B. der Kernel.dll, obwohl das auch nicht wirklich weiterhilft. Zumindest kann man dann weiter steppen mit F7 bis man wieder Code sieht. Die Assembler-Ansicht in Lazarus hab ich noch nicht gefunden
.
Gibt es irgend wo eine Funktion, mit der man alle CALL Aufrufe, also auch die, die in Assembler irgendwo drin sind, sieht? Nur das ist echt, die Prozeduraufrufe und Funktionen von Pascal ist ja nur ein Bruchteil.
Der Computer ist halt leider keine Paszelle (wie bei Java die Jazelle), sodern kann nur Assembler.
Der Befehl QueryXXX.Open führt ja eine Menge aus. Soll ich alle FloatToStr in die Try-Version ersetzen? Ich weiß nicht ob es da noch unangenehme Seiteneffekte gibt, die anders in der Komponente abgefangen sind.
@mschnell: GENAU. DAS wäre genial !!! Delphi zeigt wenigstens noch eine Assembler-Ansicht von z.B. der Kernel.dll, obwohl das auch nicht wirklich weiterhilft. Zumindest kann man dann weiter steppen mit F7 bis man wieder Code sieht. Die Assembler-Ansicht in Lazarus hab ich noch nicht gefunden
Gibt es irgend wo eine Funktion, mit der man alle CALL Aufrufe, also auch die, die in Assembler irgendwo drin sind, sieht? Nur das ist echt, die Prozeduraufrufe und Funktionen von Pascal ist ja nur ein Bruchteil.
Der Computer ist halt leider keine Paszelle (wie bei Java die Jazelle), sodern kann nur Assembler.
EleLa - Elektronik Lagerverwaltung - www.elela.de