|
Вопрос # 4 421/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
Подскажите, пожалуйста, в чем дело. Обработчик DateTimePicker1OnChange почему-то выполняется дважды. Требуется выбрал дату выполнилась процедура.
Приложение: Переключить в обычный режим- unit Unit1;
- interface
- uses
- 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;
- implementation
- Uses 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. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|