Главная страница
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.05 c
14-29073
DiamondShark
2003-01-24 20:20
2003.02.10
Ой, ну его на фиг, такой праздник...


14-28990
Suntechnic
2003-01-25 21:37
2003.02.10
А я то думаю почему сегодня с утра сайт был в дауне...


14-29027
anpsoft
2003-01-22 02:04
2003.02.10
QuickBooks Pro and LedgerLink - есть кто ???


6-28959
antix
2002-11-17 06:50
2003.02.10
Запуск приложения (exe) у клиента


1-28737
Son!K
2003-01-31 21:51
2003.02.10
Проценты