AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Stringlisten in mehreren Prozeduren nutzen
Thema durchsuchen
Ansicht
Themen-Optionen

Stringlisten in mehreren Prozeduren nutzen

Ein Thema von WIng2005 · begonnen am 23. Aug 2007 · letzter Beitrag vom 28. Aug 2007
Antwort Antwort
Seite 2 von 3     12 3      
s-off
(Gast)

n/a Beiträge
 
#11

Re: Stringlisten in mehreren Prozeduren nutzen

  Alt 23. Aug 2007, 15:52
Zitat von mkinzler:
Er fragt ab, ob die Variable ein Objekt referenziert
'Assigned' kann aber keine ungültigen oder nicht initialisieren Zeiger 'aufspüren' - somit liesse sich ein Laufzeitfehler bei nicht vorhandenem Objekt so nicht verhindern.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: Stringlisten in mehreren Prozeduren nutzen

  Alt 23. Aug 2007, 15:54
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
Markus Kinzler
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#13

Re: Stringlisten in mehreren Prozeduren nutzen

  Alt 23. Aug 2007, 15:58
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.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#14

Re: Stringlisten in mehreren Prozeduren nutzen

  Alt 23. Aug 2007, 15:59
Kommt wieder zurück zum eigentlichen Thema...
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: Stringlisten in mehreren Prozeduren nutzen

  Alt 23. Aug 2007, 16:00
Doppelt hält halt besser
Markus Kinzler
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#16

Re: Stringlisten in mehreren Prozeduren nutzen

  Alt 23. Aug 2007, 16:02
Zitat von RavenIV:
Kommt wieder zurück zum eigentlichen Thema...
Sorry für den Schwenk Richtung OT

Aber ich glaube, dass wir nicht weiterkommen, solange WIng2005 nicht mal die Senftube öffnet.
  Mit Zitat antworten Zitat
WIng2005

Registriert seit: 20. Mär 2006
Ort: Thüringen
388 Beiträge
 
Delphi XE Starter
 
#17

Re: Stringlisten in mehreren Prozeduren nutzen

  Alt 23. Aug 2007, 20:42
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 ).
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
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#18

Re: Stringlisten in mehreren Prozeduren nutzen

  Alt 24. Aug 2007, 07:05
Zitat von WIng2005:
Die Stringlist ist einfach im public-Teil der Unit deklariert.
Eine Unit ist nichts anderes als eine Datei und hat somit keinen Public-Teil in dem Sinne. Du wolltest hier sicherlich etwas schreiben wie
Zitat:
Die Stringlist ist einfach im public-Teil der Klasse deklariert.
Oder meinst Du, dass Du die Strginliste global, also ausserhalb jeglicher Klassendeklaration deklariert hast? Das sähe dann in etwa so aus:

Delphi-Quellcode:
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.
Wir sind nun leider nicht schlauer, als wir es vor Deiner Antwort waren
  Mit Zitat antworten Zitat
Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#19

Re: Stringlisten in mehreren Prozeduren nutzen

  Alt 24. Aug 2007, 09:03
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:
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.
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.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#20

Re: Stringlisten in mehreren Prozeduren nutzen

  Alt 24. Aug 2007, 09:06
Zitat von Sidorion:
Nur mal nebenbei:[...]
Was möchtest Du jetzt?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:42 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