Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 421

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
Подскажите, пожалуйста, в чем дело. Обработчик DateTimePicker1OnChange почему-то выполняется дважды. Требуется выбрал дату выполнилась процедура.

Приложение:
  1. unit Unit1;
  2. interface
  3. uses
  4. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5. Dialogs, StdCtrls, ExtCtrls, ComCtrls, Menus, WordXP, OleServer, Grids,
  6. ShellAPI;
  7. type
  8. TForm1 = class(TForm)
  9. Button1: TButton;
  10. DateTimePicker1: TDateTimePicker;
  11. procedure FormCreate(Sender: TObject);
  12. procedure DateTimePicker1OnChange(Sender: TObject);
  13. private
  14. { Private declarations }
  15. public
  16. { Public declarations }
  17. end;
  18. var
  19. Form1: TForm1;
  20. implementation
  21. Uses ComObj;
  22. {$R *.dfm}
  23. procedure TForm1.FormCreate(Sender: TObject);
  24. begin end;
  25.  
  26. procedure TForm1.DateTimePicker1OnChange(Sender: TObject);
  27. begin
  28.  
  29. end;
  30.  
  31. end.


Примечание #1 (17 июля 2010, 02:39):
Как побороть такое двойное выполнение процедуры обработчика события OnChange

Crkzhjd Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Crkzhjd (статус: Посетитель)
Вопрос отправлен: 13 июля 2010, 16:26
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Паровоз

Здравствуйте, Crkzhjd!
Это баг:
http://qc.embarcadero.com/wc/qcmain.aspx?d=18046

Ответ отправил: Паровоз (статус: 10-ый класс)
Время отправки: 13 июля 2010, 17:44


Мини-форум вопроса

Всего сообщений: 1; последнее сообщение — 17 июля 2010, 10:09; участников в обсуждении: 1.

13 июля 2010, 17:30: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Работа с компонентами и библиотеками модератором Ерёмин А.А. Причина: DateTimePicker — не компонент?

min@y™

min@y™ (статус: Доктор наук), 17 июля 2010, 10:09 [#1]:

Цитата (Crkzhjd):

Как побороть такое двойное выполнение процедуры обработчика события OnChange

Воткни туда глобальный счётчик типа Cardinal и инкрементируй его каждый раз. Если число нечётное - выполняй обработчик, иначе - на выход.
var
  Count: Cardinal = 0;
 
procedure TForm1.DateTimePicker1OnChange(Sender: TObject);
begin
  Inc(Count);
  if Count mod 2 = 0
    then Exit;
 
  ShowMessage(' =Выполняем');
end;
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:45
Выполнено за 0.03 сек.