Einzelnen Beitrag anzeigen

Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Cross-Platform-Komponenten etwickeln?

  Alt 22. Dez 2013, 17:45
Leider nicht. Gerade zur Laufzeit erstellte Komponenten erhalten so viele Referenzen, dass ARC das nicht mehr mitbekommt. Dort ist dann Release zu verwenden.[/QUOTE]
Also ich kenn nur die Aussage das man Release für Nicht-Modale Dialoge verwenden soll. Für alles andere reicht ein Free.


Für Komponenten sollte man schon immer Release verwenden (habe ich aber erst bei einer Schulung von Deveperts gelernt)
Wie soll das gehen wenn TComponent gar keine Release-Methode hat

Da habe ich bei einen Delphi 5 Projekt nun keine Schutzverletzung aus heiterem Himmel mehr beim Beenden des Programms!
Ich Tipp hier eher auf das Umschiffen eines anderen (eigenen/VCL) Programmfehlers.
Z.B. gabs bei uns mit D5 sporatische Abstürze mit einem DB-Projekt. Bis ich heraus gefunden hat das in der BDE knallhart auf Screen.Curser zugegriffen wurde obwohl beim beenden die Screen-Instanz schon freigegeben war.

Zu den Stringbehandlungen kann ich folgenden Tipp geben:
Delphi-Quellcode:

x: string;


   {$IFDEF NEXTGEN}
   for i:= 0 to Length(x)-1 do begin
   {$ELSE}
   for i:= 1 to Length(x) do begin
   {$ENDIF}
Und was spricht gegen die dafür vorgesehenen Helper-Klassen? Ein Code der mit tausenden NEXTGEN-Ifdefs durchsäht ist, ist nicht gerade übersichtlich und einfachz zu pflegen. Haben hier noch 1-2 Bibliothekten (in älterer Version) die noch mit VCL.NET-Code "verseucht" sind.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat