Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#16: 2012-09-09 00:09:40 ЛС | профиль | цитата
user_asm писал(а):
Мне надо что бы при написании слова в поле список сам раскрывался.
nesco писал(а):
Выход только один -- эмулировать нажатие кнопки мыша на стрелке
Есть и второй вход (Alt+↓):
Add(KeyEvent,926004,490,161)
{
Code=40
Alt=1
}
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:user_asm
Ответов: 952
Рейтинг: 4
#17: 2012-09-09 00:19:39 ЛС | профиль | цитата
Работает
Хотя есть одно НО - как только список открывается - введенные символы становятся выделенными, и если набрать еще 1 символ то ранее введенное сотрется.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#18: 2012-09-09 00:35:31 ЛС | профиль | цитата
user_asm писал(а):
то ранее введенное сотрется.
Ничего там не стирается. Самостоятельно думай.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1535
Рейтинг: 176
#19: 2012-09-09 00:39:37 ЛС | профиль | цитата
user_asm, а почему нельзя взять за основу вот это (навскидку) и развивать по вкусу?
Add(ChildPanelRush,7587462,819,329)
{
}
BEGIN_SDK
Add(EditMultiEx,7133135,21,21)
{
WorkCount=#9:doCaption|
link(doCaption,2026733:doCaption,[(39,27)(39,62)])
}
Add(PanelRush,2026733,56,56)
{
Left=35
Top=105
Width=180
Height=105
Glyphs=[]
}
END_SDK
Add(Edit,4343449,483,224)
{
Left=40
Top=65
Width=175
Text=""
link(onChange,14971885:doString,[(527,230)(527,300)])
}
Add(StrList,11818844,630,182)
{
Strings=#22:Иванов Петр Евгеньевич|24:Иванова Галина Сергеевна|23:Иванов Андрей Семенович|
}
Add(StrMask,15108573,735,322)
{
Point(doMask)
link(onTrue,12151121:doWork2,[])
}
Add(Hub,15264456,581,294)
{
OutCount=3
link(onEvent1,16432759:doData,[])
link(onEvent2,15108573:doMask,[(614,307)(614,335)])
link(onEvent3,6547779:doEnum,[(627,314)(627,251)])
}
Add(FormatStr,14971885,539,294)
{
DataCount=1
Mask="*%1*"
link(onFString,15264456:doEvent1,[])
link(Str1,4343449:Text,[(545,271)(489,271)])
}
Add(ArrayEnum,6547779,644,245)
{
link(onItem,15108573:doCompare,[(716,251)(716,328)])
link(Array,11818844:Array,[])
}
Add(DoData,16432759,644,294)
{
link(onEventData,12151121:doWork1,[(795,300)])
}
Add(HubEx,12151121,791,329)
{
link(onEvent,7587462:doCaption,[])
}


карма: 1
Не так страшна ошибка, как опасность её не заметить.

1
Голосовали:user_asm
Ответов: 16884
Рейтинг: 1239
#20: 2012-09-09 10:13:31 ЛС | профиль | цитата
ser_davkin,тогда уже так:
code_29027.txt
Но вопрос не в этом.
Вопрос в другом : Как свести с ума оператора, постоянно открывающимся ComboBox-ом ?
Добавь сюда непонимание SQLite LIKE с русскими буквами. (Это следующее "как")


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_29027.txt [1.3KB] [419]
Гость
Ответов: 17029
Рейтинг: 0
#21: 2012-09-09 11:12:02 правка | ЛС | профиль | цитата


Редактировалось 6 раз(а), последний 2021-06-24 08:05:44
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#22: 2012-09-09 11:13:22 ЛС | профиль | цитата
ser_davkin, а облегчить труд оператору(как и довести его до ручки) так просто:
code_29028.txt
но каждый, считающий себя программистом, уверен, что даже думать об этом, позорно.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_29028.txt [2.1KB] [371]
Ответов: 952
Рейтинг: 4
#23: 2012-09-09 21:14:45 ЛС | профиль | цитата
Последнюю фразу про позор недопонял. Считаете что подсказки к заполнению это плохо? Мне кажется наоборот. Поэтому то и задался этим вопросом.
А про ЛАЙК, у меня вроде отлично работает, работаю только с русскими словами. Единственное то что требуется полное соответствие, т.е. Иванов НЕ = иванов.
Огромное спасибо за приведенные примеры, то что надо.
Однако вернувшись к комбобоксу. Определенно не хватает точки ончандже. Поясню. В комбобокс при открытии формы загружаю все предприятия, но бывает что заказчик еще не обращался и надо вводить его.
И при вводе мне надо заменять символ " на '. Если в компоненте Эдит это можно сделать заменой символа, то в комбобоксе нет ончандже.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#24: 2012-09-09 22:37:23 ЛС | профиль | цитата
user_asm, хоть посмотри какие точки у него есть.
user_asm писал(а):
в комбобоксе нет ончандже.
А onChangeText это какой ...
Есть в нем такие извращения, что другому компоненту и не снились.
Открой точки doEditText, onChangeText и EditText и делай всё, что хочешь с окном ComboBox.
------------ Дoбавленo в 22.29:
user_asm писал(а):
А про ЛАЙК, у меня вроде отлично работает, работаю только с русскими словами.
Ну-ну.
Попробуй найди писал(а):
Ёжиков
Ёжин
Ёкшин
Ёлгин
Ёлкин
Ёлочкин
Ёлхов
Ёлчев
Ёлчин
Ёлшин
Ёмочкин
Ёркин
Ёрмамедов
Ёрохов
Ёршиков
Ёршин
Ёшкилев
Ёшкин

------------ Дoбавленo в 22.36:
Вся надежда на то, что заказчик с такой фамилией не попадется.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1535
Рейтинг: 176
#25: 2012-09-10 09:23:16 ЛС | профиль | цитата
user_asm,

Add(Edit,4343449,413,126)
{
Left=40
Top=65
Width=315
HintManager="hint"
Text=""
Point(Left)
Point(Top)
link(onChange,14971885:doString,[])
}
Add(StrList,11818844,532,70)
{
Strings=#22:Иванов Петр Евгеньевич|24:Иванова Галина Сергеевна|23:Петров Андрей Семенович|22:Петров Петр Евгеньевич|24:Петрова Галина Сергеевна|24:Сидоров Андрей Семенович|23:Сидоров Петр Евгеньевич|25:Сидорова Галина Сергеевна|0:|
}
Add(StrMask,15108573,609,147)
{
Point(doMask)
link(onTrue,10490428:doEvent1,[(653,160)(653,125)])
}
Add(Hub,15264456,497,126)
{
OutCount=4
link(onEvent1,7140916:doClear,[(640,132)(640,76)])
link(onEvent2,10764717:doClear,[])
link(onEvent3,15108573:doMask,[(598,146)(598,160)])
link(onEvent4,6547779:doEnum,[])
}
Add(FormatStr,14971885,455,126)
{
DataCount=1
Mask="%1*"
link(onFString,15264456:doEvent1,[])
}
Add(ArrayEnum,6547779,546,147)
{
link(onItem,15108573:doCompare,[])
link(onEndEnum,14027172:doCompare,[(590,160)(590,192)(396,192)(396,307)])
link(Array,11818844:Array,[])
}
Add(StrList,10764717,714,126)
{
}
Add(DoData,14095054,476,280)
{
link(onEventData,2448545:doCompare,[])
link(Data,10764717:Text,[(482,199)(720,199)])
}
Add(Hub,8956937,595,287)
{
link(onEvent1,4970914:doWork2,[])
link(onEvent2,14929430:doText,[(679,300)(679,265)])
}
Add(If_else,2448545,525,280)
{
Op2=String()
link(onTrue,4375850:doWork2,[])
link(onFalse,8956937:doEvent1,[])
}
Add(ListBox,14929430,756,238)
{
Left=40
Top=90
Width=285
Height=120
Color=15793151
Visible=1
Ctl3D=1
WinStyle=2
DataType=1
Point(doVisible)
Point(doLeft)
Point(doTop)
Point(doWidth)
Point(doHeight)
link(onChange,16190455:doWork1,[(805,244)(805,340)(688,340)(688,293)])
link(onClick,1804999:doEvent1,[(812,251)(812,368)(341,368)(341,335)])
}
Add(ChanelToIndex,4970914,623,280)
{
link(onIndex,14929430:doVisible,[])
}
Add(If_else,14027172,413,301)
{
Type=5
Op2=String()
link(onTrue,14095054:doData,[(461,307)(461,286)])
link(onFalse,14960337:doWork2,[])
link(Op1,4343449:Text,[])
}
Add(HubEx,4375850,581,280)
{
link(onEvent,4970914:doWork1,[])
}
Add(MultiElement,16190455,700,287)
{
link(onEvent1,14929430:doLeft,[])
link(onEvent2,14929430:doTop,[])
link(Data1,4343449:Left,[(706,251)(426,251)])
link(Data2,4343449:Top,[(713,241)(433,241)])
link(onEvent3,14929430:doWidth,[])
link(onEvent4,14929430:doHeight,[])
link(Data3,1942473:Var2,[(720,216)(790,216)])
link(Data4,14929430:Count,[(727,275)(748,275)(748,330)(769,330)])
}
BEGIN_SDK
Add(EditMulti,235329,21,21)
{
EventCount=4
WorkCount=1
DataCount=4
Width=349
Height=151
link(doWork1,13439460:doEvent1,[(42,27)(42,90)])
}
Add(Hub,13439460,63,84)
{
OutCount=4
link(onEvent1,3241432:doData,[])
link(onEvent2,14335009:doOperation,[])
link(onEvent3,15143856:doOperation,[])
link(onEvent4,4074300:doOperation,[])
}
Add(Math,14335009,161,91)
{
Op2=20
link(onResult,235329:onEvent2,[(281,97)(281,34)])
link(Op1,235329:Data2,[(167,56)(34,56)])
}
Add(DoData,3241432,105,84)
{
link(onEventData,235329:onEvent1,[(253,90)(253,27)])
link(Data,235329:Data1,[(111,66)(27,66)])
}
Add(Math,15143856,210,98)
{
OpType=2
Op2=7
link(onResult,235329:onEvent3,[(306,104)(306,41)])
link(Op1,235329:Data3,[(216,47)(41,47)])
}
Add(Math,4074300,259,105)
{
OpType=2
Op2=15
link(onResult,235329:onEvent4,[(331,111)(331,48)])
link(Op1,235329:Data4,[(265,37)(48,37)])
}
END_SDK
Add(Hub,1804999,350,329)
{
link(onEvent1,4343449:doText2,[(388,335)(388,139)])
link(onEvent2,14960337:doWork3,[(459,342)])
}
Add(HubEx,14960337,455,308)
{
link(onEvent,4375850:doWork3,[(585,314)])
}
Add(Length,4163382,714,84)
{
link(onLength,7140916:doOperation,[(758,90)(758,69)])
}
Add(Math,7140916,770,63)
{
OpType=39
ResultType=0
Point(doClear)
link(Op2,1942473:Var3,[(783,51)(810,51)(810,104)])
}
Add(Hub,10490428,665,119)
{
link(onEvent1,4163382:doLength,[(686,125)(686,90)])
link(onEvent2,10764717:doAdd,[])
}
Add(GetDataEx,1942473,784,99)
{
Angle=3
link(Data,7140916:Result,[(776,104)])
}
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 952
Рейтинг: 4
#26: 2013-04-06 11:40:21 ЛС | профиль | цитата
Вернусь к этой теме.
Вопрос следующего рода. С помощью предложенных вами схем я реализовал то что мне нужно, взяв от каждого по чуть-чуть.
Но возник вопрос - как скрыть листбокс.
Юзер заполнил соответствующий эдит, в процесс его заполнения в листбоксе высвечивались уже имеющиеся в БД варианты. Юзер видит что запись не повторяется, переходит в следующий Эдит-компонент формы внесения заявки. И вот тут вопрос - как убрать листбокс?
Активировал в следующем по порядку заполнения компоненте точку онмоуседовн, но если юзер перейдет туда не мышкой а Табом то это не сработает.
К тому же если кликнет не ЛКМ а ПКМ то листбокс откроется.
Что можно придумать?
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#27: 2013-04-06 17:36:13 ЛС | профиль | цитата
Если точка onKeyDown(или onKeyUp - не помню, но какая-то из них не понимает TAB) = 9(tab) или 13(Enter) то идем дальше
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 952
Рейтинг: 4
#28: 2013-04-06 18:23:33 ЛС | профиль | цитата
Спасибо за подсказку, так и сделал. Но если юзер мышкой кликнет по другому компоненту на форме, любому кроме следующего - листбокс так и останется висеть не скрытым.
Уход курсора из Эдита никак не отловить получается?
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#29: 2013-04-06 18:43:30 ЛС | профиль | цитата
user_asm писал(а):
Уход курсора из Эдита никак не отловить получается?
onMouseLeave
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 952
Рейтинг: 4
#30: 2013-04-06 21:37:22 ЛС | профиль | цитата
onMouseLeave - нет, не то. Я имел ввиду курсор который вертикальной черточкой.
Из Эдита юзер может уйти 2 способами - Табом или кликом мышки по другому Эдиту или иному компоненту на форме.
Таб отловлен и покорён. Остается мышка.
На скорую руку накидал пример.
Если введя несколько символов в 1 эдит мышкой щелкнуть на 3 эдит (юзер ведь и так может) - листбокс не исчезнет. Вопрос как это предусмотреть?
Add(MainForm,2953706,49,98)
{
Width=271
Height=184
}
Add(Edit,11793668,112,28)
{
Left=20
Top=20
Text=""
Point(onKeyDown)
link(onChange,5454065:doEvent1,[(342,34)(342,83)])
link(onKeyDown,6471876:doCase,[(177,48)(177,97)])
}
Add(Edit,8140823,112,98)
{
Left=20
Top=55
Text=""
Point(onMouseDown)
link(onMouseDown,5454065:doEvent3,[(342,118)(342,97)])
}
Add(Edit,10181626,112,168)
{
Left=20
Top=90
Text=""
}
Add(ListBox,8967763,580,55)
{
Left=90
Top=15
Width=160
Height=120
Visible=1
DataType=1
Point(doVisible)
}
Add(Case,6471876,210,91)
{
Value=Integer(9)
link(onNextCase,15480296:doCase,[])
link(onTrue,16232319:doEvent1,[(289,104)(289,118)])
}
Add(Case,15480296,280,91)
{
Value=Integer(13)
link(onTrue,16232319:doEvent2,[(324,104)(324,125)])
}
Add(DoData,13667806,378,112)
{
Data=Integer(0)
link(onEventData,5454065:doEvent2,[(474,118)(474,90)])
}
Add(Hub,16232319,336,112)
{
InCount=2
OutCount=1
link(onEvent1,13667806:doData,[])
}
Add(Hub,5454065,539,77)
{
InCount=3
OutCount=1
link(onEvent1,8967763:doVisible,[(567,83)(567,103)])
}


карма: 0

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