![]() |
Re: Stringlisten in mehreren Prozeduren nutzen
Zitat:
|
Re: Stringlisten in mehreren Prozeduren nutzen
Es prüft nur auf Nil. wenn das Objekt bereits zerstört ist, liefert .Assigned natürlich true. deshalb ist es ja sinnvoll FreeAndNil zu verwenden
|
Re: Stringlisten in mehreren Prozeduren nutzen
Ja, das ist mir schon klar.
Aber Du stimmst mir doch sicherlich zu, dass das Assigned an dieser Stelle überflüssig ist, da ein einfaches FreeAndNil(sl) ausreichen würde, oder? Bin gerade etwas verwirrt. |
Re: Stringlisten in mehreren Prozeduren nutzen
Kommt wieder zurück zum eigentlichen Thema...
|
Re: Stringlisten in mehreren Prozeduren nutzen
Doppelt hält halt besser :)
|
Re: Stringlisten in mehreren Prozeduren nutzen
Zitat:
Aber ich glaube, dass wir nicht weiterkommen, solange WIng2005 nicht mal die Senftube öffnet. |
Re: Stringlisten in mehreren Prozeduren nutzen
So nun ich mal wieder....
Ich kann leider erst am Montag testen, was ihr so schreibt (Delphi habe ich leider nur an der Arbeit und ab heute ist Wochenende :-D ). Die Stringlist ist einfach im public-Teil der Unit deklariert. In der Prozedur, in welcher die Liste als solche erzeugt wird, kann ich uneingeschränkt schreiben (A). Jedoch bricht die Anwendung ab, sobald ich in B versuche selbiges zu tun. Das ist mein ganzes Problem.... MFG Steffen |
Re: Stringlisten in mehreren Prozeduren nutzen
Zitat:
Zitat:
Delphi-Quellcode:
Wir sind nun leider nicht schlauer, als wir es vor Deiner Antwort waren :wink:
Unit Unit1;
Interface Uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; Type TForm1 = Class(TForm) private { Private-Deklarationen } //<--hier private (in der Klasse TForm1) public { Public-Deklarationen } //<--hier public (in der Klasse TForm1) End; Var Form1: TForm1; sl: TStringlist; //<-- hier global Implementation {$R *.dfm} End. |
Re: Stringlisten in mehreren Prozeduren nutzen
Nur mal nebenbei: Globale Objekte sollte man über ein Singleton absichern, sprich: eine Funktion zum Zugriff deklarieren. Im Initialzation-Abschnitt wird der Zeiger auf Nil gesetzt, im finalization das Objekt zerstört und in der Funktion erstelle, falls es noch nicht erstellt wurde, also z.B. so:
Delphi-Quellcode:
Dann ist auch gewährleistet, dass diese Liste auch erstellt wird bei Benutzung. So wird allerdings die vorzeitige Zerstörung nicht verhindert, da muss man dann noch aufpassen. Solange man nur über die Funktion zugreift und den Destruktor nicht ruft, passiert nix.
Unit Foo;
Interface Function MyStringList: TStringList; Implementation Var oMyList: TStringList; Function MyStringList: TStringList; Begin If Not Saaigned(oMyList) Then oMyList:=TStringList.Create; Result:=oMyList; End; ... Initialization oMyList:=Nil; Finalization FreeAndNil(oMyList); End. |
Re: Stringlisten in mehreren Prozeduren nutzen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:56 Uhr. |
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