Code: |
{ Это простой пример, определяющий массив указателей на функции }
interface
type
{ определяем Procs как функцию } Procs = function(var ProcNum: LongInt): LongInt;
var
{ объявляем массив указателей на функции } ProcTable: array[1..5] of Procs;
{ определения интерфейсов функций } function Proc1(var MyVal: LongInt): LongInt; far; function Proc2(var MyVal: LongInt): LongInt; far; function Proc3(var MyVal: LongInt): LongInt; far; function Proc4(var MyVal: LongInt): LongInt; far; function Proc5(var MyVal: LongInt): LongInt; far;
implementation
uses Dialogs;
function Proc1(var MyVal: LongInt): LongInt; begin
MessageDlg('Процедура 1', mtInformation, [mbOK], 0); Proc1 := 6; end;
function Proc2(var MyVal: LongInt): LongInt; begin
MessageDlg('Процедура 2', mtInformation, [mbOK], 0); Proc2 := 3; end;
function Proc3(var MyVal: LongInt): LongInt; begin
MessageDlg('Процедура 3', mtInformation, [mbOK], 0); Proc3 := 4; end;
function Proc4(var MyVal: LongInt): LongInt; begin
MessageDlg('Процедура 4', mtInformation, [mbOK], 0); Proc4 := 5; end;
function Proc5(var MyVal: LongInt): LongInt; begin
MessageDlg('Процедура 5', mtInformation, [mbOK], 0); Proc5 := 1; end;
initialization
{ инициализируем содержание массива указателей на функции } @ProcTable[1] := @Proc1; @ProcTable[2] := @Proc2; @ProcTable[3] := @Proc3; @ProcTable[4] := @Proc4; @ProcTable[5] := @Proc5;
end. |
Я думаю это можно сделать приблизительно так: объявите в каждой форме процедуры, обрабатывающие нажатие кнопки, типа процедуры CutButtonPressed(Sender:TObject) of Object; затем просто назначьте события кнопок OnClick этим процедурам при наступлении событий форм OnActivate. Этот способ соответствует концепции ОО-программирования, но если вам не нравится это, то вы все еще можете воспользоваться указателями функций, которая предоставляет Delphi.
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!