AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

globale Variablen

Offene Frage von "AlexanderBrade"
Ein Thema von AlexanderBrade · begonnen am 15. Feb 2009 · letzter Beitrag vom 16. Feb 2009
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#21

Re: globale Variablen

  Alt 16. Feb 2009, 15:07
Zitat von DeddyH:
Stimmt, die globale Variable muss in den interface-Teil, ansonsten ist sie nicht von außen erreichbar.
Eben nicht. Es darf ja auch keiner die Instanzvariable verändern.

Edit1: Im Finalization wäre ein einfaches nilfree besser.
Edit2: Habe ich im Edit1 tatsächlich "nil" geschrieben, ich meinte natürlich free.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#22

Re: globale Variablen

  Alt 16. Feb 2009, 15:08
Man sollte auch den ganzen Ursprungscode lesen
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#23

Re: globale Variablen

  Alt 16. Feb 2009, 16:50
Zitat von Hawkeye219:
Hallo,

der Zugriff erfolgt über die Klassenmethode RetrieveInstance, die eine Referenz auf die (einzige) Instanz liefert:

Delphi-Quellcode:
uses
  GlobalRessources;

begin
  TGlobalRessources.RetrieveInstance.<Eigenschaft>
end;
Gruß Hawkeye
ich verstehe immer noch nicht den echten Vorteil, als wenn
ich direkt über die im interface zugängliche Instanz auf das
globale Objekt zugreife...

Ist es, damit man das globale Objekte nicht aus Versehen freigibt?

Würde -- wenn ich unbedingt Dummheiten machen will -- nicht
auch folgendes funktionieren?

  TGlobalRessources.RetrieveInstance.Free;
Gruß
Jürgen
Jürgen Höfs
  Mit Zitat antworten Zitat
squetk

Registriert seit: 29. Aug 2004
Ort: Cottbus
118 Beiträge
 
Delphi XE2 Professional
 
#24

Re: globale Variablen

  Alt 16. Feb 2009, 17:04
Ich denke, man sollte hier kein Dogma setzen.

Schreibe ich allein ein kleines Tool, muss ich nicht diese Sicherheiten einbauen. Da bediene ich mich hemmungslos globaler Variablen.

Handelt es sich um eine große Anwendung, an der mehrere Entwickler arbeiten, ist die Vorgehensweise der Kapselung jedoch sinnvoll.
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#25

Re: globale Variablen

  Alt 16. Feb 2009, 18:12
Hallo Jürgen,

Zitat von Pfoto:
Würde -- wenn ich unbedingt Dummheiten machen will -- nicht
auch folgendes funktionieren?

  TGlobalRessources.RetrieveInstance.Free;
Wenn du eine Dummheit begehen möchtest, kann dich niemand davon abhalten - schon gar nicht Delphi.

Das singleton pattern bietet durchaus einige Vorteile. Neben den bereits erwähnten (Schutz vor mehrfacher Instanziierung, Schutz vor versehentlichem Überschreiben der globalen Variablen) möchte ich noch einen weiteren nennen: Verzicht auf unnötige Instanziierung. Die globalen Objekte werden erst dann erzeugt, wenn sie wirklich benötigt werden. Das ist insbesondere dann sinnvoll, wenn das Erstellen der Objekte sehr zeitaufwendig ist oder sie viel Speicherplatz benötigen.

Beispiel für Singletons findest du übrigens auch in der VCL. Schaue dir mal den Quelltext der Units ClipBrd und Printers an.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#26

Re: globale Variablen

  Alt 16. Feb 2009, 18:54
Danke Hawkeye, jetzt ist es verständlich geworden. Gruß Jürgen
Jürgen Höfs
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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:00 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