Автор | Сообщение |
Vlad04
|
| постоянный участник
|
Пост N: 420
Зарегистрирован: 13.10.05
|
|
Отправлено: 19.12.13 18:16. Заголовок: TsBrowse в Минигуи
TsBrows определяется в виде строки ПАРМЕТРОВ объекта и их значений К примеру цитата: | DEFINE TBROWSE oBrw2 ; AT 60,450 ; ALIAS cAlias ; OF Form1 ; WIDTH 330 ; HEIGHT 340 ; FONT "Verdana" ; SIZE 9 ; ON DBLCLICK CopyRec(); ON GOTFOCUS fModelo_Hab(2) ; AUTOFILTER ; CELLED EDIT; VALUE nRec; GRID |
| Здесь я собрал параметры из разных tBrows Можно или нет и какие парметры заменить выражением ( и каким) ? oBrw2:.... oBrw2:....
|
|
|
Ответов - 301
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
All
[только новые]
|
|
Haz
|
| |
Пост N: 358
Зарегистрирован: 20.02.11
|
|
Отправлено: 21.11.14 12:23. Заголовок: Andrey пишет: Как м..
Andrey пишет: цитата: | Как мне сделать редактирование ТОЛЬКО первой колонки ("Код") ТОЛЬКО по клавише F10 ? |
| F10 завязана на Sysmenu окна и по умолчанию бровсом не перехватывается. Разбираться как отучить не стал а на F9 - нет ничего проще oBrw:nFireKey := VK_F9 oBrw:bUserKeys := { |a,b,c| KeyPressed(a,b,c) } FUNC KeyPressed( nKey, nFlag, oBrw ) LOCAL xRet := nKey IF nKey == VK_RETURN .OR. nKey == oBrw:nFireKey .AND. oBrw:nCell > (IF(oBrw:lSelector, 2, 1)) xRet := .F. END RETURN xRet
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3741
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.11.14 14:22. Заголовок: Haz пишет: нет ниче..
Haz пишет: Не совсем получается. При обработке первой колонки по F9 попадаю в обработку 1-ой колонки. А остальные колонки - становятся закрытыми !!! Что-то не так делаю ? Исправленный пример там же.
|
|
|
Haz
|
| |
Пост N: 359
Зарегистрирован: 20.02.11
|
|
Отправлено: 21.11.14 14:54. Заголовок: Andrey пишет: Не со..
Andrey пишет: цитата: | Не совсем получается. При обработке первой колонки по F9 попадаю в обработку 1-ой колонки. А остальные колонки - становятся закрытыми !!! |
| Сам же хотел ТОЛЬКО первую и ТОЛЬКО по F Или остальные как обычно должны ? Тогда подправь условие KeyPressed() - там всего 3 строки кода PS. IF nKey == VK_RETURN .AND. oBrw:nCell == (IF(oBrw:lSelector, 2, 1)) .OR. nKey == oBrw:nFireKey .AND. oBrw:nCell > (IF(oBrw:lSelector, 2, 1))
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3742
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.11.14 15:23. Заголовок: Haz пишет: там всег..
Haz пишет: Понял, разобрался. А как все-таки получить в функции MyEditPole() координаты курсора/маркера ? MsgDebug( "Right=", oBrw:aColumns[oBrw:nCell]:oEdit:nRight, "Left=", oBrw:aColumns[oBrw:nCell]:oEdit:nLeft ) Выдает ошибку : Error BASE/1004 Метод не экспортирован: NRIGHT
|
|
|
Haz
|
| |
Пост N: 360
Зарегистрирован: 20.02.11
|
|
Отправлено: 21.11.14 16:08. Заголовок: Andrey пишет: А как..
Andrey пишет: цитата: | А как все-таки получить в функции MyEditPole() координаты курсора/маркера ? |
| Получить можно , но при выводе твоей подсказки "Нажмите ввод для сохранения" Get объект потеряет фокус и скорее всего редактирование завершится до Get можно добраться через блок oColumns:bEditing - этот блок выполняется ( если определен) когда GET создан.В него передается 2 параметра : If oCol:bEditing != Nil Eval( oCol:bEditing, uVar, Self ) EndIf т.е. значение ячейки и объект aColumn, координаты можно дернуть через oColumn:oEdit:nTop, oColumn:oEdit:nLeft. Но вот что с ними делать будешь ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 434
Зарегистрирован: 17.02.12
|
|
Отправлено: 21.11.14 17:56. Заголовок: Andrey пишет:А как в..
Andrey пишет: цитата: | А как все-таки получить в функции MyEditPole() координаты курсора/маркера ? |
| попробуй отработать по GetBox (bWhen, bGotFocus, bValid): // h := GetFocus() - на GotFocus и Valid можно, на When не помню, на Action // нельзя в фокусе будет Button Action, тут только через: h := GetControlHandle(_HMG_ThisControlName, _HMG_ThisFormName) i := aScan(_HMG_aControlHandles, h) IF i > 0 .and. _HMG_aControlType[ i ] == "GETBOX" nRow := GetWindowRow(h) // _HMG_aControlRow [ i ] nCol := GetWindowCol(h) // _HMG_aControlCol [ i ] nWidth := GetWindowWidth(h) // _HMG_aControlWidth [ i ] nHeight := GetWindowHeight(h) // _HMG_aControlHeight[ i ] oGet := _HMG_aControlHeadClick[ i ] uValue := oGetVarGet() // значение получить ... oGet:VarPut(uValue) // значение записать ENDIF т.е. Label создать в bWhen, убрать в bLoctFocus или bValid
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3745
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.11.14 18:45. Заголовок: http://f5.s.qip.ru/x..
Имею вот такую таблицу. Хочу раскрасить её по строкам, коме 3 и 4 колонки. Цвета текста содержатся в 3-ей колонке, а цвет фона в 4-ой колонке. Массив aStColorUsl равен: { 1, 'Цвет текста/фона удаленных записей' , CLR_HGRAY , CLR_BLACK , 0 } { 2, 'Цвет текста/фона столбца "Код" = 0' , 255 , MyRGB({235,117,123}) , 0 } { 3, 'Цвет столбца "Наименование события" пустое' , 128 , MyRGB({235,117,123}) , 0 } { 4, 'Цвет текста/фона столбца "Код" = 1' , CLR_WHITE , CLR_GRAY , 1 } { 5, 'Цвет текста/фона столбца "Код" = 2' , CLR_YELLOW , CLR_GRAY , 1 } { 6, 'Цвет текста/фона столбца "Код" = 3' , CLR_RED , CLR_GRAY , 1 } { 7, 'Цвет текста/фона столбца "Код" = 4' , CLR_HGRAY , CLR_GRAY , 1 } { 8, 'Цвет текста/фона столбца "Код" = 5' , CLR_BLUE , CLR_GRAY , 1 } { 9, 'Остальные цвета ' , CLR_BLACK , CLR_GRAY , 1 } Как мне рас красить таблицу по строкам ? FOR nJ := 1 TO LEN(aStColorUsl) // массив цвета по условию nTextColor := aStColorUsl[nJ,3] // цвет текста nBackColor := aStColorUsl[nJ,4] // цвет фона oBrw_2:Setcolor( { 1 }, { nTextColor }, 1 ) // 1 колонка - цвет текста oBrw_2:Setcolor( { 2 }, { nBackColor }, 1 ) // 1 колонка - цвет фона oBrw_2:Setcolor( { 1 }, { nTextColor }, 2 ) // 2 колонка - цвет текста oBrw_2:Setcolor( { 2 }, { nBackColor }, 2 ) // 2 колонка - цвет фона NEXT Не могу сообразить как выставить условие показа....
|
|
|
Haz
|
| |
Пост N: 362
Зарегистрирован: 20.02.11
|
|
Отправлено: 23.11.14 13:07. Заголовок: Andrey пишет: Как м..
Andrey пишет: цитата: | Как мне рас красить таблицу по строкам ? |
| не понял вопрос в oBrw_2:Setcolor( { 1 }, { nTextColor }, 1 ) вместо { nTextColor } укажи блок кода , который вернет массив цвета в зависимости от номера строки
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3746
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.11.14 13:39. Заголовок: Haz пишет: кажи бло..
Haz пишет: цитата: | кажи блок кода , который вернет массив цвета в зависимости от номера строки |
| Вот с этим блоком кода у меня и не получается....
|
|
|
Haz
|
| |
Пост N: 363
Зарегистрирован: 20.02.11
|
|
Отправлено: 23.11.14 14:00. Заголовок: как то так ? oBrw_2:..
как то так ? oBrw_2:Setcolor( { 1,2 }, { || { aStColorUsl[ oBrw:nAt][3], aStColorUsl[ oBrw:nAt][4] }}, 2 )
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3747
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.11.14 15:03. Заголовок: Haz пишет: как то т..
Haz пишет: Нет, не получается.... Я файл на почту отправил. Посмотри пожалуйста.
|
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3749
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.11.14 18:37. Заголовок: С таблицами с базой ..
С таблицами и базой я немного разобрался. А как мне работать с массивом из которого сделан TBROWSE: DEFINE TBROWSE oBrw_2 ; ............... END TBROWSE oBrw_2:SetArray( aVar2 ) ADD COLUMN TO TBROWSE oBrw_2 DATA ARRAY ELEMENT 1; ................ Т.е. как мне записать в ELEMENT 5 свои значения ?
|
|
|
Haz
|
| |
Пост N: 364
Зарегистрирован: 20.02.11
|
|
Отправлено: 24.11.14 20:17. Заголовок: Andrey пишет: Т.е. ..
Andrey пишет: цитата: | Т.е. как мне записать в ELEMENT 5 свои значения ? |
| 1. oBrw_2:aArray[oBrw_2:nAt][5] := "Свое значение" 2. Eval( oBrw_2:aColumns[5]:bBlock, "Свое значение" ) 3. использовать SQLMIX и работать с массивом как с DBF (индексы фильтры сортировка и пр)
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3750
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.11.14 20:28. Заголовок: Haz пишет: 1. oBrw_..
Haz пишет: цитата: | 1. oBrw_2:aArray[oBrw_2:nAt][5] := "Свое значение" |
| Немного ошибся. Нужно 4 элемент изменять. В ней у меня цвета - числа. Как сделать цикл по 4 колонке ? FOR nI := 1 TO ??? ( oBrw_2:nLen - так или ошибаюсь ?) oBrw_2:aArray[oBrw_2:nI][4] := aStColorUsl[nI,4] ... NEXT
|
|
|
Haz
|
| |
Пост N: 365
Зарегистрирован: 20.02.11
|
|
Отправлено: 24.11.14 20:32. Заголовок: Andrey пишет: Как с..
Andrey пишет: цитата: | Как сделать цикл по 4 колонке |
| FOR nI := 1 TO Len(oBrw_2:aArray) oBrw_2:aArray[nI][4] := aStColorUsl[nI,4] ... NEXT
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3751
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.11.14 20:59. Заголовок: Haz Спасибо ! :sm36..
Haz Спасибо ! Еще можно и так: FOR nI := 1 TO oBrw_2:nLen
|
|
|
Haz
|
| |
Пост N: 366
Зарегистрирован: 20.02.11
|
|
Отправлено: 24.11.14 21:09. Заголовок: Andrey пишет: Еще м..
Andrey пишет: можно, я просто привык к Len( aArray ) можно и так nI := 0 Aeval( oBrw_2:aArray, {|e| e[4] := aStColorUsl[++nI,4] }) PS. Даже короче в одну строку Aeval( oBrw_2:aArray, {|e, n| e[4] := aStColorUsl[n,4] })
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3752
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.11.14 21:29. Заголовок: Haz пишет: Aeval( o..
Haz пишет: цитата: | Aeval( oBrw_2:aArray, {|e| e[4] := aStColorUsl[++nI,4] }) |
| Не, это трудно читаемое... Не для меня ! Потом свои тексты фиг разберешь !!! А я пример делаю для всех, в коллекцию Григория. Там тоже читаемый текст нужен... Посмотри пожалуйста еще 3 вопроса, письмо отправил.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3753
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.11.14 11:16. Заголовок: С изменением цвета п..
С изменением цвета понял, СПАСИБО ! // редактирование 4-колонки и перерисовка цвета после его изменения oBrwClr:aColumns[4]:bPrevEdit := { || ColorPicker(oBrwClr), oBrwClr:Refresh(FALSE), FALSE } А почему не работает вот эта конструкция ? oBrwClr:aColumns[4]:bPostEdit := { || ViewColorTbrws(oBrwClr,4,aVar) } Т.е. я хотел бы чтобы после изменения цвета выполнялась функция перерисовки цвета по таблице. За что отвечает bPostEdit ?
|
|
|
Haz
|
| |
Пост N: 368
Зарегистрирован: 20.02.11
|
|
Отправлено: 25.11.14 12:39. Заголовок: Andrey пишет: А поч..
Andrey пишет: цитата: | А почему не работает вот эта конструкция |
| Она не может не работать , bPostEdit автоматически выполняется после редактирования Проверь вызов , oBrwClr:aColumns[4]:bPostEdit := { || MsgDebug('ДО'), ViewColorTbrws(oBrwClr,4,aVar), MsgDebug('ПОСЛЕ') } Скорее в логике проблема.
|
|
|
Ответов - 301
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
All
[только новые]
|
|