AGB  ·  Datenschutz  ·  Impressum  







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

Globale Konstanten

Ein Thema von Amicello · begonnen am 13. Sep 2016 · letzter Beitrag vom 13. Sep 2016
Antwort Antwort
Amicello

Registriert seit: 12. Sep 2016
11 Beiträge
 
#1

Globale Konstanten

  Alt 13. Sep 2016, 16:52
Bin ganz neu bei Delphi - und wie ich das von gewohnt bin, möchte ich auch gern mein Delphi Projekt sinnvoll aufteilen - ganz einfach um für mich den Quelltext noch halbwegs übersichtlich zu gestalten.

Dazu möchte ich mehrere Units mit entsprechenden Funktionen und Klassen für ihre jeweiligen Bereiche erstellen.
Zusätlzich habe ich eine Liste konstanter Addressen und Offsets, die ich global über alle Unterunits im gesamten Programm nutze.
Die Pflege der Adressen / Offsets soll wieder zentral in einer einzigen Datei möglich sein.

Leider scheitert es gerade bei mir daran, dass ich zu dämlich bin zu googlen, wie ich globale Konstanten in einer Unterdatei definiere. Es steht zwar vieles darüber dass man als Programmierer den Sichtbarkeitsbereich einer Konstante festlegen kann, aber nicht wie. In konkreten Beispielen geht es immer nur um globale Variablen.

Hat da mal jemand ein Beispiel zur Hand?
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Globale Konstanten

  Alt 13. Sep 2016, 16:54
Variablen/Konstanten sind global, wenn du sie im interface Bereich einer Unit definierst.
Musst diese Unit dann halt überall da einbinden wo du Zugriff drauf brauchst:

Delphi-Quellcode:
unit GlobaleVariablen;

interface

var
  Variable: Integer = 5;

const
  Konstante = 'Hallo';

implementation

end.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#3

AW: Globale Konstanten

  Alt 13. Sep 2016, 16:55
Ich mache das immer so:

Delphi-Quellcode:
unit _global_vars;

interface

// uses ... ;

type
 TGlobalVars = packed record
 
 // alles mögliche an Variablen z.B.
 iInteger: Integer;
 sString: String;

 // und / oder const z.B:
 const
  iConstInteger: Integer = 123;
  sConstString: String = 'Fester String';
end;

// ...

var
 aGlobalVars: TGlobalVars; // Variablen und Konstanten können nun über "aGlobalVars.sMeineVariable" aufgerufen werden.
 
implementation

// hier notfalls irgendwelchen Funktionen und Proceduren, wenn nötig

end.
Ich finde das mit dem Record besser, da so ein Kontext besteht und man so weiß, wo die Variable hingehört.
Dafür das Record natürlich entsprechend benennen.

Geändert von dGeek (13. Sep 2016 um 17:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.311 Beiträge
 
Delphi 12 Athens
 
#4

AW: Globale Konstanten

  Alt 13. Sep 2016, 17:00
Hallöle...

Dann mußt die Konstanten Unit in der USES im interface deiner Unit deklarieren. Dann kannst du die Konstante über den Namen verwenden.
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#5

AW: Globale Konstanten

  Alt 13. Sep 2016, 17:03
... im Uses einer ANDEREN Unit.
In einer Unit, wo die Variablen/Konstanten verwendet werden sollen.

*Klugscheiß*
  Mit Zitat antworten Zitat
Amicello

Registriert seit: 12. Sep 2016
11 Beiträge
 
#6

AW: Globale Konstanten

  Alt 13. Sep 2016, 17:27
Danke... nachdem ich den Uses-Block in der Konstantendefinition entfernt habe funktioniert es prima!
Irgendwas war da faul. Ich denke jetzt bin ich auf einem guten Weg.

Problem 2 von 254.935 (total) gelöst.


Unit xxx

Interface

Const
(...)

Implementation

End.
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#7

AW: Globale Konstanten

  Alt 13. Sep 2016, 17:28
Denke mal über die Implementierung mit dem Record nach. Das erspart dir später viel Ärger beim Suchen von Variablen und Zusammenhängen.
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:21 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