Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Bei der Deklaration einer Variable einen Wert definieren (https://www.delphipraxis.net/118439-bei-der-deklaration-einer-variable-einen-wert-definieren.html)

Delphi-Neuling 7. Aug 2008 20:42


Bei der Deklaration einer Variable einen Wert definieren
 
Hallo Leute,

meine Frage ist kurz und knapp: Wie ist es möglich bei der Deklaration einer Variable, wie hier im Beispiel:
Delphi-Quellcode:
var Variable : integer;
einen Wert wie beispielsweise 10 festzulegen?

Delphi-Neuling

Neutral General 7. Aug 2008 20:44

Re: Bei der Deklaration einer Variable einen Wert definieren
 
Hi,

Das geht (nur) bei globalen Variablen so:

Delphi-Quellcode:
var Variable : integer = 100;
Bei lokalen Variablen oder Variablen einer Klasse geht das nicht.

Delphi-Neuling 7. Aug 2008 20:51

Re: Bei der Deklaration einer Variable einen Wert definieren
 
Hallo Neutral General,

und wie mache ich das ohne einer globalen Variable? Gibt es da auch eine andere Möglichkeit?

Delphi-Neuling

Apollonius 7. Aug 2008 20:55

Re: Bei der Deklaration einer Variable einen Wert definieren
 
Nein. Nur bei globalen Variablen ist eine derartige Initialisierung überhaupt sinnvoll (aus Maschinensprache-Sicht betrachtet). Lokalen Variablen und Feldern musst du von Hand zu gegebener Zeit einen Wert zuweisen.

Delphi-Neuling 7. Aug 2008 21:09

Re: Bei der Deklaration einer Variable einen Wert definieren
 
Hallo ihr Beide,

danke für die Hilfe :!:

Delphi-Neuling

alex517 7. Aug 2008 21:15

Re: Bei der Deklaration einer Variable einen Wert definieren
 
Das geht auch bei lokalen Variablen.
Allerdings heißen diese Variablen dann "Zuweisbare typisierte Konstanten" und muss in den Projectoptionen
eingeschaltet werden.
Ich nutze das z.B. um sicherzustellen, dass eine Procedure/Funktion nicht rekursiv aufgerufen wird.

Delphi-Quellcode:
procedure Foo();
const // <--- const nicht var !
  lLock: Boolean = false;
begin
  if lLock then exit;
  lLock := true;
  try
   ..
   ..
  finally
    lLock := false;
  end;
end;

alex

Apollonius 7. Aug 2008 21:19

Re: Bei der Deklaration einer Variable einen Wert definieren
 
Das ist dann aber keine lokale Variable mehr.

alex517 8. Aug 2008 12:05

Re: Bei der Deklaration einer Variable einen Wert definieren
 
Zitat:

Zitat von Apollonius
Das ist dann aber keine lokale Variable mehr.

sondern?

Luckie 8. Aug 2008 12:30

Re: Bei der Deklaration einer Variable einen Wert definieren
 
Eine beschreibbare Konstante. So etwas zu nutzen halte ich übriogens für schlechten Stil. Entweder ich benutze eine Variable, um damit zu arbeiten oder ich deklarier eine Konstante, weil ich einen konstanten Wert haben will.

himitsu 8. Aug 2008 12:45

Re: Bei der Deklaration einer Variable einen Wert definieren
 
@Delphi-Neuling:
weise einfach direkt zu Begin der Prozedur/Funktion (also gleich nach dem ersten Begin) den gewünschten Wert zu.

Delphi-Quellcode:
procedure Foo();
var xyz: Integer;
begin
  xyz := 123;
  {...}
end;
des sollte eigentlich die beste/einfachste Variante sein.



@Zuweisbare typisierte Konstanten:
So wären außerdem alle Konstantan davon betroffen,
was einige Nachteile mit sich bringen kann :wall:

Dann doch lieber globale Variablen (innerhalb des Implementation-Blocks haben sie auch keine Auswirkungen außerhalb der Unit)
Und mit passenden Variablennamen kommt man auch sonst mit nichts in Konflikte.
Delphi-Quellcode:
implementation

{...}

var Procedure_Foo_Lock: Boolean = false;

procedure Foo();
begin
  if Procedure_Foo_Lock then exit;
  Procedure_Foo_Lock := true;
  try
    {...}
  finally
    Procedure_Foo_Lock := false;
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:03 Uhr.
Seite 1 von 3  1 23      

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 by Thomas Breitkreuz