Форум » 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 Рассчитывай ширины столбцов так , что бы не было виртуального столбца , тогда и красить ни чего не придется. PS Или юзай nAdjColumn

Andrey: Dima пишет: Рассчитывай ширины столбцов так , что бы не было виртуального столбца , тогда и красить ни чего не придется. Есть справочники состоящие из 2 колонок всего. Так что без виртуального столбца на экране никак не обойтись.

Haz: Andrey пишет: Так что без виртуального См obrw:hBrush в примерах


Dima: Andrey Где то была процедура заливки фантома (строки и столбца) , Has показывал , но с ходу не найду Еще можно попробовать поиграть с фантомным столбцом через объект oPhant (это я по быстрому на сырец глянул)

Andrey: Haz пишет: См obrw:hBrush в примерах Нашёл. Поставил себе - не работает !!! Делаю у себя 10 колонку: [pre2] ADD COLUMN TO oBrw1 HEADER "Lang" ; .......... COLOR CLR_BLACK, CLR_WHITE ; ..... [/pre2] Потом ставлю для блокировки цвета ещё 11 колонку: [pre2] // для избавления от белого цвета конца таблицы ADD COLUMN TO oBrw1 HEADER "" ; DATA {|| NIL } ; SIZE 0 ; COLOR nBackTable, nBackTable ; NAME ZERO [/pre2] Только тогда цвет виртуального столбца становиться в цвет фона таблицы. Но на экране некрасиво это выглядит, да и курсор туда убегает (становиться невидимым) - юзер теряться будет.....

Dima: Andrey пишет: Только тогда цвет виртуального столбца становиться в цвет фона таблицы. Но на экране некрасиво это выглядит, да и курсор туда убегает (становиться невидимым) - юзер теряться будет..... Растягивай первую колонку что бы не было фантомной.

Haz: Andrey пишет: Нашёл. Поставил себе - Тогда до понедельника

Haz: Andrey пишет: Только тогда цвет виртуального столбца становиться в цвет фона таблицы. Но на экране некрасиво это выглядит, да и курсор туда убегает (становиться невидимым) - юзер теряться будет..... А в исходники посмотреть? Там же буквами написано, что фантомная колонка ВСЕГДА красится в цвет той, которая перед ней. Другого указания цвета фантому в TS нет. Это было к вопросу почему фантом белый Теперь как исправить. Так же посмотреть в исходники и увидеть что после назначения цвета фантому по последней колонке выполняется ::bOnDrawLine ( если он определен ) и тогда исправить цвет становится просто - в этом блоке вызываем функцию , которая все лечит oBrw:bOnDrawLine := {|oBrw| SetPhantomBackcColor(oBrw) } [pre2] FUNC SetPhantomBackcColor(oBrw) IF oBrw:oPhant <> Nil oBrw:oPhant:nClrBack := RGB( 111, 183, 155 ) // к примеру пусть будет грязно голубой end RETURN NIL [/pre2]

Haz: Ну и напоследок бонус трек Самое простое и очевидное решение, просто поражающее простотой. Сделать колонку 11 скрытой

Dima: Haz пишет: Сделать колонку 11 скрытой Игорь крась яйца уже

Haz: Dima пишет: крась яйца Все покрашено с утра И яйца и фантом, хожу с кисточкой и думаю гдеб еще мазнуть

Dima: Haz

Andrey: Haz пишет: Самое простое и очевидное решение, просто поражающее простотой. Сделать колонку 11 скрытой Да подумал я об этом, сразу не сделал так как посчитал SIZE 0 будет 0, а не 2-3 пиксела как на экране. Спасибо за решение !

SergKis: gfilatov2002 Добавил, у себя, возмозможность уст. высоту Edit отличную от высоты Cell [pre2] CLASS TSBrowse FROM TControl ... DATA nHeightEdit AS NUMERIC INIT 0 // GetBox cell height ... METHOD Edit( uVar, nCell, nKey, nKeyFlags, cPicture, bValid, nClrFore, nClrBack ) CLASS TSBrowse ... IF ::nColSpecHd != 0 nRow := ::nHeightHead + ::nHeightSuper + If( oCol:l3DLook, 2, 0 ) nCol := nStartX + If( oCol:l3DLook, 2, 0 ) nWidth := ::GetColSizes()[ nCell ] - If( oCol:l3DLook, 2, 1 ) nHeight := ::nHeightSpecHd - If( oCol:l3DLook, 1, -1 ) else nRow := ::nRowPos - 1 nRow := ( nRow * ::nHeightCell ) + ::nHeightHead + ; ::nHeightSuper + ::nHeightSpecHd + If( oCol:l3DLook, 2, 0 ) nCol := nStartX + If( oCol:l3DLook, 2, 0 ) nWidth := ::GetColSizes()[ nCell ] - If( oCol:l3DLook, 2, 0 ) nHeight := ::nHeightCell - If( oCol:l3DLook, 1, -1 ) If ::nHeightEdit > 0 nI := nHeight - ::nHeightEdit If nI > 4 nHeight := ::nHeightEdit nRow += int(nI / 2) EndIf EndIf endif If oCol:cResName != Nil .or. oCol:lBtnGet ... [/pre2] Полезно при исп. тсб как аналог списка пар Label+GetBox без линий и с исп. image > 24

Dima: SergKis Так ее же можно установить в bPrevEdit с помощью SetGetAdjustBrw , нет ?

SergKis: Dima если ты имеешь ввиду aEditCellAdjust := {0,0,0,0}, то да, так можно управлять, но в моей версии этого нет и ... тогда предложение снимаю.

Dima: SergKis я имел в виду примерно такой код [pre2] obrw3:GetColumn("cod"):bPrevEdit := { |a, b, lLock| SetGetAdjustBrw(b,{2,0,-2,-3}) ............. [/pre2]

SergKis: Дима, где есть SetGetAdjustBrw(...) ? Просканировал MiniGui, не получил результата. Потом bPrevEdit исп. для простой ситуации (а если много колонок) ..., слишком сложно. В целом имея высоту getbox мне хватает того, что у себя сделал. А ширина всегда по ширине cell, этим манипулирует пользователь, а я - picture

Dima: Сергей я тупанул Это я свою функцию заюзал Func SetGetAdjustBrw(o,amas) o:aEditCellAdjust[1]:=amas[1] o:aEditCellAdjust[2]:=amas[2] o:aEditCellAdjust[3]:=amas[3] o:aEditCellAdjust[4]:=amas[4] return .t. Ты был прав насчет aEditCellAdjust

SergKis: Дима, зачем ты в это делаешь в bPrevEdit, разве не достаточно простого на весь tsb nHget := 22 nH := :nHeightCell - nHget If nH > 4 :aEditCellAdjust[1] := int(nH / 2) :aEditCellAdjust[4] := nHget EndIf для мультистрок будет своя высота пересчитана, а для др. ситуаций сделанного, достаточно



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