Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.10;
Скачать: CL | DM;

Вниз

Глюк UpDown   Найти похожие ветки 

 
kva   (2003-01-31 10:54) [0]

Привет всем! Раньше работал со SpinButton, черт дернул переделать прогу на UpDown. Задача такая (в усеченном виде, ес-сно), нужно ограничивать прокручиваемые значения и при попытке выйти за границу выдать сообщение. Бился несколько дней. Проскакивало лишнее событие. Каждый может проверить это. На пустую форму бросьте UpDown и сделайте обработчик на OnChangingEx следующего вида:

procedure TMainForm.UpDown1ChangingEx(Sender: TObject;
var AllowChange: Boolean; NewValue: Smallint;
Direction: TUpDownDirection);
begin
ShowMessage("5555555");
end;

Все. Кликните по Updown и покликайте по форме и затем попытайтесь закончить прогу. Подсказка, вырубайте в среде или попытайтесь открыть системное меню и дважды выбрать пункт закрыть.

Вопрос к мастерам. Чей глюк - Борланда или Билли недобили?
Имхо, Updown надстройка над компонентом MS.
Моих знаний не хватает чтобы разобраться по исходникам VCL


 
kva   (2003-01-31 11:19) [1]

Ау! Кто с UpDown работал? А может у меня дельфя дырявая?


 
Романов Р.В. ©   (2003-01-31 11:21) [2]

Все нормально просто нужно головой маленько думать

const
WU_ErrRange = WM_USER + 301;
type
TForm1 = class(TForm)
UpDown1: TUpDown;
procedure UpDown1Changing(Sender: TObject; var AllowChange: Boolean);
procedure ErrRange(var Msg: TMessage); message WU_ErrRange;
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.ErrRange(var Msg: TMessage);
begin
ShowMessage("5555555");
end;

procedure TForm1.UpDown1Changing(Sender: TObject;
var AllowChange: Boolean);
begin
PostMessage(Handle, WU_ErrRange, 0, 0);
end;


 
kva   (2003-01-31 11:48) [3]

>Романов Р.В. © (31.01.03 11:21)
Спасибо, код работает.
Но, проблема у меня не в том, как обойти этот глюк (выкрутиться можно было в конце концов и оставив SpinButton), а в непонимании, что происходит. Почему в моем варианте происходит лишнее событие? Объясните, если можете


 
Романов Р.В. ©   (2003-01-31 12:36) [4]

Чесно говоря в исходниках копаться неохота, но могу предположить что при нажатии ЛКМ UpDown захватывает курсор маши. При выводе сообщения фокус изменяется и не происходит освобождения курсора.



Страницы: 1 вся ветка

Текущий архив: 2003.02.10;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
3-28685
Fishka
2003-01-23 13:39
2003.02.10
MSWord, Table и закладки


14-28993
Igor_thief
2003-01-26 15:29
2003.02.10
StringGrid


3-28624
AnatoliJ
2003-01-14 02:19
2003.02.10
Pomogite mne please v DBGrid programno zapisat dannije


3-28607
Соловьев
2003-01-22 11:02
2003.02.10
Мастера, подскажите, как организовать древовидную БД?,


8-28932
Tornado
2002-10-24 08:03
2003.02.10
Подскажите