|
Как использовать переменную для имени процедуры?
|
| TMacroProc = procedure(param: Integer);
|
| //массив, сопоставляющий имена процедур их адресам во время выполнения приложения:
|
| TMacroName = string[32];
|
| TMacroLink = record
|
| name: TMacroName;
|
| proc: TMacroProc;
|
| end;
|
| TMacroList = array [1..MaxMacroIndex] of TMacroLink;
|
|
|
| Macros: TMacroList = (
|
| (name: 'Proc1'; proc: Proc1),
|
| (name: 'Proc2'; proc: Proc2),
|
| ...
|
| ); //интерпретатор функций, типа:
|
|
|
| i: Integer;
|
| for i := 1 to MaxMacroIndex do
|
| if CompareText(name, Macros[i].name) = 0 then
|
| begin
|
| Macros[i].proc(param);
|
| break;
|
| end;
|
| Лидер стабилизатор трехфазный | Подрессорник МАЗ-4370 автозапчасти оптом |