Lazarus V2.0-RC3 - Tests zum Umstieg

Rund um die LCL und andere Komponenten

Lazarus V2.0-RC3 - Tests zum Umstieg

Beitragvon MmVisual » 1. Jan 2019, 16:26 Lazarus V2.0-RC3 - Tests zum Umstieg

Hallo,

Ich habe mir zum Test das neue Lazarus geladen und wollte mal damit mein großes Projekt übesetzen / testen was so alles in Lazarus oder in meinem Proejt geändert werden muss.
Hier der Download Link: ftp://freepascal.dfmk.hu/pub/lazarus/releases/

Ich würde gerne den ganzen Code nun durch gehen, übersetzen und heraus finden was man allen für das neue Lazarus so machen müsste. Meine EXE nutzt eine einzige externe Komponenten, ZEOS.

Ich habe in der EXE ein umfanreiches Error-Handling implementiert und diese Funktionen lassen sich ab V2.0 nicht mehr übersetzen:

Code: Alles auswählen
Procedure TErrMsgCls.ExceptionHandler(Sender: TObject; E: Exception);
Var s, sLine: String;
   scl: TErrMsgString;
  p, pa: Pointer;
Begin
  // Aufrufstack auslesen
  sLine := '';
  p := get_frame;
  while (p <> nil) And (Length(sLine) <= 11) Do
  Begin
    p := get_caller_frame(p);
    If p = nil Then Break;
    pa := get_caller_addr(p);
    sLine := GetLineInfo(pa, False); // E.MethodName(pa);
  end;
  if (Length(sLine) > 11) Then
    sLine := '(' + sLine + ')'
  Else sLine := '';   


Die Funktion "GetLineInfo" gibt es leider in "LCLProc" nicht mehr. Weiß jemand wie ich das ersetzen kann?

Dankeschön, Grüße Markus
Zuletzt geändert von MmVisual am 2. Jan 2019, 12:35, insgesamt 1-mal geändert.
MmVisual
 
Beiträge: 1059
Registriert: 10. Okt 2008, 22:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3) | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon sstvmaster » 1. Jan 2019, 17:08 Re: Lazarus V2.0-RC3 - Tests zum Umstieg

Bei mir gibt es die Funktion in der "laztracer.pas" (C:\lazarus\components\lazutils), auch 2.0 RC3.

Gesundes neues, Maik
sstvmaster
 
Beiträge: 193
Registriert: 22. Okt 2016, 22:12
Wohnort: Dresden
OS, Lazarus, FPC: Windows 7 32bit (L 2.0.2 FPC 3.0.4) | 
CPU-Target: 32Bit
Nach oben

Beitragvon MmVisual » 1. Jan 2019, 17:26 Re: Lazarus V2.0-RC3 - Tests zum Umstieg

Thx, ich habe diese Unit in die Uses aufgenommen.

Nun klappt auch das Schreiben der Logdatei :D

Die Exe stürzt beim Start direkt ab, die Meldung im Log:
17:15:42 E: Error reading chkSchnellsucheCaseExpSMD.State: Access violation (spFilterCaseExpClick)/( $000000010004D58F line 1927 of forms.pp)

Ich vermute, dass Lazarus bevor die Steuerelemente komplett erstellt sind, schon irgend welcher Code ausgeführt. (Win10/64)
Diese Vermutung kommt daher:
Der Text "(spFilterCaseExpClick)" im Log zeigt, dass diese Funktion direkt aufgerufen wurde, z.B. durch Mausklick (aber die EXE war ja noch nicht sichtbar). Wenn diese Funktion von einer anderen Funktion aufgerufen werden würde, die aus meinem Code stammt, so würde die so aussehen "(AufrufendeFunktionName/spFilterCaseExpClick)". Somit ist dies definitiv ein Bug von Lazarus.

In dieser Zeile stürzt das ab:
Code: Alles auswählen
procedure TfrmMain.spFilterCaseExpClick(Sender: TObject);
var
  iID: integer;
  s, sOr: string;
begin
  ErrMessagesAdd('spFilterCaseExpClick');
  chkSchnellsucheCaseExpSMD.Visible := spFilterCaseExp.Down;
  iID := qGehauseExpID.AsInteger//<<<<<<< hier bleibt der Debugger stehen


Bild1.png


Nur so als Hintergrundinfo: Das Main-Formular hat ca 4000 Steuerelemente und knapp 60000 Codezeilen. Wenn diese EXE mit Lazarus 2.0 funktioniert, dann wird Lazarus so ziemlich Bugfrei sein 8)
Mein komletter Code wird mit früheren Lazarus Versionen ohne Warnings übersetzt. Die EXE heißt EleLa und entwickle ich seit 8 Jahren stetig weiter und hat entspreched viele Lazarus Versionen bereits hinter sich.

Ebenfalls gesundes Neues, Markus.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
MmVisual
 
Beiträge: 1059
Registriert: 10. Okt 2008, 22:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3) | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon martin_frb » 1. Jan 2019, 19:51 Re: Lazarus V2.0-RC3 - Tests zum Umstieg

Und was steht im Stack Fenster des Debuggers?
martin_frb
 
Beiträge: 439
Registriert: 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other | 
CPU-Target: mostly 32 bit
Nach oben

Beitragvon MmVisual » 1. Jan 2019, 20:23 Re: Lazarus V2.0-RC3 - Tests zum Umstieg

...
Bild2.png


Die EXE zeigt nur den Startup Splash-Screen, das Main Formular ist noch nicht zu sehen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
MmVisual
 
Beiträge: 1059
Registriert: 10. Okt 2008, 22:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3) | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon af0815 » 1. Jan 2019, 20:41 Re: Lazarus V2.0-RC3 - Tests zum Umstieg

Kann es sein, das dein Code beim initialisieren von Checkboxen aufgerufen wird, während das Formular sich aufbaut ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3629
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon MmVisual » 1. Jan 2019, 20:48 Re: Lazarus V2.0-RC3 - Tests zum Umstieg

In Lazarus 1.8.4 war es nicht der Fall, bzw. mit 1.8.4 hat Lazarus alles wie erwartet gemacht.
MmVisual
 
Beiträge: 1059
Registriert: 10. Okt 2008, 22:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3) | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon martin_frb » 1. Jan 2019, 22:16 Re: Lazarus V2.0-RC3 - Tests zum Umstieg

Ausgelöst durch
https://bugs.freepascal.org/view.php?id=33076

IMHO sollte das nicht waehrend "Loading" passieren.
martin_frb
 
Beiträge: 439
Registriert: 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other | 
CPU-Target: mostly 32 bit
Nach oben

Beitragvon sstvmaster » 1. Jan 2019, 22:24 Re: Lazarus V2.0-RC3 - Tests zum Umstieg

Hi Markus,

erst mal danke für dein Programm, sowas habe schon lange gesucht.

Nach dem starten bin ich Tab für Tab durchgegangen um mich erstmal im Programm umzuschauen.
Als ich auf den Tab "Extras - F10" geklickt habe ist sofort das Fenster für die "Versionsabfrage"
aufgegangen, obwohl ich gar nicht auf dem "Info" Sub-Tab und den Button gedrückt habe.

Ist das so normal?

OS: Win7 Pro 32bit
EleLa: 3.0.18B15
sstvmaster
 
Beiträge: 193
Registriert: 22. Okt 2016, 22:12
Wohnort: Dresden
OS, Lazarus, FPC: Windows 7 32bit (L 2.0.2 FPC 3.0.4) | 
CPU-Target: 32Bit
Nach oben

Beitragvon MmVisual » 1. Jan 2019, 22:50 Re: Lazarus V2.0-RC3 - Tests zum Umstieg

Nein, ist nicht normal. Ich schaue ob ich das reproduziert bekomme.
Ansonsten kann in der INI Datei der Parameter:

[Debug]
Mode=2

aktiviert werden. Damit wird jeder Funktionsaufruf unter Extras->Log protokolliert, auch verschachtelte Aufrufe. Da steht auch welche Versionen verwendet sind.
In diesem Forum sind seit 8 Jahren Threads zum Programm: https://www.mikrocontroller.net/topic/465335
MmVisual
 
Beiträge: 1059
Registriert: 10. Okt 2008, 22:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3) | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon sstvmaster » 1. Jan 2019, 23:35 Re: Lazarus V2.0-RC3 - Tests zum Umstieg

Hi Markus,

ich glaube ich den "Fehler" der kein Fehler ist gefunden.
Wenn man EleLa zum ersten mal, nach dem installieren, startet pop nach 2 Minuten das "Update Fenster" automatisch auf. Ab dem zweiten starten nicht mehr.
Das war wahrscheinlich zufall das ich genau 2 min. gebaucht habe.

Sorry für die Aufregung
sstvmaster
 
Beiträge: 193
Registriert: 22. Okt 2016, 22:12
Wohnort: Dresden
OS, Lazarus, FPC: Windows 7 32bit (L 2.0.2 FPC 3.0.4) | 
CPU-Target: 32Bit
Nach oben

Beitragvon MmVisual » 1. Jan 2019, 23:53 Re: Lazarus V2.0-RC3 - Tests zum Umstieg

Stimmt, das hatte ich so eingestellt. Wenn man im Setup das Häkchen "nach Updates suchen" nicht weg macht, dann findet EleLa automatisch ein Update. Sobald ich die SW ändere dann erkennt das EleLa das nächste mal und es Popt wieder zeitverzögert das Update Fenster auf. Ich hatte eine Zeit drin, damit nicht sofort wenn man nur kurz EleLa öffnet dieser Dialog einem in das Gesicht springt. Kann unter Extras>Log>Optionen>Extras entfernt werden.
Ich sollte es wohl so ändern, dass beim aller ersten Version Abfragen der Dialog nicht kommt, denn man hat ja die SW zu dem Zeitpunkt offensichtlich aktuell geladen und installiert.
MmVisual
 
Beiträge: 1059
Registriert: 10. Okt 2008, 22:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3) | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon MmVisual » 3. Jan 2019, 13:03 Re: Lazarus V2.0-RC3 - Tests zum Umstieg

Ich habe noch etwas gefuden, bin mir aber nicht sicher ob es ein Bug ist oder ein Feature.

TPageControl.OnChange Event

Wenn man mit der Maus auf eine andere Tab Seite klickt, wird dieses Event ausgelöst.
Wenn im Code eine andere Seite aktiviert wird dann nicht. Früher (glaub Lazarus V1.6) war das mal anders.

Anbei ein Test-Code.
project1_Test_TPageControl.zip
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
MmVisual
 
Beiträge: 1059
Registriert: 10. Okt 2008, 22:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3) | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon MmVisual » 3. Jan 2019, 14:09 Re: Lazarus V2.0-RC3 - Tests zum Umstieg

Ich habe noch einen zweiten Bug gefunden, ich bin mir jedoch nicht sicher ob es ein Lazarus oder ein Zeos Bug ist.
Jedenfalls wird im TZUpdateSQL der generierte Update SQL Script nicht immer gespeichert.

Anbei ein Demo-Projekt für Lazarus Win64, inc. leerer DB und SQLite DLL.

Vorgehen 1:
- "project1.lpi" öffnen, Lazarus startet.
- Rechtsklick auf der Komonente "ZUpdateSQL1", Menü "UpdateSQL Editor.." anklicken
- Taste "Generate SQL" drücken
- Taste "OK" drücken
- Kontrolle im Objektinspektor "InsertSQL", da steht nun was drin.
- Lazarus schließen
- "project1.lpi" öffnen, Lazarus startet.
- Kontrolle im Objektinspektor "InsertSQL", das ist nun wieder leer <<< das ist der Bug

Vorgehen 2 - wie der Bug umgangen werden kann:
- "project1.lpi" öffnen, Lazarus startet.
- Rechtsklick auf der Komonente "ZUpdateSQL1", Menü "UpdateSQL Editor.." anklicken
- Taste "Generate SQL" drücken
- Taste "OK" drücken
- Kontrolle im Objektinspektor "InsertSQL", da steht nun was drin.
- Irgend eine Komponente auf dem Formular verschieben
- Lazarus schließen, nun fordert Lazarus auch auf ob man die Änderungen speichern möchte -> Ja
- "project1.lpi" öffnen, Lazarus startet.
- Kontrolle im Objektinspektor "InsertSQL", der SQL Befehl ist nun erhalten geblieben.

Aus irgend einem Grund merkt Lazarus nicht dass eine Komponente geändert wurde und speichert das Formular nicht. Ich weiß jetzt nicht ob Zeos da ein Bug hat oder ob Lazarus das selbst merken sollte dass eine Eigenschaft geändert wurde.

TestV2_UpdateSQL.zip


Edit: Ich habe noch einen Bugreport im Zeos Bugtracker angelegt: https://sourceforge.net/p/zeoslib/tickets/325/
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
MmVisual
 
Beiträge: 1059
Registriert: 10. Okt 2008, 22:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3) | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon Michl » 3. Jan 2019, 22:17 Re: Lazarus V2.0-RC3 - Tests zum Umstieg

MmVisual hat geschrieben:Ich habe noch etwas gefuden, bin mir aber nicht sicher ob es ein Bug ist oder ein Feature.

TPageControl.OnChange Event

Wenn man mit der Maus auf eine andere Tab Seite klickt, wird dieses Event ausgelöst.
Wenn im Code eine andere Seite aktiviert wird dann nicht. Früher (glaub Lazarus V1.6) war das mal anders.

Anbei ein Test-Code.
project1_Test_TPageControl.zip

Habe es mir jetzt nicht angeschaut, doch daß OnChange nicht ausgelöst wird, ist ein Feature zur Delphi Kompatibilität. OnChanging wird noch ausgelöst, dies wird jedoch gerade gefixt. Um das alte Verhalten zu bekommen, daß auch OnChange bei Code-Seitenwechsel ausgelöst wird, muss nboDoChangeOnSetIndex in Options gesetzt sein. Siehe auch: https://bugs.freepascal.org/view.php?id=25554
Code: Alles auswählen
type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 
Michl
 
Beiträge: 2320
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

» Weitere Beiträge siehe nächste Seite »
Nächste

Zurück zu Komponenten und Packages



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried