Форум: "Основная";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];
ВнизГлюк 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c