Главная страница
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.011 c
3-28644
pahmed
2003-01-23 15:04
2003.02.10
Насчет ODBC


14-29103
petr_v_a
2003-01-24 17:52
2003.02.10
Маркировка товара на складах


14-29064
Ru
2003-01-24 16:56
2003.02.10
Вера в компьютер или современный фетишизм


1-28763
Anton
2003-02-01 12:43
2003.02.10
Как реализовать программу удаляющую файлы из директории


1-28711
ST
2003-01-31 15:42
2003.02.10
TWebBrowser: сорнанение HTML кода на диск.