Ich gehe davon aus, dass meine Frage in der SO-Wissensdatenbank bereits existiert und ich sie einfach nicht finden konnte. Bitte führen Sie mich in diesem Fall zum Ursprung und stimmen Sie ab, diesen als Duplikat zu schließen. Es geht darum, Array-Parameter an eine Prozedur zu übergeben.Wie übergeben Sie Array-Werte als Prozedurparameter?
Die unten Fall ist einfach, intuitiv und Arbeiten:
procedure MyProc(const A: array of ShortString);
begin
//
end
Jetzt kann ich MyProc
anrufen und direkt Strings es passieren:
MyProc(['no', 'trump', 'please']);
Was nun, wenn ich erklären, eine Art von Array von Kurzzeichenfolge?
type
TMyArray = array of ShortString;
procedure MyProc(const A: TMyArray);
begin
//
end
Gibt es eine Möglichkeit MyProc
Gabe von Parametern von Array-Typ direkt ausführen? I.e. Verwenden Sie den gleichen Prozeduraufruf wie oben.
+ Bonus-Frage:
type TMyRecord = record
param, value: ShortString
end;
procedure MyProc(const R: TMyRecord);
begin
//
end
Gibt es eine Technik, die eine Prozedur aufzurufen und Werte eines Typs Datensatz übergeben? So etwas wie (Pseudo-Code):
MyProc((TMyRecord.param='aaa', TMyRecord.value='bbb'));
Der Grund, warum ich frage: Ich möchte nicht, eine Variable deklarieren und es einrichten. Stattdessen möchte ich Array/Record-Werte direkt als Prozedurparameter übergeben.
Es gibt einen Unterschied zwischen offenen Array-Parametern und dynamischen Arrays, obwohl ihre Synatx ziemlich ähnlich ist. Mehr dazu in meinem Artikel dazu (http://rvelthuis.de/articles/articles-openarr.html). Datensätze können nur auf diese Weise übergeben werden, wenn Sie eine Funktion delacare, die sie erstellt –
Wenn Sie jemals debuggen müssen Sie wünschen, dass Sie eine Variable deklariert und eingerichtet ... – GuidoG
Eine Frage auch eine Zeit bitte. Und warum benutzt du kurze Saiten? –