Чтение онлайн

на главную

Жанры

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

uses

 SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,Forms, Dialogs, StdCtrls;

type

 TForm1 = class(TForm)

Button1: TButton;

procedure Button1Click(Sender: TObject);

 private { Private declarations }

 public { Public declarations }

 end;

var

 Form1: TForm1;

 CurrProc : LongInt;

 MyVal : LongInt;

implementation

uses Unit2;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

var

 NewProc : LongInt;

 MyString : string;

begin

 CurrProc := 2; {
начальная точка в таблице методов }

 MyVal := 0; { вспомогательная переменная }

 NewProc := 0; { возвращаемое значение для следующего индекса в таблице методов }

 while CurrProc < 6 do begin

{ выполняем текущий индекс в таблице методов и получаем следующую процедуру }

NewProc := ProcTable[CurrProc](MyVal);

{ просто показываем значения NewProc и CurrProc }

FmtStr(MyString, 'NewProc [%d] CurrProc [%d]', [NewProc, CurrProc]);

MessageDlg(MyString, mtInformation, [mbOK], 0);

{ присваиваем текущую процедуру возвращаемой процедуре }

CurrProc := NewProc;

 end;

end;

end.

{ Это простой пример, определяющий массив указателей на функции }

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;

Поделиться:
Популярные книги

На границе империй. Том 4

INDIGO
4. Фортуна дама переменчивая
Фантастика:
космическая фантастика
6.00
рейтинг книги
На границе империй. Том 4

Имя нам Легион. Том 4

Дорничев Дмитрий
4. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 4

Барон устанавливает правила

Ренгач Евгений
6. Закон сильного
Старинная литература:
прочая старинная литература
5.00
рейтинг книги
Барон устанавливает правила

Начальник милиции. Книга 5

Дамиров Рафаэль
5. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции. Книга 5

Пенсия для морского дьявола

Чиркунов Игорь
1. Первый в касте бездны
Фантастика:
попаданцы
5.29
рейтинг книги
Пенсия для морского дьявола

Низший - Инфериор. Компиляция. Книги 1-19

Михайлов Дем Алексеевич
Фантастика 2023. Компиляция
Фантастика:
боевая фантастика
5.00
рейтинг книги
Низший - Инфериор. Компиляция. Книги 1-19

Мастер 4

Чащин Валерий
4. Мастер
Фантастика:
героическая фантастика
боевая фантастика
попаданцы
5.00
рейтинг книги
Мастер 4

Студиозус

Шмаков Алексей Семенович
3. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
5.00
рейтинг книги
Студиозус

Безумный Макс. Ротмистр Империи

Ланцов Михаил Алексеевич
2. Безумный Макс
Фантастика:
героическая фантастика
альтернативная история
4.67
рейтинг книги
Безумный Макс. Ротмистр Империи

Ветер перемен

Ланцов Михаил Алексеевич
5. Сын Петра
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Ветер перемен

По дороге пряностей

Распопов Дмитрий Викторович
2. Венецианский купец
Фантастика:
фэнтези
героическая фантастика
альтернативная история
5.50
рейтинг книги
По дороге пряностей

Убивать чтобы жить 2

Бор Жорж
2. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 2

Решала

Иванов Дмитрий
10. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Решала

Повелитель механического легиона. Том I

Лисицин Евгений
1. Повелитель механического легиона
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Повелитель механического легиона. Том I