Chciałbym mieć funkcję, która pobiera słownik ciąg, tablicy wariantu. Tak to można nazwać z:Czy mogę zadeklarować słownik z dynamiczną tablicą jako typ wartości?
searchDictionary := TDictionary<string, array of variant>;
searchDictionary.Add('KEY_NAME', ['X01%', '%D01']);
aValue := TDtoClass.Search(searchDictionary)
Jestem obecnie osiągnięcie tego poprzez
searchDictionary := TDictionary<string, TList<variant>>.Create;
searchDictionary.Add('BIN_NAME', TSearch.Values(['X01%', '%D01']));
gdzie pełnotekstowego jest klasa, która eksponuje:
class function TSearch.Values(const arguments: array of variant): TList<variant>;
var
list : TList<variant>;
item: variant;
begin
list := TList<variant>.Create;
for item in arguments do
begin
list.Add(item);
end;
Result := list;
end;
Co chciałbym zrobić, to:
searchDictionary.Add('BIN_NAME', ['X01%', '%D01']);
zamiast:
searchDictionary.Add('BIN_NAME', TSearch.Values(['X01%', '%D01']));
Każda pomoc zostanie bardzo doceniona.
Co dokładnie nie działa? Czy nie kompiluje się (i na jakiej pozycji)? – jpfollenius
.Dodaj (nazwa: ciąg; a: tablica stałej)? – Marck
W rzeczywistości jest to tablica dynamiczna, a nie otwarta. Otwarte tablice istnieją tylko jako parametry procedury. Zaktualizowałem tytuł pytania. –