Вверх ↑
Этот топик читают: Гость
Ответов: 16435
Рейтинг: 1210
#16: 2016-07-29 12:57:09 ЛС | профиль | цитата
nesco писал(а):
Ненуачо
Янечо. Я всегда был за "широкое" использование IC, а ты меня паскудил.
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 25395
Рейтинг: 2070
#17: 2016-07-29 13:12:29 ЛС | профиль | цитата
Убирание скрола во всплывающем списке Combobox-a

Add(MainForm,10377423,175,154)
{
Width=369
Height=295
Point(onMouseEnter)
}
Add(ComboBox,7723821,224,140)
{
Left=75
Top=30
Width=200
Height=21
Strings=#5:12321|5:11113|5:11111|5:11122|5:45464|5:67867|5:87867|5:34535|5:56546|5:46464|5:46546|
ReadOnly=0
Point(PHandle)
Point(onMouseLeave)
Point(onMouseEnter)
link(onMouseEnter,995737:doWork2,[(277,167)(277,258)(172,258)(172,230)])
}
Add(InlineCode,3059356,238,217)
{
WorkPoints=#14:doShowDropDown|
DataPoints=#7:PHandle|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|38:uses kol,Share,Debug,Windows,Messages;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|24: PHandle: THI_Event;|59: procedure doShowDropDown(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|66:procedure THiAsmClass.doShowDropDown(var _Data:TData; Index:word);|3:var|21: sControl: PControl;|25: Info: TComboBoxInfo; |5:begin|48: sControl := PControl(ToIntegerEvent(PHandle));|38: if not Assigned(sControl) then exit;|34: ZeroMemory(@Info, SizeOf(Info));|30: Info.cbSize := SizeOf(Info);|41: GetComboBoxInfo(sControl.Handle, Info);|69: SendMessage(sControl.Handle, CB_SHOWDROPDOWN, ToInteger(_Data), 0);|48: ShowScrollBar(Info.hwndList, SB_VERT, false); |4:end;|0:|4:end.|
link(PHandle,7723821:PHandle,[])
}
Add(ChanelToIndex,995737,182,217)
{
link(onIndex,3059356:doShowDropDown,[])
}


Но есть небольшой лаг. Пока не ясно, как его убрать.


карма: 19

0
Ответов: 251
Рейтинг: 6
#18: 2016-07-29 15:19:05 ЛС | профиль | цитата
nesco, а можно как-нибудь расширить компоненты combobox, inputbox, checkbox, listbox, чтобы в свйствах можно было управлять параметрами - например сделать фон прозрачным, отключить отображение скрола и т.д..
Это очень бы облегчило создание собственного стиля программы. А то актионскин компонент не имеет большого функционала для собственного дизайна именно подобных элементов.
карма: 0

0
Ответов: 4344
Рейтинг: 471
#19: 2016-07-29 16:42:00 ЛС | профиль | цитата
Medvedoc писал(а):
актионскин компонент
с этого момента по подробней
------------ Дoбавленo в 16.22:
nesco, кстати похоже на AutoComplete но не то.
AutoCompleteautocomplete_0_9.zip
------------ Дoбавленo в 16.41:
кстати это для тех кто с б.д больше дело имеет
карма: 4

0
файлы: 1autocomplete_0_9.zip [115.9KB] [464]
Ответов: 16435
Рейтинг: 1210
#20: 2016-07-29 17:06:34 ЛС | профиль | цитата
andrestudio, поделись опытом - как компонент AutoCompleteSlave из autocomplete_0_9.zip без pas-файла работает.
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Гость
Ответов: 17029
Рейтинг: 0
#21: 2016-07-29 17:54:18 правка | ЛС | профиль | цитата


Редактировалось 4 раз(а), последний 2017-06-21 00:21:19
карма: 0

0
Ответов: 4344
Рейтинг: 471
#22: 2016-07-29 18:37:21 ЛС | профиль | цитата
Tad, та работа была за гонорар, причём оплачена достойна вдвойне.
[flood]
жизнь писал(а):
Уссурийск. Реальная История в маршрутке.
На передних сидениях едут две бабушки. Маршрутка почти полная.
На остановке заходит парень. Передает водителю 10 рублей за проезд и получает сдачу - 1 рубль. Рубль из рук выскальзывает и падает под сиденья бабушкам.
Парень наклоняется, пытается найти сдачу и, неожиданно, пукает.
В маршрутке - тихий смех хихиканье. А одна из бабушек говорит другой: "И стоило из-за рубля так жопу рвать!"
Маршрутка взрывается от хохота. Парень становится пунцовым и просит остановить маршрутку.
Через минуту в маршрутку заходит солидная дама. Маршрутка продолжает смеяться. Дама начинает себя нервно осматривать. Может, это над ней смеются?
Тут бабушки, покатываясь от смеха, начинают рассказывать даме историю с рублем. Дама тоже начинает смеяться и тут у нее из носа вылетает сопля и попадает на бабушек.... Дама просит остановить маршрутку.
Едем дальше, покатываясь от смеха. Водитель тоже вместе со всеми хохочет, закуривает, приоткрывает люк над головой. Выпуская дым люк, обращается к бабушкам: "Вам под люком (падлюкам) не дует?
Салон взрывается от нового приступа смеха. Водитель, поняв, что он сказал, вываливается из кабины, пританцовывая и угорает от смеха.

Эта же маршрутка 20 минут спустя.
Маршрутка с конечной остановкой "поселок Сахарный". Все сели, места заняты...
Водила завел машину... Тут дверь открыла бабка... И тут же спрашивает у водилы: "Милок, у тебя конец Сахарный?".
По маршрутке прошло легкое хихиканье... Водила не долго не думая ответил:"Не знаю, не пробовал!".
По маршрутке пошел открытый ржач!
Бабка осмотрев ястребиным взглядом салон поняла, что свободных мест нету...
И протягивая 10 р. водиле сказала: "Возьми меня стоя!"
Водитель вываливается из кабины в сугроб и трясется в истерическом припадке.

Вот такая историю рассказала моя знакомая с дальнего востока.
Бывает же в жизни минуты радости! А СМЕХ продлевает жизнь!!!
Смейтесь чаще!!!
[/flood]
карма: 4

0
Ответов: 251
Рейтинг: 6
#23: 2016-07-29 19:26:40 ЛС | профиль | цитата
andrestudio, а для чего этот компонент?
карма: 0

0
Ответов: 501
Рейтинг: 18
#24: 2016-07-29 20:14:06 ЛС | профиль | цитата
Medvedoc, что бы ты дольше жил
карма: 1
        ]  
0
Ответов: 251
Рейтинг: 6
#25: 2016-07-29 21:17:59 ЛС | профиль | цитата
nesco, Убирание скрола во всплывающем списке Combobox-a - все работает на отлично
И бага пока никакого не вижу. Но есть вопросик. Скролл убирается, но при этом если список содержит много данных, то и при отключенном скролле не срабатывает прокрутка.
Я так понял вот эта строка отключает скролл
ShowScrollBar(Info.hwndList, SB_VERT, false);

как просто отлючить скролл, но чтобы прокрутка по содержимому списка осталась?
карма: 0

0
Разработчик
Ответов: 25395
Рейтинг: 2070
#26: 2016-07-29 23:00:59 ЛС | профиль | цитата
Medvedoc писал(а):
Убирание скрола во всплывающем списке Combobox-a - все работает на отлично

Не отключается он полностью. Попробуй клавишой "вниз" прокрутить список и увидишь, что скролл появится снова. Что бы его отключить полностью, надо добраться до оконных сообщений сабконтрола ListBox контрола ComboBox. Короче, все это страшный гемор, за который мне даже браться не хочется. Проще, наверное, было бы прилепить к ComboBox-у свой список ListBox c кодами отключения скрола, которые я приводил в параллельной теме, и то, тот код тоже лагает с начальным проворотом колеса, пока по привязанному скролу не клацнешь.
карма: 19

0
Ответов: 251
Рейтинг: 6
#27: 2016-07-29 23:49:35 ЛС | профиль | цитата
nesco, понял тебя ))
Подскажи тогда как можно сделать чтобы при потери фокуса комбобокса список также скрывался как и раскрывается при наведении
карма: 0

0
Разработчик
Ответов: 25395
Рейтинг: 2070
#28: 2016-07-30 00:19:56 ЛС | профиль | цитата
Medvedoc писал(а):
Подскажи тогда как можно сделать чтобы при потери фокуса комбобокса список также скрывался как и раскрывается при наведении

Так при потере фокуса или при уходе со списка, это две разные вещи? При действительной потери фокуса список скрывается сам, а вот при уходе мыша с Combo -- нет. Последнее мне так побороть и не удалось. При использовании onMoseLeave начинается моргание списка, если мыша находится в области Combo, тк Combo передает клиентскую область сабконтролу ListBox и тут же теряет фокус. Проще, наверное, вручную отметить границы области при наличии списка и самому ловить в ней мыша, а как покинет область, вернуть старые координаты, чтобы дать доступ к контролам под этой областью. Те onMouseEnter используется от самого Combo и взводит новые границы области, а onMouseLeave имитируется собственными силами при покидании созданной области и возвращает старые границы. А еще лучше, и onMouseEnter, и onMouseLeave имитировать самому с определением границ областей.
карма: 19

0
Ответов: 251
Рейтинг: 6
#29: 2016-07-30 01:24:34 ЛС | профиль | цитата
nesco, при уходе в комбо со списка он не скрывается
------------ Дoбавленo в 01.24:
буду думать )
карма: 0

0
Разработчик
Ответов: 25395
Рейтинг: 2070
#30: 2016-07-30 01:41:59 ЛС | профиль | цитата
nesco писал(а):
при уходе в комбо со списка он не скрывается

И не будет, тк отключение не реализовано, хотя отключить можно, подав 0, вот только адекватного события нет. Я уже описал почему. Самое паршивое во всем этом, это то, что Combo перестает слать события мыша, когда включен выпадающий список.
карма: 19

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)