AGB  ·  Datenschutz  ·  Impressum  







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

Delphi <> Java : static class

Ein Thema von Bomberbb · begonnen am 11. Jul 2007 · letzter Beitrag vom 12. Jul 2007
 
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#11

Re: Delphi <> Java : static class

  Alt 11. Jul 2007, 18:14
Hallo,

bei der Verwendung von Klassenvariablen und -konstanten muß beachtet werden, daß sich alle Instanzen eine Variable bzw. Konstante teilen:

Delphi-Quellcode:
type
  TTest = class (TObject)
  private class var
    FMyProp: Integer;
  public
    class property MyProp: Integer read FMyProp write FMyProp;
  end;

var
  T1, T2 : TTest;
begin
  T1.MyProp := 42;
  T2.MyProp := 0;
  ShowMessage (IntToStr(T1.MyProp)); // Ausgabe: '0'!
end;
Das von BomberBB gewünschte Verhalten läßt sich (in allen Delphi-Versionen) mit Objekttypen realisieren, die auch eine Vererbung ermöglichen:

Delphi-Quellcode:
type
  TString = object
  private
    FValue : string;
  public
    procedure ConvertFromInt (aNumber: Integer);
    property Value: string read FValue write FValue;
  end;

procedure TString.ConvertFromInt (aNumber: Integer);
begin
  Value := IntToStr(aNumber);
end;

var
  MyString : TString;
begin
  MyString.ConvertFromInt(42);
  ShowMessage (MyString.Value);
end;
Eine Warnung sei aber angebracht:

Zitat von Delphi-Hilfe:
Objekttypen werden nur aus Gründen der Abwärtskompatibilität unterstützt. Ihre Verwendung unter Win32 ist nicht zu empfehlen. Vom Delphi .NET-Compiler werden sie nicht akzeptiert.
Man sollte also nicht darauf vertrauen, daß auch zukünftige Delphi-Versionen die Objekttypen unterstützen. Das BDS bietet einen Ersatz in Form der erweiterten Record-Typen (leider ohne Vererbung).

Gruß Hawkeye
  Mit Zitat antworten Zitat
 


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 10:07 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