Автор | Сообщение |
|
| |
Пост N: 2768
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.03.13 11:51. Заголовок: Get Listbox
Пара вопросов. @ 12,45 ,19 ,71 get vid5 listbox {" Не печатать",; " 12 штук на A4 (70 x 65)",; " 88 штук на A4 (25 x 25)",; " 190 штук на A4 (15 x 20)",; " 10 штук на A4 (50 x 90)"} ; caption "Печать ценников " ; DROPDOWN SCROLLBAR @ 13,45 ,17,55 get vid listbox {" Широкая "," Узкая "} ; caption "Масштаб печати " ; DROPDOWN SCROLLBAR @ 14,27 say "Количество копий " get kolcop picture "9" read 1. Как при входе в READ сразу оказаться на последнем GET c количеством копий ? 2. Хотелось бы между GET перемещаться стрелками вверх/вниз а не с помощью TAB , как это сделать ?
|
|
|
Ответов - 40
, стр:
1
2
All
[только новые]
|
|
|
| |
Пост N: 764
Зарегистрирован: 11.06.10
|
|
Отправлено: 15.03.13 12:16. Заголовок: Dima пишет: 1. Как ..
Dima пишет: цитата: | 1. Как при входе в READ сразу оказаться на последнем GET c количеством копий ? |
|
может так kolcop:setfocus()
|
|
|
|
| |
Пост N: 2769
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.03.13 12:29. Заголовок: AlexMyr пишет: може..
AlexMyr пишет: цитата: | может так kolcop:setfocus() |
| что то новенькое и мысли не понял. так ведь не будет работать если тупо перед READ написать kolcop:setfocus()
|
|
|
|
| постоянный участник
|
Пост N: 2746
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.03.13 12:51. Заголовок: Я делаю так: FOR nI ..
Я делаю так: FOR nI TO (кол-во GET'ов) HB_KeyPut( K_DOWN ) NEXT У меня в GET стрелками перемещается... Я уж забыл как это сделал... Типа: SET SCOREBOARD OFF && переключение сообщения вывода для READ Не помню короче...
|
|
|
|
| |
Пост N: 2770
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.03.13 13:03. Заголовок: Andrey пишет: FOR n..
Andrey пишет: цитата: | FOR nI TO (кол-во GET'ов) HB_KeyPut( K_DOWN ) NEXT |
| Да это понятно. И да так работает когда в GET нет LISTBOX а с ним ты на первом же листбоксе и останешься и не важно сколько HB_KeyPut( K_DOWN ) будет послано.
|
|
|
|
| |
Пост N: 86
Зарегистрирован: 19.05.05
|
|
Отправлено: 15.03.13 13:47. Заголовок: А почему нельзя кол ..
А почему нельзя кол листов поставить первым в выводе GETов ? Но вообще-то предложение цитата: | может так kolcop:setfocus() |
| можно поставить в условие WHEN первого GETа, с какой-то логикой конечно, чтобы повторный заход внутри READ не выбрасывал постояннно на последний GET
|
|
|
|
| |
Пост N: 2772
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.03.13 13:50. Заголовок: nick_mi пишет: А по..
nick_mi пишет: цитата: | А почему нельзя кол листов поставить первым в выводе GETов ? |
| Заказчик против.
|
|
|
|
| |
Пост N: 87
Зарегистрирован: 19.05.05
|
|
Отправлено: 15.03.13 13:59. Заголовок: И только что попробо..
И только что попробовал для GTWVT перемещение между полями происходит по клавишам стрелка вверх/вниз . Программа для всяких экспериментов сделана на базе тестовой программы от ANDREY click here Установки в программе не менял
|
|
|
|
| |
Пост N: 88
Зарегистрирован: 19.05.05
|
|
Отправлено: 15.03.13 14:03. Заголовок: В списке GETов ее мо..
В списке GETов ее можно поставить первой, а выводить в последней строке. Тогда, правда Стрелка вверх работать в этом поле не будет, а по стрелке вниз перемещение будет вверх на строку @ 12,45 ,19 ,71 get vid5 listbox {" Не печатать",; " 12 штук на A4 (70 x 65)",; " 88 штук на A4 (25 x 25)",; " 190 штук на A4 (15 x 20)",; " 10 штук на A4 (50 x 90)"} ; caption "Печать ценников " ; DROPDOWN SCROLLBAR
|
|
|
|
| |
Пост N: 2773
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.03.13 14:19. Заголовок: ладно оставим вопрос..
ладно оставим вопрос о переходе на последний GET. Он в принципе решаем если решить вопрос 2 Dima пишет: цитата: | 2. Хотелось бы между GET c LISTBOX перемещаться стрелками вверх/вниз а не с помощью TAB , как это сделать ? |
| Какой исходник править я уже нашел (tgetlist.prg из сырцов) , смотрю где нужно переделать и пока не вижу.
|
|
|
|
| |
Пост N: 2774
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.03.13 14:35. Заголовок: Был там такой код ..
Был там такой код ELSEIF oTheClass == "LISTBOX" IF nKey == K_UP oGUI:PrevItem() nKey := 0 ELSEIF nKey == K_DOWN oGUI:NextItem() nKey := 0 ELSEIF nKey == K_SPACE IF ! oGUI:DropDown ELSEIF ! oGUI:IsOpen oGUI:Open() nKey := 0 ENDIF переделал на ELSEIF oTheClass == "LISTBOX" IF nKey == K_UP if oGUI:Isopen oGUI:PrevItem() nKey := 0 else oGet:exitState := GE_UP endif ELSEIF nKey == K_DOWN if oGUI:Isopen oGUI:NextItem() nKey := 0 else oGet:exitState := GE_DOWN endif ELSEIF nKey == K_SPACE IF ! oGUI:DropDown ELSEIF ! oGUI:IsOpen oGUI:Open() nKey := 0 ENDIF Вроде работает ;)
|
|
|
|
| |
Пост N: 2775
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.03.13 15:20. Заголовок: Пробую там же переде..
Пробую там же переделать реакцию на ESC когда сижу внутри LISTBOX. Ранее по ESC закрывались все GET и из READ я выходил. Так мне не подходит. Сделал так ELSEIF nKey == K_ESC if oGUI:Isopen .and. oGUI:DropDown OGui:Close() oGUI:Display() nKey := 0 endif Есть правда не увязочка. {" 1. Не печатать",; " 2. 12 штук на A4 (70 x 65)",; " 3. 88 штук на A4 (25 x 25)",; " 4. 190 штук на A4 (15 x 20)",; " 5. 10 штук на A4 (50 x 90)"} ; Если я открыл LISTBOX и оказался на пункте 3 в LISTBOX , затем побегал в нем курсором и нажимаю ESC , хотелось бы снова оказаться на пункте 3 в GET , но реально попадаю на тот пункт который был выбран перед нажатием ESC.
|
|
|
|
|
| постоянный участник
|
Пост N: 3829
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.12.14 15:43. Заголовок: Вопрос про GET (что ..
Вопрос про GET (что то не нашел сходу): Как для @ y,x GET "Список.........1" PUSHBUTTON сделать выход кроме ENTER еще по клавише F3 и F4 ?
|
|
|
|
| |
Пост N: 4347
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.12.14 16:21. Заголовок: set key -2 to hb_Key..
set key -2 to hb_KeyPut(chr(13)) set key -3 to hb_KeyPut(chr(13)) твой GET set key -2 to set key -3 to ну или исходник переделать
|
|
|
|
| постоянный участник
|
Пост N: 3830
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.12.14 16:30. Заголовок: Dima пишет: set key..
Dima пишет: цитата: | set key -2 to hb_KeyPut(chr(13)) |
| Тогда я потом не отловлю какая была нажата клавиша, для дальнейшего анализа ! Как то назначались такие действия, помню по Клиперу еще.
|
|
|
|
| |
Пост N: 4348
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.12.14 16:33. Заголовок: может тогда Get..
может тогда GetApplyKey(<Get-объект>,<INKEY-код>)
|
|
|
|
| постоянный участник
|
Пост N: 3831
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.12.14 16:50. Заголовок: Вот есть пример. *..
Вот есть пример. Скрытый текст ******************************************************************** FUNCTION Quest_My() LOCAL nY := 6, nX := 10, nY2 := 16, nX2 := 70, nI LOCAL lCancel := .T., lAns := .T., lOk := .T., nKey LOCAL lEditForm := .T., lPrint := .T., lEditShabl := .T. LOCAL cButtonClr := "15/3,0/12,4/15,12/3", cButtCol := "0/15" LOCAL nVar := 1, aGroup := {} , getlist := {}, nKnopka := 0 LOCAL cScrTemp := SaveScreen(,,,) , cColor := SETCOLOR() SETCOLOR("1/15,0/15,1/15,4/15,5/15,3/1,10/1,1/2") @ nY+2, nX+30 GET lEditForm PUSHBUTTON ; CAPTION " Открыть форму " ; STATE { || IsOk(@lAns, 1), ReadKill(.T.) } ; COLOR cButtonClr ; MESSAGE "Вызов редактора с формой" @ nY+4, nX+30 GET lPrint PUSHBUTTON ; CAPTION " Печать формы " ; STATE { || IsOk(@lAns, 1), ReadKill(.T.) } ; COLOR cButtonClr ; MESSAGE "Печатать форму на текущий принтер" @ nY+6, nX+30 GET lEditShabl PUSHBUTTON ; CAPTION " Редактировать шаблон " ; STATE { || IsOk(@lAns, 1), ReadKill(.T.) } ; COLOR cButtonClr ; MESSAGE "Редактировать шаблон формы в редакторе" @ nY+8, nX+30 GET lCancel PUSHBUTTON ; CAPTION " Выход " ; STATE { || IsOk(@lAns, 1), ReadKill(.T.) } ; COLOR cButtonClr ; MESSAGE "Выход из меню" READ MSG AT MAXROW(),0,MAXCOL() nKey := LASTKEY() @ 0,0 SAY "" ?? "KEY=",nKey, " lEditForm=",lEditForm," lPrint=",lPrint,"lEditShabl=",lEditShabl, "lCancel=",lCancel wait IF nKey == K_ESC nKnopka := 0 ELSEIF nKey == K_ENTER nKnopka := -13 ELSEIF nKey > 999 IF lEditForm == .F. nKnopka := 1 ELSEIF lPrint == .F. nKnopka := 2 ELSEIF lEditShabl == .F. nKnopka := 3 ELSEIF lCancel == .F. nKnopka := 0 ENDIF ELSE nKnopka := 0 ENDIF CLEAR GETS RestScreen(,,,, cScrTemp ) SETCOLOR( cColor ) Return nKnopka ************************************* STATIC Function IsOk(lAns, n) IF n == 1 lAns := .T. Else lAns := .F. ENDIF Return .T.
| Как сделать выход допустим по клавише F2 но чтобы по Lastkey() можно было потом определить, что была нажата клавиша F2 ?
|
|
|
|
| |
Пост N: 4351
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.12.14 19:08. Заголовок: Andrey пишет: Тогда..
Andrey пишет: цитата: | Тогда я потом не отловлю какая была нажата клавиша, для дальнейшего анализа ! |
| а если так private lF2:=.f. setkey(K_F3,{|| lF2:=.t., hb_Keyput(chr(13))} )
|
|
|
|
| постоянный участник
|
Пост N: 3833
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.12.14 20:38. Заголовок: Dima пишет: а если ..
Dima пишет: цитата: | а если так private lF2:=.f. setkey(K_F3,{|| lF2:=.t., hb_Keyput(chr(13))} ) |
| Спасибо, попробую !
|
|
|
|
| постоянный участник
|
Пост N: 3834
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.12.14 20:55. Заголовок: Делаю так: READ M..
Делаю так: READ MSG AT MAXROW(),0,MAXCOL() IF lF2 == .t. CLEAR TYPEAHEAD HB_KeyPut(K_F3) ENDIF nKey := LASTKEY() nKey возвращает 13 ! Как правильно нужно сделать ?
|
|
|
|
| |
Пост N: 4352
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.12.14 21:21. Заголовок: Andrey пишет: IF lF..
Andrey пишет: Ну достаточно вот так IF LF2 Andrey пишет: цитата: | IF lF2 == .t. CLEAR TYPEAHEAD HB_KeyPut(K_F3) ENDIF |
| Уверен что условие срабатывает и LF2==.t. ?
|
|
|
Ответов - 40
, стр:
1
2
All
[только новые]
|
|