Delphi-PRAXiS
Seite 4 von 6   « Erste     234 56      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Was kompiliert Delphi 10.3.3 da??? (https://www.delphipraxis.net/202637-kompiliert-delphi-10-3-3-da.html)

sakura 25. Nov 2019 12:17

AW: Was kompiliert Delphi 10.3.3 da???
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1451962)
Zitat:

Zitat von DieDolly (Beitrag 1451960)
Nicht oft aber immer wieder mal wenn ich ein etwas größeres Projekt kompiliere, wird der Vorgang abgebrochen und mit einem Fehler an einer Zeile quittiert...

Das könnte aber auch am Virenscanner liegen, ...

Könnte, glaube ich aber nicht. Dieses Phänomen haben wir hier auch, bei größeren Projekten geht im Compiler irgendwo etwas schief. Wieso ich Virenscanner ausschließe? Einfach: es passiert immer an den gleichen Stellen, wenn ich bestimmte Änderungen an anderen Stellen vornehme. Immer...

...:cat:...

P.S.: Außer Windows-Tools keine weiteren Virenscanner in der VM.
P.P.S.: Es passiert auf jedem Dev-PC, immer.

harfes 25. Nov 2019 15:38

AW: Was kompiliert Delphi 10.3.3 da???
 
@Rolf Frei + MichaelT: Ja, es kommt aus einer Migration von FIBPlus nach IBDAC...allerdings ist dieser Code schon seit XE7 dort und funktioniert bis einschliesslich 10.2 problemlos. Warum, frage ich mich jetzt allerdings selber! Aber solange der Compiler und vor allem der Kunde nicht meckert, fällt es halt nicht auf (und die dahintersteckende Funktion wird täglich so um die 30-50mal aufgerufen - das würde bei Nichtfunktion natürlich schnell auffallen).

Auch der 10.3.3-Compiler meckert ja nicht, interpretiert aber anscheinend den Code intern jetzt anders und das führt beim Ausführen des Programms zu besagtem "Fehler". Damit sind wir wieder beim with...und: irgendetwas muss sich am/im Compiler ja geändert haben, sonst würde jetzt ja nicht dieses "Problem" aufgetaucht sein. Ich habe für mich jedenfalls den Schluss gezogen, dass ich with in Zukunft nicht mehr verwenden werde - auch wenn ich es persönlich übersichtlicher finde...
Des weiteren habe ich die Komponente TIBCSQL mal gegen eine TIBCQuery getauscht und es beim with belassen (es heisst dann aber ExecSQL und nicht mehr ExecQuery) -> damit funktioniert auch die procedure mit with einwandfrei.

Hartmut

Uwe Raabe 25. Nov 2019 15:45

AW: Was kompiliert Delphi 10.3.3 da???
 
Zitat:

Zitat von harfes (Beitrag 1452080)
Auch der 10.3.3-Compiler meckert ja nicht, interpretiert aber anscheinend den Code intern jetzt anders

Ich bin ziemlich sicher, daß das nicht der Fall ist. Wenn das in 10.2.3 Tokyo mit dem Close innerhalb des with noch nicht zu einem Schließen des Forms geführt hat, dann entweder weil die with-Klasse dort noch ein Close kannte oder ein hier nicht sichtbarer Code das verhindert hat (z.B. innerhalb OnCloseQuery).

Rolf Frei 25. Nov 2019 15:49

AW: Was kompiliert Delphi 10.3.3 da???
 
Ich vermute mal, dass du da in XE7 irgendwie die alten FIBPlus Komponenten genutzt hast (falscher Suchpfad, der noch auf FIBPLus zeigte), ohne dir dessen bewusst zu sein. Jetzt in 10.3.3 hast du vermutlich andere Pfade oder die alten zum FIBPlus garnicht erst mehr in der Suchliste. Das wäre für mich die einzige Erklärung. Das hätte so auch in XE7 nicht funktioniert, wenn da wirklich die selben Komponenten gelinkt wurden.

MichaelT 25. Nov 2019 15:55

AW: Was kompiliert Delphi 10.3.3 da???
 
Hallo,

FIB plus war ein Maß unbestritten.

Yep. Ich kann mich nurmehr düster an Diskussion in grauer Vorzeit erinnern aus den Konsequenz der Einbau dieser Kompatibiltätsfunktionen war. Der Usercode wird nicht migriert. In dem Eck holt man noch keine Speed ohne tatsächlich umzubauen.

Das muss sich auch mal rentieren. Die Speed einer Anwendung hochzutreiben heißt noch lange nicht, dass wenn alle gegen einen Server arbeiten davon profitieren. Deswegen ist die Devart mit Standardeinstellungen so mal im Mittel ganz gut.

Ich habe 10.3.3 noch nicht installiert und IBDAC nicht in Verwendung und damit keine Sourcen. Es stellt sich die Frage ob nicht über Interfaces Leerimplementierungen resp. ergänzende 'hereinvererbt werden' damit alles gleich bleibt und andererseits in den Komponenten Abläufe automatisch werden angestoßen. Devart hat sich in dem Eck sehr viel angetan.

Ich denke mich düster zu erinneren, dass Devart den Close vom Windows abfangen, ihre Arbeit erledigen und dann selbst absetzen. (Sicher bin ich mir nach Jahren nicht mehr, ob der Zusammenhang dort war). So etwas in die Richtung ist es vermutlich. Hätte es folgerichtig in der Vergangenheit auch schon sein müssen. Das verwundert mich persönlich genauso.

Zitat:

Zitat von harfes (Beitrag 1452080)
@Rolf Frei + MichaelT: Ja, es kommt aus einer Migration von FIBPlus nach IBDAC...allerdings ist dieser Code schon seit XE7 dort und funktioniert bis einschliesslich 10.2 problemlos. Warum, frage ich mich jetzt allerdings selber! Aber solange der Compiler und vor allem der Kunde nicht meckert, fällt es halt nicht auf (und die dahintersteckende Funktion wird täglich so um die 30-50mal aufgerufen - das würde bei Nichtfunktion natürlich schnell auffallen).

Auch der 10.3.3-Compiler meckert ja nicht, interpretiert aber anscheinend den Code intern jetzt anders und das führt beim Ausführen des Programms zu besagtem "Fehler". Damit sind wir wieder beim with...und: irgendetwas muss sich am/im Compiler ja geändert haben, sonst würde jetzt ja nicht dieses "Problem" aufgetaucht sein. Ich habe für mich jedenfalls den Schluss gezogen, dass ich with in Zukunft nicht mehr verwenden werde - auch wenn ich es persönlich übersichtlicher finde...
Des weiteren habe ich die Komponente TIBCSQL mal gegen eine TIBCQuery getauscht und es beim with belassen (es heisst dann aber ExecSQL und nicht mehr ExecQuery) -> damit funktioniert auch die procedure mit with einwandfrei.

Hartmut


harfes 25. Nov 2019 16:56

AW: Was kompiliert Delphi 10.3.3 da???
 
Ok, ich habe gerade gesehen, dass die von mir verwendete, aktuellste Version 7.0.1 der IBDAC noch nicht für 10.3.3 freigegeben ist (laufen tut sie jedenfalls). Ich bin gespannt, ob der alte with-Code mit dem Close auch dann wieder laufen wird...lt. Devart soll die neue Version nächste Woche kommen.

Und nein, ich werde den Code nicht so lassen, auch wenn es laufen sollte! Jetzt suche ich gerade, ob es von den "Migrationsresten" noch mehr gibt...:shock:

Hartmut

Harry Stahl 25. Nov 2019 17:43

AW: Was kompiliert Delphi 10.3.3 da???
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1451987)
Ist in der Hilfe unter Members view refactorings - Pascal refactorings - Convert with statement beschrieben. Vielleicht muss ich noch mehr Videos machen...

OK, habe das Tool jetzt mal installiert (mein letzter Versuch war 2015, habe ich dabei festgestellt).

Zur "Convert-With"-Funktion: Ja, das hilft tatsächlich die Umstellung zu machen, insofern :thumb:

Die Hilfe musste ich mir allerdings aus dem Programmverzeichnis raus suchen, eine Programmgruppe wurde nicht angelegt (auch im Delphi-Hilfe-Menü kein Eintrag).

Mir sind noch eine Reihe von weiteren Dingen aufgefallen, wenn Du interessiert bist, sende ich Dir diese gerne per privater Nachricht zu.

Uwe Raabe 25. Nov 2019 18:40

AW: Was kompiliert Delphi 10.3.3 da???
 
Zitat:

Zitat von Harry Stahl (Beitrag 1452099)
Mir sind noch eine Reihe von weiteren Dingen aufgefallen, wenn Du interessiert bist, sende ich Dir diese gerne per privater Nachricht zu.

Dann doch bitte als einzelne Mails an support@mmx-delphi.de - dann wird gleich jeweils ein eigener Case dafür angelegt.

Harry Stahl 25. Nov 2019 19:17

AW: Was kompiliert Delphi 10.3.3 da???
 
OK, schon passiert...

Fritzew 25. Nov 2019 19:31

AW: Was kompiliert Delphi 10.3.3 da???
 
Ich arbeite zur Zeit viel mit Remobjects Elements (früher mal Delphi Prism)

Die Erweiterungen die Remobjects da gemacht hat gefällt mir wirklich gut:
aus der Dokumentation: https://docs.elementscompiler.com/Ox...atements/With/
Es lohnt sich mal in die Dokumentation zu schauen .... Remobjects hat meiner Meinung nach die Sprache super aufgewertet....

Zitat:

The with can be used to temporarily introduce new members in the scope. It supports multiple with items seperated by a comma. The main benefit of with over using a regular local var declaration is that with more explicitly limits the scope of the new variables to the statement or block of statements it applies to. The do keyword can be followed by a single statement or a begin/end block grouping multiple statements.

Delphi-Quellcode:
with fb := CalculateFooBar do begin
  writeLn(fb);
end;
// fb is not available here anymore.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:51 Uhr.
Seite 4 von 6   « Erste     234 56      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz