Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi [ERLEDIGT]class function -> grundsätzliche frage (https://www.delphipraxis.net/21467-%5Berledigt%5Dclass-function-grundsaetzliche-frage.html)

kiar 3. Mai 2004 14:44


[ERLEDIGT]class function -> grundsätzliche frage
 
hallo,

ich ertselle ein neues object, und möchte nun einen instanzen zähler hinzufügen
Delphi-Quellcode:
type

   TStatus = class
           FID         : integer;
           Fdienst     : boolean;
           Ftopcolor   : TColor;
           FbottomColor : Tcolor;
           private
           class function Counter : integer;
   end;
in der implementierung rufe ich die funktion wie folgt auf
Delphi-Quellcode:
class Function TStatus.Counter :integer;
     begin
            result := erzeug;
     end;
ich will damit erreichen, das ich schon vor der erzeugung auf das object zugreifen kann, was ja bei einer class function geht.

erzeug ist ein integer , welcher in der initialisierung mit 0 belegt wird, also müsste mir doch diese function den wert null zurükgeben.

macht sie aber nicht, warum?

fehlermeldung: fehler beim lesen auf adresse .....
edit :
wenn ich die counter - funktion nach dem create aufrufe, ist es aber i.o. :wall:

raik

teebee 3. Mai 2004 14:59

Re: class function -> grundsätzliche frage
 
Also bei mir funktioniert das sehr gut, habe 'erzeug' als globale Variable deklariert. Kann den Fehler nicht reproduzieren, habe Deinen Code 1:1 übernommen.

Gruß, teebee

kiar 3. Mai 2004 15:03

Re: class function -> grundsätzliche frage
 
:mrgreen:

ich erstelle eine class function, um ohne instanz einen zähler zu erhalten und greife dann über eine instanz darauf zu
Delphi-Quellcode:

var
 FStatus : TStatus;
 iCount : Integer;
begin
  iCount:= FStatus.Counter // ich vollidiot, das ist falsch
  iCount:= TStatus.Counter; // das ich richtig
  Fstatus:= TStatus.create;
....
end;
dank, an alle die gelacht haben

raik


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:37 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