Содержание материала

 

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.

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить