Для создания объекта использую функцию, которая возвращает переменную нужного типа.
Допустим создаю кнопку в меню:
- Код: Выделить всё
type TRectButton = record
X, Y, W, H: single;
Color: longword;
end;
function RectButtonAdd( X, Y, W, H: single; Color: longword ): TRectButton; //в модуле с GUI
- Код: Выделить всё
var Button: TRectButton;
...
Button := RectButtonAdd( X, Y, W, H, Color ) //в меню
Далее в таймере меню проверяется нажатие на кнопку и при нажатии выполняется что-нибудь. Можно ли писать это "что-нибудь" в отдельной процедуре, чтобы при создании она передавалась в модуль с GUI и проверка нажатия выполнялась там по таймеру модуля? Т.е. изменить на что-то вроде этого:
- Код: Выделить всё
type TRectButton = record
X, Y, W, H: single;
Color: longword;
OnClick: procedure;
end;
function RectButtonAdd( X, Y, W, H: single; Color: longword; OnClick: procedure ): TRectButton;
...
procedure OnTimer;
begin
if col2d( Mouse_X, Mouse_Y, Button ) then Button.OnClick; //в модуле с GUI
- Код: Выделить всё
Button := RectButtonAdd( X, Y, W, H, Color, OnClick );
...
procedure OnClick; //в меню
Если да, то как это лучше реализовать?
Заранее спасибо