On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
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:....



Спасибо: 0 
Профиль
Ответов - 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


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3741
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.11.14 14:22. Заголовок: Haz пишет: нет ниче..


Haz пишет:

 цитата:
нет ничего проще



Не совсем получается. При обработке первой колонки по F9 попадаю в обработку 1-ой колонки.
А остальные колонки - становятся закрытыми !!!
Что-то не так делаю ?
Исправленный пример там же.

Спасибо: 0 
Профиль
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))

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3742
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.11.14 15:23. Заголовок: Haz пишет: там всег..


Haz пишет:

 цитата:
там всего 3 строки кода


Понял, разобрался.

А как все-таки получить в функции MyEditPole() координаты курсора/маркера ?
MsgDebug( "Right=", oBrw:aColumns[oBrw:nCell]:oEdit:nRight, "Left=", oBrw:aColumns[oBrw:nCell]:oEdit:nLeft )
Выдает ошибку : Error BASE/1004 Метод не экспортирован: NRIGHT



Спасибо: 0 
Профиль
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. Но вот что с ними делать будешь ?





Спасибо: 0 
Профиль
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


Спасибо: 0 
Профиль
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
Не могу сообразить как выставить условие показа....

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 362
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 23.11.14 13:07. Заголовок: Andrey пишет: Как м..


Andrey пишет:

 цитата:
Как мне рас красить таблицу по строкам ?


не понял вопрос
в oBrw_2:Setcolor( { 1 }, { nTextColor }, 1 ) вместо { nTextColor } укажи блок кода , который вернет массив цвета в зависимости от номера строки

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3746
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.11.14 13:39. Заголовок: Haz пишет: кажи бло..


Haz пишет:

 цитата:
кажи блок кода , который вернет массив цвета в зависимости от номера строки


Вот с этим блоком кода у меня и не получается....

Спасибо: 0 
Профиль
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 )


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3747
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.11.14 15:03. Заголовок: Haz пишет: как то т..


Haz пишет:

 цитата:
как то так


Нет, не получается....
Я файл на почту отправил.
Посмотри пожалуйста.

Спасибо: 0 
Профиль
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 свои значения ?



Спасибо: 0 
Профиль
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 (индексы фильтры сортировка и пр)

Спасибо: 0 
Профиль
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




Спасибо: 0 
Профиль
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




Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3751
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.11.14 20:59. Заголовок: Haz Спасибо ! :sm36..


Haz Спасибо !

Еще можно и так:
FOR nI := 1 TO oBrw_2:nLen


Спасибо: 0 
Профиль
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] })



Спасибо: 0 
Профиль
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 вопроса, письмо отправил.

Спасибо: 0 
Профиль
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 ?

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 368
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 25.11.14 12:39. Заголовок: Andrey пишет: А поч..


Andrey пишет:

 цитата:
А почему не работает вот эта конструкция


Она не может не работать , bPostEdit автоматически выполняется после редактирования
Проверь вызов , oBrwClr:aColumns[4]:bPostEdit := { || MsgDebug('ДО'), ViewColorTbrws(oBrwClr,4,aVar), MsgDebug('ПОСЛЕ') }
Скорее в логике проблема.

Спасибо: 0 
Профиль
Ответов - 301 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 17
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет