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

на главную - закладки

Жанры

Советы по 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;

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

Черный дембель. Часть 2

Федин Андрей Анатольевич
2. Черный дембель
Фантастика:
попаданцы
альтернативная история
4.25
рейтинг книги
Черный дембель. Часть 2

Кодекс Крови. Книга ХIV

Борзых М.
14. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХIV

Магия чистых душ 3

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Магия чистых душ 3

Жестокая свадьба

Тоцка Тала
Любовные романы:
современные любовные романы
4.87
рейтинг книги
Жестокая свадьба

Усадьба леди Анны

Ром Полина
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Усадьба леди Анны

Измена. Возвращение любви!

Леманн Анастасия
3. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Возвращение любви!

Два лика Ирэн

Ром Полина
Любовные романы:
любовно-фантастические романы
6.08
рейтинг книги
Два лика Ирэн

Опасная любовь командора

Муратова Ульяна
1. Проклятые луной
Фантастика:
фэнтези
5.00
рейтинг книги
Опасная любовь командора

Газлайтер. Том 8

Володин Григорий
8. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 8

Мымра!

Фад Диана
1. Мымрики
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Мымра!

Таня Гроттер и магический контрабас

Емец Дмитрий Александрович
1. Таня Гроттер
Фантастика:
фэнтези
8.52
рейтинг книги
Таня Гроттер и магический контрабас

Имперский Курьер

Бо Вова
1. Запечатанный мир
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Имперский Курьер

Страж. Тетралогия

Пехов Алексей Юрьевич
Страж
Фантастика:
фэнтези
9.11
рейтинг книги
Страж. Тетралогия

Сердце дракона. Танец с врагом

Серганова Татьяна
2. Танец с врагом
Любовные романы:
любовно-фантастические романы
5.25
рейтинг книги
Сердце дракона. Танец с врагом