Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Funktion mit Variablen Parametern


mambo - Fr 05.12.03 13:26
Titel: Funktion mit Variablen Parametern
Hallo !

Ich habe eine Funktion

Delphi-Quelltext
1:
GetIniValue(IniType,Section,Key: String): Stringoverload;                    


Als Ini-Typ kann ich 2 vordefinierte Strings übergeben: 'APPLICATION' und 'USER'. Wenn der Ini-Typ 'USER' ist, dann hole ich den String aus der Section/Key der fixen User-IniDatei und wenn der IniTyp 'APPLICATION' ist aus der Application-ini-Datei. Soweit, so gut.

nun möchte ich aber eine überladene Funktion schreiben, mit der man auch wahlweise direkt irgendeinen IniFileNam übergeben kann, also

Delphi-Quelltext
1:
GetIniValue(FileName,Section,Key: String): Stringoverload;                    

Nur unterscheiden sich diese 2 Funktionen ja nicht, da ja immer 3 Strings als Parameter übergeben werden.

Wenn ich einen eigenen Typ TIniType hätte, dann würds funktionieren und wäre auch insofern sauberer programmiert, daß ich nicht irgendeinen String als IniType übergebe, sondern nur 2 fixe Werte als Typ möglich sind. So könnte man dann auch die 2 Funktionen mit overload eindeutig unterscheiden.

Also:

Delphi-Quelltext
1:
2:
GetIniValue(IniType: TIniTyp; Section,Key: String): Stringoverload;
GetIniValue(FileName,Section,Key: String): Stringoverload;



Wie kann ich aber einen eigenen Typ, z.B. meinen eigenen TIniTyp definieren, und diesem nur 2 mögliche Werte (z.B. itApplication und itUser geben, wie das bei bestimmten Komponenten der Fall ist ?

ich möchte die Funktion dann auf 2 Arten aufrufen können:
1.

Delphi-Quelltext
1:
 GetIniValue(itApplication,'DB','PATH');                    

und

Delphi-Quelltext
1:
 GetIniValue('C:\Temp\Test.ini','DB','PATH');                    


Danke für Eure Hilfe

Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt; Topic verschoben.


barfuesser - Fr 05.12.03 13:35


Delphi-Quelltext
1:
2:
type
  TIniType = (itApplication, itUser);


barfuesser