Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Variable in Record für Unit (initialization) deklarieren (https://www.delphipraxis.net/194687-variable-record-fuer-unit-initialization-deklarieren.html)

LTE5 21. Dez 2017 13:07


Variable in Record für Unit (initialization) deklarieren
 
Ich komme gerade nicht weiter. Wie muss man eine Variable in einem Record deklarieren, wenn diese nur für diese ein Unit zur Verfügung stehen soll?

Gebraucht wird die Variable im initialization-Teil.

In dieser Variablen vom Typ TFormatSettings möchte ich die aktuell von Windows genutzten Formate
FormatSettings.ShortTimeFormat, FormatSettings.LongTimeFormat, FormatSettings.ShortDateFormat und FormatSettings.LongDateFormat speichern.

Der schöne Günther 21. Dez 2017 13:12

AW: Variable in Record für Unit (initialization) deklarieren
 
Zitat:

Zitat von LTE5 (Beitrag 1389425)
wenn diese nur für diese ein Unit zur Verfügung stehen soll?

Das ist das Schlüsselwort
Delphi-Quellcode:
private
.

Delphi-Quellcode:
interface uses System.SysUtils;

type
   TSomeRecord = record
      private var
         originalFormatSettings: TFormatSettings;
   end;

var
   iLikeGlobalVariables: TSomeRecord;

implementation

initialization
   iLikeGlobalVariables.originalFormatSettings := System.SysUtils.FormatSettings;
end.

LTE5 21. Dez 2017 13:15

AW: Variable in Record für Unit (initialization) deklarieren
 
Delphi-Quellcode:
iLikeGlobalVariables: TSomeRecord;
Das hat mir gefehlt.

Kann man das irgendwie lokal deklarieren, sodass andere Units diese Variable nicht sehen?
Denn ich arbeite grundsätzlich mit Records und Class-Angaben wie diese hier

Delphi-Quellcode:
class procedure TUnitX.FunctionY(Param: Z);
und rufe das über TUnitX.FunctionY(Z); auf.

Der schöne Günther 21. Dez 2017 13:17

AW: Variable in Record für Unit (initialization) deklarieren
 
Verschiebe die Varialen-Deklaration vom
Delphi-Quellcode:
interface
in den
Delphi-Quellcode:
implementation
-Teil, schon sieht sie außer deiner Unit keiner mehr.

Delphi.Narium 21. Dez 2017 13:17

AW: Variable in Record für Unit (initialization) deklarieren
 
Delphi-Quellcode:
implementation

var
   iLikeGlobalVariables: TSomeRecord;

LTE5 21. Dez 2017 13:18

AW: Variable in Record für Unit (initialization) deklarieren
 
:thumb:

Wieder was gelernt. Danke.

Jetzt kann ich im initialization-Teil folgendes machen, genau wie gewünscht
Delphi-Quellcode:
iLikeGlobalVariables.originalFormatSettings.ShortDateFormat := FormatSettings.ShortDateFormat;
usw
Natürlich nutze ich andere Variablennamen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:41 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