Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Variable Anzahl an Parametern -> Integer/String


H2O - Mi 03.06.09 16:01
Titel: Variable Anzahl an Parametern -> Integer/String
Hallo.

Ich würde gerne eine Funktion erstellen, die so aussieht:

function machdas(arg : String, [Variable Anzahl an Stringargumenten], [Variable Anzahl an Integerargumenten]) : String;


Jetzt habe ich in einem anderen Thread schon gelesen, dass es so irgendwie geht:
function ElementOfConst(aIndex: Integer; aArray: Array Of Const): Variant;
Wie kann ich aber jetzt einen Wert aus aArray ansprechen ohne sofort einen Error zu erhalten, wenn ich ihn weiterverarbeiten will?


Und wie rufe ich die Funktion überhaupt korrekt auf?
ElementOfConst(3,6,2) funktioniert z.B. schon nicht, Error: "Constants cannot be used as open array arguments"

Ich programmiere mit Delphi 7 und bin noch totaler Anfänger.

Danke für Hilfe


Boldar - Mi 03.06.09 16:18

Lies erstmal das hier:
http://www.christian-stelzmann.de/index_tutorials_crashkurs_reloaded.html


H2O - Mi 03.06.09 16:22

Hab schon das [http://de.wikibooks.org/wiki/Programmierkurs:_Delphi:_Inhaltsverzeichnis] gelesen.

So ein totaler Anfänger bin ich auch nicht...


Boldar - Mi 03.06.09 16:23

Dann muss dir wohl auffallen, dass da eine Konstante übergeben wird. Das sind absolute grundlagen :nixweiss: :nixweiss:


jaenicke - Mi 03.06.09 16:35

Schon so versucht?

Delphi-Quelltext
1:
ElementOfConst(5, [32]);                    
Denn der zweite Parameter ist ein Array...


H2O - Mi 03.06.09 17:34

Ach Mist... Irgendwie hatte ich im Kopf, dass in Delphi ein Array duch runde Klammern gekennzeichnet wird...
Hatte es schon so probiert ElementOfConst(3, (6,2));

Jetzt funktioniert meine Abfrage endlich:
if (arguments[0].VType = vtInteger) then
showmessage(IntToStr(arguments[0].VInteger));


Danke jaenicke. Hat mir weitergeholfen.


jaenicke - Mi 03.06.09 17:41

user profile iconH2O hat folgendes geschrieben Zum zitierten Posting springen:
Irgendwie hatte ich im Kopf, dass in Delphi ein Array duch runde Klammern gekennzeichnet wird...
Das stimmt auch an anderer Stelle. ;-)
Nämlich wenn du ein Array als Konstante definieren willst.

Delphi-Quelltext
1:
2:
const
  Test: array[0..2of Integer = (122333);
Vielleicht hast du das verwechselt. ;-)


H2O - Mi 03.06.09 17:59

Ja. Das habe ich wohl wirklich verwechselt.
Danke für den Hinweis.