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.