Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: как обрабатывать событие OnChange: TNotifyEvent  (Прочитано 9107 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Oddy
Гость
« : 09-10-2009 07:15 » 

Здравствуйте! У меня такой вопрос. Нужно обрабатывать событие OnChange.
В справке по делфи есть код примера календаря

type
  TSampleCalendar = class(TCustomGrid)
  private
    FOnChange: TNotifyEvent;
  protected
    procedure Change; dynamic;
  .
  .
  .
  published
    property OnChange: TNotifyEvent read FOnChange write FOnChange;
  .
  .
  .
procedure TSampleCalendar.Change;
begin
  if Assigned(FOnChange) then FOnChange(Self);
end;

procedure TSampleCalendar.SetCalendarDate(Value: TDateTime);
begin
  FDate := Value;
  UpdateCalendar;
  Change;                                             
end;

procedure TSampleCalendar.SetDateElement(Index: Integer; Value: Integer);
begin
    .                                           
    .
    .
    FDate := EncodeDate(AYear, AMonth, ADay);
    UpdateCalendar;
    Change;                                                               
  end;
end;

Как теперь использовать в приложении событие OnChange? Для этого обязательно создавать компонент, чтобы обработчик события был в Object Inspector? Не понял
Записан
zubr
Модератор

by
Offline Offline
Пол: Мужской

« Ответ #1 : 09-10-2009 09:12 » 

Необязательно. Событие можно подключить динамически:
Код:
TForm1 = class(TForm)
    SampleCalendar1: TSampleCalendar;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    procedure SampleCalendarChange(Sender: TObject);
  public
    { Public declarations }
  end;

implementation

procedure TForm1.FormCreate(Sender: TObject);
begin
  SampleCalendar1.OnChange := SampleCalendarChange;
end;

procedure SampleCalendarChange(Sender: TObject);
begin
  //код обработчика
end;
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines