Вопрос
Как во время выполнения программы создать так называемый "array of const" ?
Ответ
В библиотеке Technical Information на сайте Inprise есть документ за нумером TI582D.txt, посвященный этой проблеме. Вкратце, в качестве array of const можно использовать массив типа TVarRec.
Из конференции Delphi
procedure TForm1.FormActivate(Sender: TObject);
var A: array of TVarRec;
function MakeStr(const Args: array of const): string;
const
BoolChars: array[Boolean] of Char = ('F', 'T');
var
I: Integer;
begin
Result := '';
for I := 0 to High(Args) do
with Args[I] do
case VType of
vtInteger: Result := Result + IntToStr(VInteger);
vtBoolean: Result := Result + BoolChars[VBoolean];
vtChar: Result := Result + VChar;
vtExtended: Result := Result + FloatToStr(VExtended^);
vtString: Result := Result + VString^;
vtPChar: Result := Result + VPChar;
vtObject: Result := Result + VObject.ClassName;
vtClass: Result := Result + VClass.ClassName;
vtAnsiString: Result := Result + string(VAnsiString);
vtCurrency: Result := Result + CurrToStr(VCurrency^);
vtVariant: Result := Result + string(VVariant^);
vtInt64: Result := Result + IntToStr(VInt64^);
end;
end;
begin
// создаем массив из 2 элементов
SetLength(A, 2);
// отчет идет с 0-го элемента
A[0].VType := vtInteger;
// vtInteger стоит по умолчанию
A[0].VInteger := 100;
A[1].VType := vtPChar;
A[1].VPChar := PChar('Hello');
Caption :=MakeStr(A);
end;
--Dec--
Copyright 2000-2004 Сообщество Чайников
Контактная информация