| 
| 
 | Вопрос # 4 421/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!Подскажите, пожалуйста, в чем дело. Обработчик DateTimePicker1OnChange почему-то выполняется дважды. Требуется выбрал дату выполнилась процедура.
 Приложение:Переключить в обычный режим unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls, ExtCtrls, ComCtrls, Menus, WordXP, OleServer, Grids,  ShellAPI;type  TForm1 = class(TForm)    Button1: TButton;    DateTimePicker1: TDateTimePicker;    procedure FormCreate(Sender: TObject);    procedure DateTimePicker1OnChange(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end;var  Form1: TForm1;implementationUses ComObj;{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject); begin    end; procedure TForm1.DateTimePicker1OnChange(Sender: TObject);begin end; end.
Примечание #1 (17 июля 2010, 02:39): Как побороть такое двойное выполнение процедуры обработчика события OnChange 
 
|  |   Вопрос задал: 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™ (статус: Доктор наук), 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. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |