Нет, вы не можете сделать это в Delphi. case
операторы требуют числовую константу во время компиляции для каждого обрабатываемого значения.
Для того, что вы запрашиваете, вам потребуется:
- использование
if-else
операторов:
var
mydic : TDictionary<string, smallint>;
begin
mydic := TDictionary<string, smallint>.Create;
mydic.Add('A option', 1);
mydic.Add('B option', 2);
mydic.Add('C option', 3);
if someintegervariable = mydic['A option'] then
begin
// do stuff for case 1 ...
end
else if someintegervariable = mydic['B option'] then
begin
// do stuff for case 2 ...
end
else if someintegervariable = mydic['C option'] then
begin
// do stuff for case 3 ...
end;
mydic.Free;
end;
var
mydic : TDictionary<string, smallint>;
mypair: TPair<string, smallint>;
begin
mydic := TDictionary<string, smallint>.Create;
mydic.Add('A option', 1);
mydic.Add('B option', 2);
mydic.Add('C option', 3);
for mypair in mydic do
begin
if mypair.Value = someintegervariable then
begin
if mypair.Key = 'A option' then
begin
// do stuff for case 1 ...
end
else if mypair.Key = 'B option' then
begin
// do stuff for case 2 ...
end
else if mypair.Key = 'C option' then
begin
// do stuff for case 3 ...
end;
Break;
end;
end;
mydic.Free;
end;