![]() |
![]() ![]() ![]() ![]() |
|
Каким образом можно использовать переменную типа String в качестве имени процедуры?Delphi , Синтаксис , Синтаксис
Каким образом можно использовать переменную типа String в качестве имени процедуры?Если все процедуры, которые вы собираетесь вызывать, имеют список с одними и теми же параметрами (или все без параметров), то это не трудно. Для этого необходимы: процедурный тип, соответствующий вашей процедуре, например:
type TMacroProc = procedure(param: Integer); //массив, сопоставляющий имена процедур их адресам во время выполнения приложения: TMacroName = string[32];TMacroLink = recordname: TMacroName;proc: TMacroProc;end;TMacroList = array [1..MaxMacroIndex] of TMacroLink; constMacros: TMacroList = ((name: 'Proc1'; proc: Proc1),(name: 'Proc2'; proc: Proc2),...); //интерпретатор функций, типа: procedure CallMacro(name: String; param: Integer);vari: Integer;beginfor i := 1 to MaxMacroIndex doif CompareText(name, Macros[i].name) = 0 then beginMacros[i].proc(param);break;end;end; {Макропроцедуры необходимо объявить в секции Interface модуля или с ключевым словом Far, например: }procedure Proc1(n: Integer); far;begin...end; procedure Proc2(n: Integer); far;begin...end; В статье описывается использование переменной типа String как имени процедуры, при этом указываются условия и примеры объявления соответствующих типов и структур для выполнения вызова процедур с одинаковыми параметрами. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||