Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подправить 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-стиля этому АпДауну ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо