Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Werte von Variablen der Hauptklasse innerhalb einer abgeleiteten Klasse verwenden (https://www.delphipraxis.net/161490-werte-von-variablen-der-hauptklasse-innerhalb-einer-abgeleiteten-klasse-verwenden.html)

DeddyH 6. Jul 2011 14:32

AW: Werte von Variablen der Hauptklasse innerhalb einer abgeleiteten Klasse verwenden
 
Seit Delphi 2006 gibt es Klassenvariablen, das müsste das sein, was Du suchst.

compix 6. Jul 2011 14:46

AW: Werte von Variablen der Hauptklasse innerhalb einer abgeleiteten Klasse verwenden
 
Zitat:

Zitat von DeddyH (Beitrag 1110322)
Seit Delphi 2006 gibt es Klassenvariablen, das müsste das sein, was Du suchst.

Vielen Dank für die schnelle Antwort, tatsächlich benötige ich eine class var x:integer in einem solchen Fall, aber wie kann es soetwas wichtiges erst ab der Delphiversion 2006 existieren ? Einfache Alternativen gibt es da nicht ?

DeddyH 6. Jul 2011 15:01

AW: Werte von Variablen der Hauptklasse innerhalb einer abgeleiteten Klasse verwenden
 
Du könntest mit einer globalen Variablen hantieren. Das ist zwar nicht sonderlich fein, aber eine andere Möglichkeit will mir nicht einfallen.

compix 6. Jul 2011 15:19

AW: Werte von Variablen der Hauptklasse innerhalb einer abgeleiteten Klasse verwenden
 
Ja, man ist dann wohl gezwungen das Ganze mit globalen Variablen zu machen, die Klassenvariablen wurden schließlich nicht umsonst eingeführt.
Nun gut, damit hat sich das Problem auch schon gelöst, ich danke für eure Hilfe, super Forum =).

MfG,
compix;

DeddyH 6. Jul 2011 15:25

AW: Werte von Variablen der Hauptklasse innerhalb einer abgeleiteten Klasse verwenden
 
Wenn Du die Klassen in einer Unit deklarierst, kannst Du die globale Variable zumindest im implementation-Abschnitt deklarieren, damit nicht jeder Hansl da rankommt.

[edit] Beispiel:
Unit Testklassen:
Delphi-Quellcode:
type
  TElternklasse = class
  public
    procedure IncX;
    procedure ShowX;
  end;

  TKindklasse = class(TElternklasse)
  end;

implementation

var X: integer;

{ TElternklasse }

procedure TElternklasse.IncX;
begin
  inc(X, 10);
end;

procedure TElternklasse.ShowX;
begin
  ShowMessage(Classname + ': ' +IntToStr(X));
end;
MainUnit:
Delphi-Quellcode:
uses Testklassen;

procedure TFormTest.Button1Click(Sender: TObject);
var
  ClassA: TElternklasse;
  ClassB: TKindKlasse;
begin
  ClassA := TElternklasse.Create;
  try
    ClassA.IncX;
    ClassA.ShowX;
    ClassB := TKindklasse.Create;
    try
      ClassB.IncX;
      ClassB.ShowX;
      ClassA.ShowX;
    finally
      ClassB.Free;
    end;
  finally
    ClassA.Free;
  end;
end;
[/edit]

compix 6. Jul 2011 15:40

AW: Werte von Variablen der Hauptklasse innerhalb einer abgeleiteten Klasse verwenden
 
Das ist in der Tat eine Möglichkeit, aber wenn es die Möglichkeit der Klassenvariablen gibt, dann ist diese natürlich vorzuziehen, auch der Übersichtlichkeit halber. So wie ich das von C++ kenne sollte schon alles schön in verschiedenen Bereichen, sprich in verschiedenen units, gelagert sein.

DeddyH 6. Jul 2011 15:43

AW: Werte von Variablen der Hauptklasse innerhalb einer abgeleiteten Klasse verwenden
 
Da gebe ich Dir vollkommen Recht, nur ist diese Möglichkeit IIRC erst ab Delphi 2006 verfügbar. Du hast ja Deine verwendete Version leider nicht im Profil angegeben, aber zur Sicherheit kannst Du die Verfügbarkeit ja einfach prüfen, indem Du einmal eine Klassenvariable deklarierst und probierst, ob der Compiler das annimmt.
Delphi-Quellcode:
type
  TTest = class
  protected
    class var Blubb: integer;
  end;

compix 6. Jul 2011 15:52

AW: Werte von Variablen der Hauptklasse innerhalb einer abgeleiteten Klasse verwenden
 
Zitat:

Zitat von DeddyH (Beitrag 1110348)
Da gebe ich Dir vollkommen Recht, nur ist diese Möglichkeit IIRC erst ab Delphi 2006 verfügbar. Du hast ja Deine verwendete Version leider nicht im Profil angegeben, aber zur Sicherheit kannst Du die Verfügbarkeit ja einfach prüfen, indem Du einmal eine Klassenvariable deklarierst und probierst, ob der Compiler das annimmt.
Delphi-Quellcode:
type
  TTest = class
  protected
    class var Blubb: integer;
  end;

Habe ich bereits :), mit Delphi 7 gehts nicht, mit 2010 schon. Ich arbeite jedoch meist mit Delphi 7, da wir uns in der Schule leider nur auf Delphi 7 beschränken müssen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:09 Uhr.
Seite 2 von 2     12   

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