Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Namespace, oder StaticClass doer sowas


perry5 - Mo 18.12.06 18:12
Titel: Namespace, oder StaticClass doer sowas
Hi, ich hab 2 Procedure in einer Unit.
So alleine sind die ja doof, aber in ne Klasse packen, die ich erst erstellen udn freigeben muss ist noch doofer.
Wenn meine Funktion jetzt GetCommand() heißt, möchte ich z.b. schreiben Parser.GetCommand()
Wie mach ich das am einfachsten?
Bei C++ gibts ja Namespaces mit dnene man das amchen kann, oder man amcht die Klasse static, dann brauch man auch kein Objekt zu erstellen, wie geht sowas mit Delphi?


Allesquarks - Mo 18.12.06 18:17

mit class function bla

myclass.bla;


perry5 - Mo 05.02.07 23:32

Dann muss ich aber ein myclass Objekt anlegen, oder? Ich wills ja eben ganz ohne Objekt, sondern nur mit ner Klasse machen.

Den irgendwie ghet das SO nicht:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
type CParser = class

function GetCommand(p_Text : string) : string;
function GetParameterString(p_Text: string; p_Count : integer) : string;
function GetParameterReal(p_Text: string; p_Count : integer) : real;
function GetParameterInt(p_Text: string; p_Count : integer) : integer;

end;



...




function CParser.GetParameterReal(p_Text : string; p_Count : integer) : real;
begin
 result:=strtofloat(CParser.GetParameterString(p_Text, p_Count));
end;


function CParser.GetParameterInt(p_Text : string; p_Count : integer) : integer;
begin
 result:=strtoint(CParser.GetParameterString(p_Text, p_Count));
end;


[Fehler] Parser.pas(58): Diese Form des Methodenaufrufs ist nur für Klassenmethoden erlaubt


perry5 - Mi 07.02.07 22:49

Das muss doch irgendwie gehen??


Christian S. - Mi 07.02.07 23:24

Hallo!

Es muss ja auch "class function" heissen.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
type
  TMyClass = class
  public
    class function foo : Integer;
  end;

...



Und dann musst auch auch keine Instanz anlegen. :-)

Gruesse
Christian