Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС
выпущен 4 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Вызов процедуры, имя которой содержится в переменной

Автор: RAM

Как я могу вызвать процедуру, чье имя хранится в таблице, списке, и т.п.? Другими словами, я хочу сохранить имя процедуры в переменной и для ее вызова обращаться к значению этой переменной. Какие предложения?


 unit ProcDict;
 
 interface
 
 type
   MyProc = procedure(s: string);
 
 procedure RegisterProc(procName: string; proc: MyProc);
 procedure ExecuteProc(procName: string; arg: string);
 
 implementation
 
 uses Classes;
 var
   ProcDict: TStringList;
 
 procedure RegisterProc(procName: string; proc: MyProc);
 begin
   ProcDict.AddObject(procName, TObject(@proc));
 end;
 
 procedure ExecuteProc(procName: string; arg: string);
 var
   index: Integer;
 begin
   index := ProcDict.IndexOf(ProcName);
   if index >= 0 then
     MyProc(ProcDict.objects[index])(arg);
   // Можно вставить обработку исключительной ситуации - сообщение об ошибке
 end;
 
 initialization
 
   ProcDict := TStringList.Create;
   ProcDict.Sorted := true;
 
 finalization
 
   ProcDict.Free;
 
 end.
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS