AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Variable einen Anfangwert in der Deklaration zuweisen

Variable einen Anfangwert in der Deklaration zuweisen

Ein Thema von youuu · begonnen am 28. Apr 2014 · letzter Beitrag vom 29. Apr 2014
Antwort Antwort
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#1

Variable einen Anfangwert in der Deklaration zuweisen

  Alt 28. Apr 2014, 21:36
Hi,

kann ich einer Variable direkt bei der deklaration einen Anfangswert zuweisen?

Beispielsweise
i: Integer = 0;
Steven
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.602 Beiträge
 
Delphi 5 Professional
 
#2

AW: Variable einen Anfangwert in der Deklaration zuweisen

  Alt 28. Apr 2014, 21:55
IIRC geht das nur bei globalen Variablen, nicht aber bei lokalen (was mich manchmal nervt).

MfG Dalai
  Mit Zitat antworten Zitat
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#3

AW: Variable einen Anfangwert in der Deklaration zuweisen

  Alt 28. Apr 2014, 21:57
Ok, dacht ich mir. Ja nervt mich auch etwas, gerade beim initialisieren
Steven
  Mit Zitat antworten Zitat
CocoPops
(Gast)

n/a Beiträge
 
#4

AW: Variable einen Anfangwert in der Deklaration zuweisen

  Alt 28. Apr 2014, 21:58
Wieso nicht im OnCreate-Event?
Ist zwar wirklich manchmal nervig, da man manchmal einige Variablen vergisst, aber dabei knickt man sich keinen ab
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.726 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Variable einen Anfangwert in der Deklaration zuweisen

  Alt 28. Apr 2014, 22:21
Der Witz ist doch, daß der Compiler derartige Wertzuweisungen doch auch in eine Variablenzuweisung umwandeln könnte.

Wert merken und direkt nach/in dem BEGIN ein Variable := Wert; .
Bei lokalen Variablen kein großes Problem.

Nur bei Klassen, müsste man den Code irgendwo in einen Contructor machen ... nur welchen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#6

AW: Variable einen Anfangwert in der Deklaration zuweisen

  Alt 29. Apr 2014, 08:15
Nur bei Klassen, müsste man den Code irgendwo in einen Contructor machen ... nur welchen.
In alle.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.726 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Variable einen Anfangwert in der Deklaration zuweisen

  Alt 29. Apr 2014, 09:06
Nein, so leicht ist das nun auch nicht, abgesehn davon, daß man dann einen doppelten Code hat, da er ja überall drin wäre.
Aber das wäre zumindestens eine "einfache" Lösung.

Was wäre, wenn es in der Klasse garkeine eigenen Konstruktoren gäbe? (nur im Vorfahren und in Nachfahren)
Oder mehrere Constructoren ... die können sich auch gegenseitig aufrufen, oder auch nicht.
Und man kann auch Code/Zuweisungen vor dem Inherited ausführen, oder im Nachfahren ruft man das Inherited garnicht auf.


Mir würde da wohl eher NewInstance einfallen, oder besser noch eine Art Multievent in InitInstance rein, bzw. eine neue virtuelle Methode in ala InitFields, denn dort ist auch der Code drin, welche alle Felder mit 0/nil initialisiert.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.745 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Variable einen Anfangwert in der Deklaration zuweisen

  Alt 29. Apr 2014, 09:19
hä?

Ich kann (glaube ich) an einer Hand abzählen, wie oft ich einen Konstruktor mal überladen habe. In anderen Sprachen die (anders als Delphi) kein oder nur sehr eingeschränktes "Konstruktor-Chaining" erlauben hat sich meist eine "init"-Methode eingebürgert die dann alle Felder auf irgendeinen "Anfangswert" setzt.

In Delphi habe ich hingegen immer einen "Grundkonstruktor" wo alles so gesetzt wird, wie es normal sein sollte. Ein "alternativer" Konstruktor ruft dann diesen auf.

Delphi-Quellcode:
TMyClass = class
   protected var someField: Integer;
   protected var someOtherField: String;
   public constructor Create(); overload;
   public constructor Create(const stuff: String); overload;
end;
   
constructor TMyClass.Create();
begin
   inherited Create();
   self.someField := 42;
end;

constructor TMyClass.Create(const stuff: String);
begin
   self.Create();
   self.someOtherField := stuff;
end;
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#9

AW: Variable einen Anfangwert in der Deklaration zuweisen

  Alt 29. Apr 2014, 09:24
Nein, so leicht ist das nun auch nicht, abgesehn davon, daß man dann einen doppelten Code hat, da er ja überall drin wäre.
Doch, das ist so leicht (siehe C#). Und die Initialisierung in der Feld-Deklaration ist kein doppelter Code:
Delphi-Quellcode:
Type
  TMyClass = Class
     fFoobar : Integer := 3;
  ...
  constructor Create;
  constructor Create(bar : Integer);
...
  end;
Wenn das so ginge, wäre es praktisch.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 03:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf