Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Внизсобытия Найти похожие ветки
← →
Pavel (2004-03-03 21:25) [0]Подскажите пожалуйста что не так.
Есть 2 модуля main и obj
main:
var
Input : TGInput;
implementation
procedure InputEnter(sender:Tobject);{это типо обработчик}
begin
Input.Text:="Ok";
end;
и obj:
type
TGInput = class (TWinControl)
FOnEnter:TNotifyEvent;
property OnEnter: TNotifyEvent read FOnEnter write FOnEnter;
end;
procedure TGInput.WndProc(var Message: TMessage);
begin
......
if Assigned(FOnEnter) then FOnEnter(Self);
........
end;
Вроде бы если смотреть на примеры других компонентов то всё также но что-то не работает.
Если на словах то, обект должен при получении сообщения о нажатии кнопки(клавиатуры) запускать код обработчика.
← →
TUser © (2004-03-03 21:44) [1]А он где-нибудь назначается?
← →
Алхимик © (2004-03-03 21:44) [2]FOnEnter:TNotifyEvent;
уже есть в TWinControl
Для получения сообщений используйтеprocedure WMKeyDown(var Message: TWMKeyDown); message WM_KEYDOWN;
← →
Pavel (2004-03-03 22:25) [3]Спосибо конечно, но с получением сообщений у меня всё в порядке.
> TUser
А где его назначать и как ?
← →
Zacho © (2004-03-03 22:47) [4]
> А где его назначать и как ?
В Object Inspector"е или программно, там где надо.
Только procedure InputEnter(sender:Tobject) - не пойдет, обработчик должен быть методом класса: TNotifyEvent = procedure(Sender: TObject) of object;
Подробнее см. Object Pascal Reference, главу Procedural types
← →
Pavel (2004-03-04 16:42) [5]Кто бы мне смог объяснить "на пальцах" как исходя из моего кода, сделать работающий код. Что куда добавить чтобы всё было нормально. Черезменое чтение manual(ов) у меня вызывает депрессию.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.036 c