Форум » 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: Shift+INS у меня тоже не сработал в этом примере , меняется только форма курсора , CTRL+V пашет зы Win7

Haz: Andrey пишет: Shift+Insert/Ctrl+Insert НЕТ.... Да с шифтом не работает . Сергей пару постов назад сказал куда копать ... Лови нажатие шифт+инс и пихай содержимое буфера Хотя .... ловить кнопки скорее надо уже в объекте oGet который создался в бровсе после нажатия ентер

Andrey: Haz пишет: Лови нажатие шифт+инс и пихай содержимое буфера Хотя .... ловить кнопки скорее надо уже в объекте oGet который создался в бровсе после нажатия ентер А нельзя сделать это в самих исходниках TsBrowse ? Чтобы не делать велосипед... Всем же это нужно !


Dima: Andrey пишет: Чтобы не делать велосипед... Всем же это нужно ! Не знаю как всем , лично мне хватает стандарта CTRL+V

Haz: Тоже в основном пользую ctrl-c/v До ins тянуться через всю клаву надо ... лень

Andrey: Работаю с SetArrayTo() SergKis писал где-то, что после ввода в ячейку таблицы (для отображения границ ячеек таблицы) нужно делать oBrw1:Refresh(FALSE) А в SetArrayTo() - это oBrw1:Refresh(FALSE) не работает ! oCol:bPostEdit := { || AADD( aStatExit, nYear ), AADD( aStatXTbr, cTbrName ),; MyPostEdit(), oBrw1:Refresh(FALSE) } Что делать или что использовать взамен ?

Haz: Andrey пишет: в SetArrayTo() - это oBrw1:Refresh(FALSE) не работает Не совсем понял про :SetArrayTo(), мне казалось этот метод просто позволяет сразу назначать шрифты , размеры , хидинги и футинги при инициализации массива. В отличие от :SetArray() , где это все нужно делать позже. как связаны разные методы :Refresh(...) и :SetArrayTo(...) не уловил

SergKis: Andrey пишет:SergKis писал где-то, что после ввода в ячейку таблицы (для отображения границ ячеек таблицы) нужно делать oBrw1:Refresh(FALSE) Запусти Tsb_array_2 и в строке ниже первой включи коректировку по Enter и пройди по нескольким полям и увидишь, что не прорисовываются линии между тек. строкой и предыдущей. Если воставить в bPostedit oBrw:Refresh(.F.), то линии прорисуются. Вот о чем я говорил. Возможно на dbf будет такое же поведение - не помню

gfilatov2002: SergKis пишет: пройди по нескольким полям и увидишь, что не прорисовываются линии между тек. строкой и предыдущей. Благодарю за наводку Вроде удалось поправить прорисовку разделительной линии в методах GoRight и GoDown

Andrey: Делаю растяжку последней колонки в SetArrayTo() nColSpace := LEN(aDim) oBrw1:nAdjColumn := nColSpace // растянуть колонку до заполнения пустоты в бровсе справа Не растягивается.... Почему ?

Dima: Andrey Длина массива aDim равна кол-ву видимых колонок ?

Andrey: Dima пишет: Длина массива aDim равна кол-ву видимых колонок ? Да ! На экране 14 колонок, последняя пустая и некрасиво из-за этого.

Andrey: Привет всем ! Опять небольшая проблема с цветами в SetArrayTo(). Делаю так: LOCAL oBrw1 ....... oBrw1:SetColor( { 2 }, { { |a,b,o| iif( Month(o:aArray[o:nAt][5]) % 2 == 0, ; MyRGB( {0, 204, 255} ) ,; MyRGB(aBackClr) ) } } ) Потом беру эти цвета помещаю в массив AADD( aStatColorTable, { oBrw1:cControlName, 1, oBrw1:nClrText, NIL } ) AADD( aStatColorTable, { oBrw1:cControlName, 2, MyRGB({0,204,255}), MyRGB(aBackClr) } ) и записываю в ини-файл: ObjTable_1={"Set_Columns1", 1, 0, NIL} ObjTable_2={"Set_Columns1", 2, 16763904, 15515551} ObjTable_3={"Set_Columns1", 13, 255, NIL} Потом в ON INIT формы делаю считывание из ини-файла (массив aIni4Clr) и вывожу цвет в бровс: LOCAL oBrw52 ............... oBrw52 := gBrw52(cForm,"Set_Columns1") // считываю объект SetArrayTo() в локал переменную FOR nJ := 1 TO LEN(aIni4Clr) nVal := aIni4Clr[nJ,2] nColor := aIni4Clr[nJ,3] nColor2 := aIni4Clr[nJ,4] IF nVal == 2 oBrw52:SetColor( { 2 }, { { |a,b,o| iif( Month(o:aArray[o:nAt][5]) % 2 == 0, ; nColor , nColor2 ) } } ) ELSE IF nColor2 == NIL // если один цвет используется oBrw52:SetColor( { nVal }, { { || nColor } } ) ELSE oBrw52:SetColor( { nVal }, { { || { nColor , nColor2 } } } ) ENDIF ENDIF NEXT Цвета становятся ну просто светофор .... Чего я не учитываю ? Какая тонкость при восстановлении цветов ? Уже 3 день бьюсь... Помогите пожалуйста.

Haz: Andrey пишет: Чего я не учитываю Не проверял , но уверен что с блоком кода не учитываешь. В блок кода передаются локальные переменные и когда этот блок исполняется при прорисовке бровса , значения этих переменных непредсказуемы , отсюда и ну просто светофор ЗЫ. Опять небольшая проблема с цветами в SetArrayTo(). не верно локализован источник проблемы

Andrey: Haz пишет: В блок кода передаются локальные переменные и когда этот блок исполняется Почему ? При первом построении тоже использую локал: LOCAL aBackClr Сделал так: PRIVATE nTsbColor, nTsbColor2 Ну и дальше все переменные переименовал. Всё равно цвета - светофор !

Haz: При чем тут local ... Private говорю в блоке кода , к примеру в этом oBrw52:SetColor( { nVal }, { { || nColor } } ) . Чему равно nColor в момент прорисовки бровса при навигации по нему ? 100000% что не значению, которое было в цикле инициализации .... вот этим значением и рисует ЗЫ сделай так и удивись oBrw52:SetColor( { nVal }, { { || msgDebug(nVal, nColor), nColor } } )

Andrey: Haz пишет: ЗЫ сделай так и удивись oBrw52:SetColor( { nVal }, { { || msgDebug(nVal, nColor), nColor } } ) Удивился... А как тогда правильно сделать ?

Haz: Andrey пишет: А как тогда правильно сделать ? делал же ... TSB_CONFIG глянь

Andrey: Haz пишет: делал же ... TSB_CONFIG глянь Да, только там цветной блок попроще был.

Haz: Andrey пишет: Да, только там цветной блок попроще был. какая разница какой блок, важно как реализовано . или тут http://clipper.borda.ru/?1-1-0-00000399-000-240-0 твой пост N 3712 и два ответа ниже тоже с этой же ошибкой при вызоаве блока связаны



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