Форум » 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:....

Ответов - 209, стр: 1 2 3 4 5 6 7 8 9 10 11 All

Andrey: 1) Нет надписи по команде - WAIT WINDOW "Подождите, создаю тестовую базу...." NOWAIT На ХР надпись есть. Видать Win8.1 не срабатывает... На ХР появляется квадрат Малевича - синего цвета. Почему ? Вроде осталась последняя "непонятка" в примере и всё остальное работает ! Просьба ко всем - протестировать последнюю версию https://cloud.mail.ru/public/DFuN/tzKsbUF8R

Dima: Andrey пишет: 1) Нет надписи по команде - WAIT WINDOW "Подождите, создаю тестовую базу...." NOWAIT На ХР надпись есть. Видать Win8.1 не срабатывает... Попробуй с цветами поиграть , может появится...

Andrey: Dima пишет: Попробуй с цветами поиграть , может появится... А как пробовать то ? Там просто, без параметров - WAIT WINDOW "Подождите, создаю тестовую базу...." NOWAIT На ХР, Win7, Win10 надпись есть !

Dima: Andrey пишет: А как пробовать то ? Ты прав. Я бы забил на это дело и сделал своё WaitWindow

Andrey: Andrey пишет: Вроде осталась последняя "непонятка" в примере и всё остальное работает ! Прямоугольник присутствует на WinXP и Win7. На Win8.1 и Win10 - нет. Как исправить ?

Dima: Да , странно , косяков вроде нет в MyHelpLabel() а голубой квадрат Малевича , есть :) Цвет квадрата явно перекочевал из MyToolBar() PS Win-7

Andrey: Dima пишет: Цвет квадрата явно перекочевал из MyToolBar() Нет, не оттуда. Этот квадрат копия окна подсказки. Наверное как-то перерисовывается в Tsbrowse. Я придумал как его убрать. При создании окна делаем NOSHOW: [pre2] DEFINE WINDOW Form_Help ; .... NOSHOW ;[/pre2] а потом в MyPrevEditDim(): [pre2] SetProperty(cForm, "Row" , nY ) SetProperty(cForm, "Col" , nX ) SHOW WINDOW &cForm [/pre2] И всё - заработало !!!

Andrey: Всем привет ! Можно ли при наведении мышкой на определённый столбец менять вид курсора (типа пальца) ?

Dima: Andrey Можно попробовать через Brw:cToolTip это реализовать. C:\MiniGUI\SAMPLES\Advanced\Tsb_calendar\demo2.prg В блоке кода ловишь нужную колонку и меняешь форму курсора

Andrey: Dima , СПАСИБО за наводку ! Попробую...

Andrey: Посмотрел пример C:\MiniGUI\SAMPLES\Advanced\Tsb_calendar\demo2.prg Так и не понял как к себе применить. Есть такая таблица: Как мне сделать следующие подсказки (oBrw:cToolTip) : 1) В колонке 2 - "Открыть + имя_файла (в колонке)", поле бд FILE1 ? 2) В колонке 5 поставить ТОЛЬКО на красную стрелку подсказку "Конвертировать", поле бд LCONV ? 3) В колонке 6 - "Открыть + имя_файла (в колонке)", поле бд FILE2 - ТОЛЬКО для тех колонок, где есть имена файлов ? Смог сделать только так: [pre2] cToolTip := "Открыть " oBrw1:cToolTip := {|oBr,nCol,nRow| oBr:=nil,IIF( nCol==2, cToolTip + HB_NtoS(nRow),; IIF( nCol==6, cToolTip + HB_NtoS(nRow), "" ) ) }[/pre2]

Andrey: Как не изгалялся, так и не смог сделать/получить имена файлов и условие по красной стрелке. Единственно получилось, так это чтобы cToolTip не высвечивался на условиях if( nRow > 0 .AND. nRow < oBr:nLen+1 : [pre2] oBrw1:cToolTip := {|oBr,nCol,nRow| if( nRow > 0 .AND. nRow < oBr:nLen+1, IIF( nCol==2, "Открыть" ,; IIF( nCol==6, "Открыть" , IIF(nCol==5,"Конвертировать","" ) ) ),; ) }[/pre2]

SergKis: Andrey пишет Как не изгалялся,... [pre2] примерно такая схема (как надо сделаешь сам) ... DEFINE TBROWSE oBrw AT ... ... __objAddData( oBrw, 'aRowPosRec' ) ... // последними строками перед end tbrowse If empty(oBrw:aRowPosRec) oBrw:aRowPosRec := array(oBrw:nRowCount()) AFill(oBrw:aRowPosRec, 0) EndIf oBrw:bOnDrawLine := {|obr | On_DrawLine(obr) } oBrw:cToolTip := {|obr,col,row| On_ToolTip(obr,col,row) } END TBROWSE ... STATIC FUNC On_DrawLine( oBr ) LOCAL nRow := If( oBr:lDrawHeaders, Max( 1, oBr:nRowPos ), oBr:nRowPos ) If oBr:lPainted oBr:aRowPosRec[ nRow ] := (oBr:cAlias)->( RecNo() ) EndIf RETURN Nil STATIC FUNC On_ToolTip( oBr, nCol, nRow ) LOCAL cTxt := '' LOCAL nRec := 0 LOCAL cAls := oBr:cAlias LOCAL nOld := (cAls)->( RecNo() ) LOCAL cFil, nImg, cOut If nRow > 0 .and. nRow <= Len( oBr:aRowPosRec ) nRec := oBr:aRowPosRec[ nRow ] EndIf If nRec > 0 .and. ( nCol == 2 .or. nCol == 5 .or. nCol == 6 ) (cAls)->( dbGoto( nRec ) ) cFil := AllTrim(Eval(oBr:GetColumn(2):bData)) cOut := AllTrim(Eval(oBr:GetColumn(6):bData)) nImg := Eval(oBr:GetColumn(5):bData) // номер image: If empty(cOut) .or. nImg == 1 // 1 - '+', 2 - '-->' // image стрелка cTxt := 'Конвертировать ' + cFil Else // image плюсик cTxt := 'Открыть ' cTxt += iif( nCol == 6, cOut, cFil ) EndIf (cAls)->( dbGoto( nOld ) ) EndIf RETURN cTxt // Переменная DATA aRowPosRec, ее инициализация и содержимое On_DrawLine у меня // встроено в класс TsBrowse, без назначения :bDrawLine (для упрощения работы // с cToolTip) [/pre2]

Andrey: SergKis пишет: If empty(cOut) .or. nImg == 1 // 1 - '+', 2 - '-->' // image стрелка cTxt := 'Конвертировать ' + cFil Else // image плюсик cTxt := 'Открыть ' cTxt += iif( nCol == 6, cOut, cFil ) EndIf Для 2 и 6 колонки нужно писать "Открыть "+ имя файла / ALLTRIM(то что стоит соответственно в колонках) Для 5 колонки: для "+" ничего не писать, а для красной стрелке писать просто "Конвертировать"

SergKis: SergKis пишет STATIC FUNC On_DrawLine( oBr ) пропустил [pre2] STATIC FUNC On_DrawLine( oBr ) LOCAL nRow := If( oBr:lDrawHeaders, Max( 1, oBr:nRowPos ), oBr:nRowPos ) If oBr:lPainted If nRow == 1 AFill(oBr:aRowPosRec, 0) EndIf oBr:aRowPosRec[ nRow ] := (oBr:cAlias)->( RecNo() ) EndIf RETURN Nil [/pre2]

SergKis: Andrey пишет Для 2 и 6 колонки нужно писать "Открыть "+ имя файла / ALLTRIM(то что стоит соответственно в колонках) Для 5 колонки: для "+" ничего не писать, а для красной стрелке писать просто "Конвертировать" Это все сам, как надо, так делай примерно такая схема (как надо сделаешь сам)

Andrey: SergKis СПАСИБО БОЛЬШОЕ !

Andrey: Всем привет ! А можно ли запретить сдвиг таблицы вправо ? Допустим у меня есть 8 колонок в таблице, они прекрасно отображаются, но при движении стрелкой вправо - таблица двигается и показывается пустая колонка. Не хочу я чтобы эта пустая колонка отображалась у меня в таблице. Как это сделать ? Про параметр знаю : [pre2]oBrw:nAdjColumn := 6 // растянуть колонку до заполнения пустоты в бровсе справа [/pre2]

Dima: Andrey пишет: Про параметр знаю : Типа не юзаешь его ?

Andrey: Dima пишет: Типа не юзаешь его ? Не помогает ! Ширина таблицы на форме больше на 2 пиксела, чем сумма ширины всех колонок. Ставлю/не ставлю этот параметр - все равно присутствует пустая колонка. Как от неё избавиться не знаю.



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