Форум » FiveWin » TXbrowse , редактирование » Ответить

TXbrowse , редактирование

Dima: [pre2] @ 55,5 Xbrowse obrw ; Size (ownd:nwidth()/2)-10,(ownd:nHeight/2)-85 ; of ownd PIXEL font ofont2 ALIAS "TEST" ; LINES CELL FASTEDIT oCol:= obrw:AddCol() oCol:cHeader := "Примечание" oCol:bStrData := { || TEST->vprim } oCol:nHeadStrAlign := AL_CENTER oCol:nDataStrAlign := AL_LEFT oCol:bEditValue := { || TEST->vprim } ocol:nEditType := EDIT_GET oCol:bonPostEdit := { | oCol, uValue, nLastKey | If( nLastKey == 13, TEST->vprim := uValue,) } oCol:cEditPicture := "@s30" obrw:nMarqueeStyle :=MARQSTYLE_HIGHLROW obrw:CreateFromCode() [/pre2] [pre2] Собственно 2 проблемы. 1. Режим Fastedit включен , но при нажатии цифры или буквы вход в режим редактирования не происходит. Чуть поигрался и понял что это не работает, так как стиль курсора MARQSTYLE_HIGHLROW. Но мне нужен именно такой стиль. Как это обойти ? 2. После выхода из режима редактирования , курсор перескакивает на соседнюю ячейку , мне эта радость как бы и не нужна. Что сделать что бы курсор не перескакивал а оставался в той же ячейке ? [/pre2]

Ответов - 6

fil: 2. в bonPostEdit добавить позиционирование на нужную колонку

Dima: fil Спасибо ! 2 пункт решился иначе obrw:nmovetype:=5 [pre2] /* DATA nMoveType; // 1 Move Right AS NUMERIC // 2 Move Left // 3 Move Up // 4 Move down // 5 No Move // 6 Move Right with lFastedit features, only work with lFastEdit := .t. // 7 Move left with lFastedit features, only work with lFastEdit := .t. */ [/pre2] Остался пунктик 1 :)

fil: Ну, видимо, надо перехватить нажатие через bKeyDown и активизировать строку редактирования


Dima: fil пишет: надо перехватить нажатие через bKeyDown и активизировать строку редактирования Сделал , но теперь прога падает. [pre2] oBrw:bKeyDown = {|nKey| if( oBrw:aCols[ obrw:ncolsel ]:iseditkey(nKey), oBrw:aCols[obrw:ncolsel]:Edit(chr(nkey)),) } [/pre2] Error description: Error BASE/1004 Class: 'NIL' has no exported method: SELECTALL Called from: => SELECTALL(0) Called from: .\source\classes\XBROWSE.PRG => TXBRWCOLUMN:EDIT(8475) И чего ему надо ? :)

fil: Как правило, такие штуки происходят при параллельном выполнении событий бровса и контролов другого окна( get на чем-то сидит) Я к тому, что может какие блоки кода или инфу визуалки колонок на время редактирования сделать NIL, а после восстановить

Dima: Пункт 1 , решил. Как говорит ММК , решение можно найти всегда ;)



полная версия страницы