![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подправить UpDown [WinME]
SPeller © (2002-07-20 14:14:00)Привет всем! Такой вопрос: как как сделать так, чтобы UpDown из виндовых Common Controls увеличивал своё значение при нажати на верхнюю кнопку, а не наоборот ? А то плохая ему наследственность видимо от Scroll Bar"а досталась. Как можно это изменить?
Eugen Honeker (2002-07-26 18:09:00) [1]sorry woprosa ne ponjal
#define UD_MAXVAL 0x7fff
#define UD_MINVAL (-UD_MAXVAL)
Eugen Honeker (2002-07-26 18:06:00) [2]a eto hex na delphi
na c byloby 0x7FFF
ili kak integer 32767
SPeller (2002-07-26 17:12:00) [3]
> Eugen Honeker (26.07.02 14:41)
> SendMessage(hwnd, UDM_SETRANGE, 0, MAKELONG($7FFF,0));
А что означает $7FFF ? Можно его обозвать более наглядной константой?
Eugen Honeker (2002-07-26 14:41:00) [4]luidi dobrye,
za4em delat" tak slogno, esl"i mogno namnogo
proshe???
odin ras poslat" komandu i wse
SendMessage(hwnd, UDM_SETRANGE, 0, MAKELONG($7FFF,0));
SPeller (2002-07-25 05:35:00) [5]Спасибо.
Almaz (2002-07-24 23:28:00) [6]
> SPeller © (23.07.02 06:51)
> Заковырка ещё в том, что я устанавливаю его Buddy - edit,
> в котором отображается значение. Можно конечно перехватывать
> всё что есть и руками управлять едитом, едит тоже махратить,
> отлавливать нажатие клавиш и т.п. Но зачем всё это делать
> когда оно уже за нас всё сделано, проверено и отлажено?
> Надо всего-то изменить одно на другое и всё. Наверняка есть
> довольно простой способ, но я не знаю его и пытаюсь выяснить
> - какой?
Все гениальное просто - устанавливаешь для UpDown инкремент = -1 и верхняя и нижняя кнопка меняются местами. Вот так:
uses ..., CommCtrl;
...
var
AccelArray: array [0..0] of TUDAccel;
...
// Handle - это handle UpDown
SendMessage(Handle, UDM_GETACCEL, 1, Longint(@AccelArray));
AccelArray[0].nInc := UINT(-1);
SendMessage(Handle, UDM_SETACCEL, 1, Longint(@AccelArray));
Удачи.
SPeller (2002-07-24 03:28:00) [7]АУ!!!!!!! Что-то ртвечает народ только на фанарные вопросы типа "как на чистом апи прочитать файл", а вот немного посложнее остаются без ответов.
МАСТЕРА!!! Блин!
SPeller (2002-07-23 06:51:00) [8]Заковырка ещё в том, что я устанавливаю его Buddy - edit, в котором отображается значение. Можно конечно перехватывать всё что есть и руками управлять едитом, едит тоже махратить, отлавливать нажатие клавиш и т.п. Но зачем всё это делать когда оно уже за нас всё сделано, проверено и отлажено? Надо всего-то изменить одно на другое и всё. Наверняка есть довольно простой способ, но я не знаю его и пытаюсь выяснить - какой?
Proton (2002-07-22 10:05:00) [9]напрмер в событии WM_HSCROLL
если SB_TOP то
UDM_SETPOS (уменьшай на 2)
SPeller (2002-07-22 01:59:00) [10]
> ZZ © (21.07.02 18:54)
> Да бросай его нафиг, этот винапи...давай в чат :)))
Вот это как раз и не надо бросать. А обчатиться я завсегда успею... :)
ZZ (2002-07-21 18:54:00) [11]Да бросай его нафиг, этот винапи...давай в чат :)))
SPeller (2002-07-21 18:50:00) [12]Извините за сарказм.... :
SPeller (2002-07-21 18:49:00) [13]Да зачем мне ваш TEdit? Мне надо на АПИ. Win32 API. Знаете такое? В вопросе же написано: CommonControls. К чему-либо другому оно имеет отношение кроме ВинАПИ ?
Song (2002-07-21 16:09:00) [14]Сделай свой UpDown :-) TEdit+2TSpeedButton
SPeller (2002-07-21 15:19:00) [15]Что совсем никак? АУ!! МАСТЕРА !!! :)
SPeller (2002-07-20 14:15:00) [16]И ещё попутный вопрос: можно ли кроме ручной отрисовки сделать что-то типа flat-стиля этому АпДауну ?