Форум » GUI » TsBrowse в Минигуи (продолжение) » Ответить

TsBrowse в Минигуи (продолжение)

Vlad04: TsBrows определяется в виде строки ПАРМЕТРОВ объекта и их значений К примеру [quote] 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 [/quote] Здесь я собрал параметры из разных tBrows Можно или нет и какие парметры заменить выражением ( и каким) ? oBrw2:.... oBrw2:....

Ответов - 300, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All

Dima: Andrey пишет: Народ, подскажите как убрать белизну Решил вопрос ? Тоже попал на это

Dima: Подсказали добрые люди oBrw:hBrush := CreateSolidBrush( 210, 210, 210 ) // заливаем чем надо

Dima: Понадобилось сделать полноэкранный курсор. Сделал oBrw:lCellBrw :=.F. Пашет , но пропал курсорчик который на CELL , то есть нужен курсор внутри полноэкранного курсора , что бы видеть в какой колонке стоим. В консоли без проблем а тут как ? Сделал авторастяжение колонки 6 oBrw:nAdjColumn := 6 Это не работает если oBrw:lNoHScroll := TRUE , какая связь nAdjColumn с гор. скролом не пойму.


SergKis: Dima пишет: нужен курсор внутри полноэкранного надо работать в режиме CELL и красить нужным цвеьом тек. строку row

Dima: SergKis красить через Method TSBrowse: SetColor() ? Вот это в каком положении должно быть oBrw:lCellBrw ?

SergKis: Dima oBrw:lCellBrw := .T. SetColor() см. надо для 1,2,5,6,11,12 сам только думал попробовать - реально не делал

Dima: SergKis Что то пока понять не могу как это правильно сделать. В примерах (все пересмотрел) ни чего подобного нет а оно надо.

SergKis: Dima Farом поищи в samples\advanced :SetColor( будет список применения на разные ситуации - надо смотреть эти примеры

SergKis: Dima oBrw:SetColor( { 1 }, { { || CLR_BLACK } } ) // 1 , текста в ячейках таблицы oBrw:SetColor( { 2 }, { { || MyRGB(aBack2) } } ) // 2 , фона в ячейках таблицы oBrw:SetColor( { 5 }, { { || CLR_BLACK } } ) // 5 , текста курсора, текст в ячейках с фокусом oBrw:SetColor( { 6 }, { { || { 4915199,255} } } ) // 6 , фона курсора oBrw:SetColor( { 11 }, { { || CLR_GRAY } } ) // 11, текста неактивного курсора (selected cell no focused) oBrw:SetColor( { 12 }, { { || { RGB(255,255,74), RGB(240,240,0)}} } ) // 12, фона неактивного курсора (selected cell no focused) у Andrey в примере есть такое

Dima: SergKis пишет: oBrw:SetColor( { 11 }, { { || CLR_GRAY } } ) // 11, текста неактивного курсора (selected cell no focused) oBrw:SetColor( { 12 }, { { || { RGB(255,255,74), RGB(240,240,0)}} } ) // 12, фона неактивного курсора (selected cell no focused) Вот эти фичи как раз и не срабатывают......

Andrey: Dima пишет: Вот эти фичи как раз и не срабатывают...... Я тоже наткнулся на не срабатывания этого кода. Нужно ставить эти цвета ПОСЛЕ всех обработок до выхода из процедуры. Типа: oBrw3:bKeyDown := { | nKey | MyKeyAction3(nKey,oBrw9, ThisWindow.Name, 0), lOk := nKey != VK_ESCAPE } oBrw3:bLDblClick:= { || MyAction3(oBrw9, ThisWindow.Name, 0) } // Двойной клик мышки на МАРКЕРЕ oBrw3:SetColor( { 16 }, { { || { RGB(0,54,94) , RGB(aBack2[1],aBack2[2],aBack2[3]) } } } ) oBrw3:SetColor( { 17 }, { { || CLR_WHITE } } ) // 17, текста спецхидер oBrw3:Refresh(.T.) //oBrw3:nAt := 5 // передвинуть МАРКЕР на 5 строку oBrw3:nCell := 4 // передвинуть МАРКЕР на 3 колонку //oBrw3:GoPos( 5,3 ) // передвинуть МАРКЕР на 5 строку и 3 колонку SetProperty(ThisWindow.Name, "oBrw3", "Setfocus" ) RETURN NIL Смотри пример с многострочным браузером - https://cloud.mail.ru/public/DkoH/nSzvMbeCh

SergKis: Dima наверно тут, усложнив, выражение надо копать (раскраска четных\нечетных строк) oBrw5:SetColor( { 2 }, { { || iif( oBrw5:nAt % 2 == 0, RGB(255,255,255), RGB(230, 230, 230) ) }})

SergKis: PS. и ON CHANGE

Dima: SergKis пишет: наверно тут, усложнив, выражение надо копать (раскраска четных\нечетных строк) oBrw5:SetColor( { 2 }, { { || iif( oBrw5:nAt % 2 == 0, RGB(255,255,255), RGB(230, 230, 230) ) }}) Видимо да , только условие там правильное надо задать. Типа бровс в фокусе и NROW == не понятно с чем сравнить ЗЫ Has предлагает все делать в скипере.......это просто идея.

Dima: Вот так красит строку oBrw:SetColor( { 2 }, { { || iif( obrw:nat == obrw:nRowPos, RGB(255, 255, 159),RGB(255,255,255) ) }}) Но курсор вниз (вверх) и окраска остается..........на строках где ранее полежал курсор...

SergKis: Dima добавь к этому oBrw:bChange := {|| oBrw:Refresh(.F.) }

Dima: SergKis пишет: oBrw:bChange := {|| oBrw:Refresh(.F.) } Спасибо ! Работает . Но фон курсора на ячейке синий и белые буковки........я это не назначал. Где крутить гайки ?

SergKis: Dima пишет:Где крутить гайки ? тут oBrw:SetColor( { 5 }, { { || CLR_BLACK } } ) // 5 , текста курсора, текст в ячейках с фокусом oBrw:SetColor( { 6 }, { { || { 4915199,255} } } ) // 6 , фона курсора назначены по умолчанию в oBrw:New(...) aTmpColor[ 5 ] := GetSysColor( COLOR_CAPTIONTEXT ), ; // nClrForeFocu aTmpColor[ 6 ] := GetSysColor( COLOR_ACTIVECAPTION ) // nClrFocuBack

Dima: SergKis С этим разобрался. Сенкс. А как быть с oBrw:nAdjColumn , вроде ж должно автоматом выравнивать ширину колонки под ширину бровса и все колонки должны вписаться в ширину бровса. Колонок не много 10 штук с суперхеадером. Но нормально не вписывается да и часть колонок уходит за пределы видимости и нужно скролить вправо что бы их увидеть. Задача простая , вписать все колонки четко в ширину бровса. На ум приходит следующая идея. Задать фиксированную ширину 9-и колонкам а затем присвоить ширину 10-ой колонке которая будет равна Ширина бровса - ширины 9-и колонок. Правильный подход или можно как то проще реализовать ?

SergKis: Dima пишет:Правильный подход или можно как то проще реализовать ? Я TsBrowse, как ты Mdi отложил в ящик, использую Browse без горизонтального скролинга колонок (но на mdi окнах). oBrw:nAdjColumn не пробовал (руки не дошли), но она на одну колонку (может и не так), т.е. на первом экране, а следующие - уже твои проблеммы. Можно ли подключать блоки кода на горизонт. скролинг (клавиши\мыша, для пересчета размеров видимых\невидимых колонок) не знаю. В Browse (модиф. своя версия) делаем так: - определяем колонки для скролинга (размер колонки для "нормального" показа всех прокручиваемых данных) - width размер browse от колонок по окну (всегда, когда нет других контролов справа от browse) или считаем %-том от размера поля ширину в пиксклях, или просто задать от балды - поправят как надо мышой. - клиент мышой может менять ширину любой колонки - это сохраняется в cfg под именем окна+browse и при след. входе в окно размеры колонок беруться от cfg (с mdi main окном и modal окнами, также размеры можно менять, сохраняются в cfg под именем окна) - и при горизонт. скролинге (от номера скролинга) меняется выражение показа всей строки



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