Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi 11 -> bei TForm OldCreateOrder entfallen! (https://www.delphipraxis.net/208882-delphi-11-bei-tform-oldcreateorder-entfallen.html)

det33 24. Sep 2021 19:24

Delphi 11 -> bei TForm OldCreateOrder entfallen!
 
Hallo,

evtl. bin ich der Einzige, der es noch nicht mitbekommen hat :shock:, aber bei Delphi 11 ist bei TForm die Eigenschaft „OldCreateOrder“ entfallen. In der Beschreibung der Neuerungen ist nur die Rede von einer Änderung bei TDatamodule! Auch in der Online-Hilfe ist die Eigenschaft bei TForm noch beschrieben!

Zugegeben, es ist eine alte Eigenschaft. Aber ich habe ein Projekt über mehrere Delphi-Versionen entwickelt und diese Eigenschaft genutzt. Jetzt muss ich mühsam testen, wo dadurch evtl. Fehler auftreten. :(

DP-Maintenance 25. Sep 2021 06:35

Dieses Thema wurde am "25. Sep 2021, 07:35 Uhr" von "Daniel" aus dem Forum "Die Delphi-IDE" in das Forum "GUI-Design mit VCL / FireMonkey / Common Controls" verschoben.

Uwe Raabe 26. Sep 2021 08:52

AW: Delphi 11 -> bei TForm OldCreateOrder entfallen!
 
Vielleicht hilft dir dieser Artikel etwas weiter: OldCreateOrder – er, what?

Sinspin 27. Sep 2021 07:58

AW: Delphi 11 -> bei TForm OldCreateOrder entfallen!
 
Danke Uwe,

sehr schön erklärt.
Ich habe auch das Problem das eine ganze Reihe alte Forms
Delphi-Quellcode:
OldCreateOrder = true
haben. Bis ich auf D11 umsteige muss ich das also gelößt haben.

TM6 1. Dez 2021 08:06

AW: Delphi 11 -> bei TForm OldCreateOrder entfallen!
 
Ich wollte nun auch auf Delphi 11 wechseln und diese Änderung hat mich auch massiv getroffen und überrascht.
Das wird massiv viel Vorarbeit kosten :cry:

Bei Hunderten von Formularen bedeutet das wahrscheinlich, dass der Wechsel auf Delphi 11 wohl noch um Monate verschoben wird.

In der Hilfe von Delphi 10.4 steht nicht einmal ansatzweise drin, dass diese Eigenschaft entfernt wird.
Jetzt befürchte ich einen größeren Mehraufwand als beim Wechsel auf 64 Bit oder den auf Unicode.

Wenn ich genug Zeit haben würde, immer in Foren u.ä. zu lesen, dann hätte ich wohl schon früher mit Anpassungen anfangen können.

Aber wieso nur hat Embarcadero den Support dafür plötzlich eingestellt?

Uwe Raabe 1. Dez 2021 09:57

AW: Delphi 11 -> bei TForm OldCreateOrder entfallen!
 
Eigentlich dürfte das überhaupt keinen Aufwand verursachen. In meinem Artikel schreibe ich ja:
Zitat:

The typical workaround in these old days, when OldCreateOrder was the only and standard behavior, was to move the TStringList creation before the inherited call. Luckily this approach works even when OldCreateOrder is False.
Wenn also OldCreateOrder = False ist, macht das Verschwinden des Properties in der DFM keinen Unterschied. Ist aber OldCreateOrder = True, ist der Code bereits so geschrieben, dass er auch mit OldCreateOrder = False funktionieren würde.

Probleme gäbe es allenfalls, wenn Code mit OldCreateOrder = False plötzlich mit OldCreateOrder = True laufen soll. Das ist aber beim Wechsel auf Delphi 11 überhaupt nicht der Fall.

TM6 1. Dez 2021 12:55

AW: Delphi 11 -> bei TForm OldCreateOrder entfallen!
 
Ich habe TForm abgeleitet und mache dort nach dem inherited create zentral einige Anpassungen.

Diese werden bei OldCreateOrder = false teilweise zu zeitig und somit ohne Auswirkung durchgeführt, da die Reihenfolge jetzt nicht mehr stimmt.

Das Vorgehen war vielleicht nicht ganz sauber, aber es war der schnellste Weg.

Sherlock 1. Dez 2021 13:09

AW: Delphi 11 -> bei TForm OldCreateOrder entfallen!
 
Zitat:

Zitat von TM6 (Beitrag 1498503)
Das Vorgehen war vielleicht nicht ganz sauber, aber es war der schnellste Weg.

So fangen leider immer die zeitfressenden Umbaumaßnahmen an, die Code auf einen aktuellen Stand bringen sollen. Ich glaube, die allermeisten von uns haben mindestens einmal diese bittere Pille schlucken müssen.

Sherlock

Uwe Raabe 1. Dez 2021 13:14

AW: Delphi 11 -> bei TForm OldCreateOrder entfallen!
 
Zitat:

Zitat von TM6 (Beitrag 1498503)
Ich habe TForm abgeleitet und mache dort nach dem inherited create zentral einige Anpassungen.

Diese werden bei OldCreateOrder = false teilweise zu zeitig und somit ohne Auswirkung durchgeführt, da die Reihenfolge jetzt nicht mehr stimmt.

Das Vorgehen war vielleicht nicht ganz sauber, aber es war der schnellste Weg.

Sollte dies nicht schon in Delphi 3 oder früher geschehen sein, dann hast du damals ohne Notwendigkeit den falschen Weg eingeschlagen. Das rächt sich jetzt eben.

Hoffentlich ist das allen die ebenfalls manchmal nicht ganz sauber aber schneller programmieren eine Lehre.

Jetzt mal ehrlich: OldCreateOrder ist 1998 eingeführt worden. Bis zum Wegfall in 2021 waren 23 Jahre Zeit es richtig zu machen.

Frickler 1. Dez 2021 13:28

AW: Delphi 11 -> bei TForm OldCreateOrder entfallen!
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1498507)
Jetzt mal ehrlich: OldCreateOrder ist 1998 eingeführt worden. Bis zum Wegfall in 2021 waren 23 Jahre Zeit es richtig zu machen.

Andererseits muss man sagen: 23 Jahre lang hat Borland/Inprise/Borland/Codegear/Embarcadero das mitgeschleppt, um es ausgerechnet jetzt überraschend zu kicken. Und die Onlinehilfe sagt an keiner (mir bekannten) Stelle, dass das alte Verhalten irgendwie falsch wäre.

P.S.: unter den "Legacy"-Properties von TForm befindet sich zudem auch "Ctl3D" bzw. "ParentCtl3D". Sind diese Properties auch mit Delphi 11 weggefallen?

Uwe Raabe 1. Dez 2021 14:03

AW: Delphi 11 -> bei TForm OldCreateOrder entfallen!
 
Hier ein Kommentar seitens Embarcadero zu TForm/TDatamodule - OldCreateOrder is removed

Rolf Frei 1. Dez 2021 14:27

AW: Delphi 11 -> bei TForm OldCreateOrder entfallen!
 
Habe selber D11 noch nicht im Einsatz, da ich das erst installieren will, wenn die gössten Bugs bereinigt sind. Wüsste nur gerne, ob da auch für mich eine unschöne Überaschung auf mich wartet.

Habe in alle allen Formen in meinen Projekten und 3rd Partylibraties in der DFM OldCreateOrder=False drin stehen, weil es da kein default zu dem Property gibt und es immer in die DFM geschrieben wird. False ist doch der Default, oder? Heisst das nun, dass alle diese Formen zur Runtime einen Fehler "Property OldCreateOrder not found" produzieren?! Das wäre echt schlimm.

Uwe Raabe 1. Dez 2021 14:56

AW: Delphi 11 -> bei TForm OldCreateOrder entfallen!
 
Zitat:

Zitat von Rolf Frei (Beitrag 1498516)
Heisst das nun, dass alle diese Formen zur Runtime einen Fehler "Property OldCreateOrder not found" produzieren?! Das wäre echt schlimm.

Nein, dafür sorgt diese Codezeile:
Delphi-Quellcode:
Filer.DefineProperty('OldCreateOrder', IgnoreIdent, nil, False);

Rolf Frei 1. Dez 2021 16:37

AW: Delphi 11 -> bei TForm OldCreateOrder entfallen!
 
Ah OK dann ist ja alles gut für mich.

Frickler 1. Dez 2021 17:29

AW: Delphi 11 -> bei TForm OldCreateOrder entfallen!
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1498512)
Hier ein Kommentar seitens Embarcadero zu TForm/TDatamodule - OldCreateOrder is removed

Da kommt ne Login-Abfrage. Ich habe keinen laufenden Wartungsvertrag, kann dann wohl nicht nachsehen...

himitsu 1. Dez 2021 17:49

AW: Delphi 11 -> bei TForm OldCreateOrder entfallen!
 
Jira/My/EDN ist wie hier im Forum ... es ist egal ob du einen aktiven Wartungsvertrag oder überhaupt ein Delphi gekauft/lizenziert hast.

siehe Introduction > https://quality.embarcadero.com
-> https://my.embarcadero.com


Jira ist das neue QC

Uwe Raabe 1. Dez 2021 17:51

AW: Delphi 11 -> bei TForm OldCreateOrder entfallen!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Frickler (Beitrag 1498522)
Da kommt ne Login-Abfrage. Ich habe keinen laufenden Wartungsvertrag, kann dann wohl nicht nachsehen...

Solange du einen gültigen EDN-Account hast sollte schon das gehen - unabhängig von einer aktiven Subscription.

Für alle Fälle hier der entsprechende Kommentar.

TM6 2. Dez 2021 08:24

AW: Delphi 11 -> bei TForm OldCreateOrder entfallen!
 
Das Problem war am Ende doch nicht so groß wie ich befürchtet hatte.
Ich habe zwar bislang erst ca. 25% der Formulare durchgearbeitet, aber davon benötigten bislang nur 3 eine Anpassung.

Das Problem, dass ich in so vielen Masken noch "OldCreateOrder = true" gesetzt hatte, lag hauptsächlich daran, dass über die Jahre fast alle neue Masken aus Kopien anderer Masken aufgebaut wurden und da hat man diese Eigenschaft immer mitgeschleppt.
Und die Originale stammten alle noch aus dem letzten Jahrtausend.

Frickler 2. Dez 2021 10:40

AW: Delphi 11 -> bei TForm OldCreateOrder entfallen!
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1498525)
Zitat:

Zitat von Frickler (Beitrag 1498522)
Da kommt ne Login-Abfrage. Ich habe keinen laufenden Wartungsvertrag, kann dann wohl nicht nachsehen...

Solange du einen gültigen EDN-Account hast sollte schon das gehen - unabhängig von einer aktiven Subscription

Jetzt gehts. Interessant. Als ich das das letzte Mal probiert habe, kam (mit den gleichen Zugangsdaten) eine "Access Denied" Fehlermeldung. Ich hab mir dann gedacht, ok, kein Wartungsvertrag, kein Zugriff - und habs nicht mehr weiter probiert...

himitsu 2. Dez 2021 18:00

AW: Delphi 11 -> bei TForm OldCreateOrder entfallen!
 
Keine Sorge, ihr seid nicht die Einzigen.

Andere Firmen/Komponenten strotzen nur vor OldCreateOrder=True

DevExpress
FastReports
ImageEn
PgDAC-Demos
SynEdit-Demos
Python4Delphi-Demos

Greatis-FormDesigner/ObjekcInspector
DropMaster2
ComportLib4



Bei uns mußte ich nur die eine Code-Zeile entfernen, wo ich beim neuen Speichern von uralten RuntimeForms (DFMs in der DB gespeichert) dieses Property auf False setze.
In der DB finde ich zwar immernoch hunderte uralte RTFs, aber zum Glück hat Emba da ja eingebaut, dass sie nun diese Properties löschen, beim Laden oder NeuSpeichern, so muß ich nun nicht in der DB rumkramen und die Syncro austricksen (damit nicht ich als letzter Bearbeiter überall drin steh, wenn ich die nun alle bearbeiten würde) :thumb:

Oder vielleicht sicherheitshalber mal ein DB-Script laufen lassen, was den Änderungstrigger deaktiviert, überall das Änderungsdatum um eine Sekunde hochsetzt und diese Zeile in den DFMs löscht. (falls Emba in den nächsten 10-20 Jahren das ganz ausbauen sollte :stupid:)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:39 Uhr.

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