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 Klasse mit vordefinierter Variable? (https://www.delphipraxis.net/74883-klasse-mit-vordefinierter-variable.html)

Jelly 10. Aug 2006 08:01

Re: Klasse mit vordefinierter Variable?
 
Zitat:

Zitat von sh17
mit properties kann man das per default-wert machen, geht dann IMO nicht private

Der Default Wert einer Klasse hat nichts mit der Vorbelegung zu tun, sondern ist die Eigenschaft, die genutzt wird, wenn keine Eigenschaft angegeben wird... Beispiel:

Delphi-Quellcode:
sl := TStringList.Create ;
s1.add ('Blubb') ;
Showmessage (s1[0]) ;    -> s1[0] ist eigentlich s1.items[0]
Aber zum Thema...

Ab Delphi 2006 (oder eventuell ab 2005 ???) kann man im Klassenkopf Konstanten definieren:

Delphi-Quellcode:
myclass = class
const
  _LastZellenzahl = 0;
private
   ...
public
   ...
end ;

TBx 10. Aug 2006 08:02

Re: Klasse mit vordefinierter Variable?
 
hallo!

Nein, Deine const - Deklarationen werden nicht pro Objekt angelegt, sondern einmalig durch die Unit definiert.

Ich denke mal, Du wolltest hier auch gar keine Konstante, sondern nur eine Variable nach deklaration mit einbem Startwert belegen.
Das geht nur über das genannte Konstrukt mit dem constructor

Gruß

onlinekater

PS
@nh17: properties können private, public, protected oder auch published angelegt werden. No Problem

moelski 10. Aug 2006 08:04

Re: Klasse mit vordefinierter Variable?
 
Moin !

Also um es mal zusammenzufassen:
Delphi-Quellcode:
TLVSpectraII = class(TObject)
    public
      constructor Create;

      function 1....;
    private
      EnergieSumme:    Double;      // 
      _LastZellenzahl : Byte;        // 
  end;

constructor TLVSpectraII.Create;
begin
  inherited Create;    // Geerbten Konstruktor aufrufen.
  _LastZellenzahl := 0;       // Variablen vor erster benutzung setzen
  _LastZyklus    := 0;
  _LastStatus    := 0;
  _LastTimeTicker := 0;
end;
Das wäre dann eine Lösung für mein Problem die funktioniert?

TBx 10. Aug 2006 08:07

Re: Klasse mit vordefinierter Variable?
 
Ja, unter der Voraussetzung, daß Du die im Create verwendeten Variablen dann auch noch deklarierst .... :wink:

Gruß

onlinekater

moelski 10. Aug 2006 08:08

Re: Klasse mit vordefinierter Variable?
 
Moin !

Ja klar ...
Delphi-Quellcode:
    private
      EnergieSumme:    Double;      // für KonvertierenGeratedaten als Merker nötig !
      _LastZellenzahl : Byte;        // speichern Zustand der letzten Daten
      _LastZyklus    : Byte;
      _LastStatus    : Byte;
      _LastTimeTicker : TLVTimeTicker;
Der Vollständigkeit halber :-)

Vielen Dank für die Infos.

sh17 10. Aug 2006 08:11

Re: Klasse mit vordefinierter Variable?
 
Zitat:

Delphi-Quellcode:
_LastTimeTicker : TLVTimeTicker;

Der kann aber nicht mit 0 initialisiert werden.

Jelly 10. Aug 2006 08:14

Re: Klasse mit vordefinierter Variable?
 
Zitat:

Zitat von sh17
Zitat:

Delphi-Quellcode:
_LastTimeTicker : TLVTimeTicker;

Der kann aber nicht mit 0 initialisiert werden.

Wenn TLVTimeTicker eine eigene Klasse ist, so sollte der Konstructor dieser Klasse die Initialisierungen übernehmen. Wenn Du in deiner Klasse andere Werte brauchst, so musst Du sie in deinem Konstruktor noch entsprechend anpassen:

Delphi-Quellcode:
_LastTimeTicker.IrgendeienProperty := 0 ;


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

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