Меню сайта
Мини-чат
Чтобы добавить сообщение, необходимо авторизоваться.
Главная » Статьи » Не стандартные примеры на Delphi » Pascal

Переменное количество параметров любого типа

Вы можете определить список параметров процедуры как "Foo : ARRAY of const" и использовать почти ЛЮБОЙ тип параметра. Вот пример. Разместите на форме компоненты Memo и Button и добавьте строку "procedure Display(X : array of const);" в определения класса формы после комментария { Private Declarations }. Создайте функцию типа этой:


   
procedure TForm1.Display(X: array of const);
var I: Integer;
begin
Memo1.Clear;
for I := 0 to High(X) do with TVarRec(X[I]) do
WITH Memo1.Lines DO
case VType of
vtInteger : Add('Integer:'#9 + IntToStr(VInteger));
vtBoolean : if VBoolean then Add('Boolean:'#9'True'
else Add('Boolean:'#9'False');
vtChar    : Add('Char:'#9 + VChar);
vtExtended: Add('Float:'#9 + FloatToStr(VExtended^));
vtString  : Add('String:'#9 + VString^);
vtPointer : Add('Pointer:'#9 + Format('%p', [VPointer]));
vtPChar   : Add('PChar:'#9 + StrPas(VPChar));
vtObject  : Add('Object:'#9 + VObject.ClassName);
vtClass   : Add('Class:'#9 + VClass.ClassName);
end;
end;

Теперь в обработчике события кнопки OnClick вызываем процедуру Display и передаем ей "что попало". Числа, строки, PChar-ы, объекты! Например:


   
Display([42, 1.234, 'A', 'Васек Трубачев', Form1, TButton]);

Практичестки это программа с переменным числом параметров. Но самом деле параметр один, но он является массивом, содержащим переменное количество параметров различного типа. Потрясающе!

- Neil 

Категория: Pascal | Добавил: DelphiAiX (09.05.2012)
Просмотров: 478 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]