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

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

Haz: Проще повесить на ON CHANGE {|| nRetCode := FIELDGET(FIELDNUM("KCITY")) }. Это событие отрабатывает при перемещении по бровсу вверх низ и переменная всегда будет содержать значение из текущей строки ( а ведь ее нужно сделать текущей что б что то выбрать ). При отказе от выбора по ESC или кнопке CANCEL - обнулять переменную перед закрытием окна. PS/ уезжаю на несколько дней - м.б. не подскажу в это время - не знаю как с инетом

Andrey: Haz пишет: Проще повесить на ON CHANGE {|| nRetCode := FIELDGET(FIELDNUM("KCITY")) }. Вот это мне и нужно было ! Спасибо !

Andrey: Имею в задаче 2 почти одинаковых TBROWSE, один со STATUSBAR, второй с подвалом. У обоих навешаны функции обработки: ON GOTFOCUS MyChangeBrowse(cAlias,"oBrw_5") ; ON CHANGE (MyChangeBrowse(cAlias,"oBrw_5"),CorrectionFirstLast("oBrw_5")) Функция для 1-го TBROWSE: STATIC FUNCTION MyChangeBrowse(cAlias) LOCAL nI, cVal nI := INDEXORD() IF nI == 0 cVal := NTOC(Recno()) + '/' + NTOC(RecCount()) ELSE cVal := NTOC(OrdKeyNo()) + '/' + NTOC(OrdKeyCount()) ENDIF Form_Spr.StatusBar.Item(2) := " Запись: " + cVal RETURN Nil Функция для 2-го TBROWSE: STATIC FUNCTION MyChangeBrowse(cAlias) LOCAL nI, cVal nI := INDEXORD() IF nI == 0 cVal := NTOC(Recno()) + '/' + NTOC(RecCount()) ELSE cVal := NTOC(OrdKeyNo()) + '/' + NTOC(OrdKeyCount()) ENDIF oBrw_5:aColumns[3]:cFooting := "Запись: "+cVal+SPACE(10) RETURN Nil На 1-ом TBROWSE нумерация отлично меняется при перемещении МАРКЕРА(курсора). На 2-ом TBROWSE при перемещении МАРКЕРА(курсора) клавишами или мышкой в подвале нумерация записей НЕ МЕНЯЕТСЯ !!! Как исправить ?


Haz: Andrey пишет: Как исправить ? менять руками через присвоение :cFooting := 'новое значение'

Andrey: Haz пишет: менять руками через присвоение :cFooting := 'новое значение' Не понял...

Haz: Andrey пишет: Не понял.. это я не понял - не посмотрел что уже есть присвоение после него попробуй oBrw_5:DrawFooters()

Andrey: Haz пишет: попробуй oBrw_5:DrawFooters() Ура ! Заработало ! Спасибо БОЛЬШОЕ !!!

Andrey: Как сделать редактирование ячеек таблицы в TBROWSE, если нужно это сделать в отдельной функции ? Т.е. при создании TBROWSE я делаю запрет на редактировании ячеек - oBrw_5:aColumns[nI]:lEdit := .F. и назначаю свою функцию обработки клавиш: oBrw_5:bKeyDown := { | nKey , nFalgs| MyKeyActionDim(nKey,"oBrw_5", cParent) } А уже в этой функции хочу сделать обработку по номерам колонок. Допустит 1 колонку нельзя редактировать, вторую можно и т.д. Т.е. как сделать GET поля применительно к МиниГуи - TBROWSE ?

Haz: Andrey пишет: если нужно это сделать в отдельной функции в примерах tsbTest.prg есть Brw_4:aColumns[ 4 ]:bExtEdit := { |nAge,oBrw| fExternal( nAge, oBrw ) } см как там сделано

Andrey: Haz пишет: см как там сделано Спасибо БОЛЬШОЕ !!!

Andrey: Привет всем. Вот опять непонятка. Сделал контекстное меню для TBROWSE и после выбора из него это контекстное меню остается на экране. ТОЛЬКО после второго клика на этом меню, оно уходит. При использовании другого меню с MsgInfo() - нормально уходит, сразу после первого нажатия. Что в вызываемой функции нужно добавить ?

Haz: Andrey пишет: ТОЛЬКО после второго клика на этом меню, оно уходит. есть такой косяк, не разбираясь добавил в конец нужного действа информационное сообщение типа MsgBox('Включен показ удаленных записей')

a_sidorov: Есть проблема переключения вида курсора c длинного (маркер на всю таблицу) на короткий по размеру ячейки и обратно. Для выбора из справочника делаем при инициализации TBROWSE справочника курсор на всю таблицу oBrw:lCellBrw := .f. Если нужно редактировать справочник, переключаем на короткий курсор по размеру ячейки: oBrw:lCellBrw := .t. Курсор переключается нормально. Для возврата назад после редактирования делаем: oBrw:lCellBrw := .f. oBrw:lLockFreeze:=.f. oBrw:lEditable:=.f. Курсор никак не хочет переключаться и остается по размером ячейки редактирования. Переинициализировать TBROWSE не очень хочется. Проблему решить пока не смог, может быть есть идеи или решение проблемы?

Andrey: a_sidorov пишет: Курсор никак не хочет переключаться и остается по размером ячейки редактирования. Я тоже бы хотел узнать как в TBROWSE нужно это делать ?

Haz: a_sidorov пишет: Курсор никак не хочет попробуйте примерно так oBrw:lCellBrw := !oBrw:lCellBrw oBrw:lEditable := oBrw:lCellBrw AEval( oBrw:aColumns, { |oColumn| oColumn:lNoLite := oBrw:lCellBrw, oColumn:lFixLite := !oBrw:lCellBrw } ) oBrw:Refresh(.F.)

a_sidorov: Haz пишет: попробуйте примерно так Большое спасибо, работает!!! Нужно добавить, что перед переходом для редактирования (короткий курсор по ячейке) нужно поставить AEval( oBrw:aColumns, { |oColumn| oColumn:lFixLite := .f. } ) Иначе не работает второй переход на редактирование

Andrey: Всем привет. Пытаюсь изменить - Цвет линий между ячейками: // для всех колонок исполнить кодовый блок - поставиь цвета: ЧЕРНЫЙ-буквы ; // БЕЛЫЙ-ячейки ; // КРАСНЫЙ-фона курсора ; // ЖЕЛТЫЙ-букв курсора ; // ЖЕЛТЫЙ-фона редактируемого поля ; // СИНИЙ-букв редактируемого поля ; // CYAN-линий между ячейками ! AEval( &(cBrw):aColumns, { |oColumn| oColumn:nClrFore := Rgb( 0, 0, 0) ,; oColumn:nClrBack := Rgb(255,255,255) ,; oColumn:nClrFocuBack := RED ,; oColumn:nClrFocuFore := Rgb(255,255,0) ,; oColumn:nClrEditBack := Rgb(255,255, 0) ,; oColumn:nClrEditFore := Rgb( 0, 0,255) } ) // ------- Не работает !!! - oColumn:nClrLine := Rgb( 0,176,240) } ) Как это можно сделать ? Почему в методе SaveColor() и RestColor() CLASS TSColumn.prg не используется ::aColorsBack[ 15 ] := ? ::aColorsBack[ 16 ] := ? ::aColorsBack[ 17 ] := ? Как мне запомнить текущий Цвет линий между ячейками на время, а потом восстановить его ?

Haz: Andrey пишет: // ------- Не работает !!! - oColumn:nClrLine := Rgb( 0,176,240) } ) через oBrw:Setcolor( {CLR_LINE}, { Rgb( 0,176,240)} ) попробуй PS не проверял , но раз в методе есть - должно работать

Andrey: Haz пишет: через oBrw:Setcolor( {CLR_LINE}, { Rgb( 0,176,240)} ) попробуй PS не проверял , но раз в методе есть - должно работать Это работает ! Спасибо. Как мне запомнить текущий Цвет линий между ячейками на время, а потом восстановить его ?

Andrey: aSave_CLR_LINE := &cBrw:nClrLine //запомнить цвет линий между ячейками ............ &cBrw:SetColor( { CLR_LINE }, {aSave_CLR_LINE} ) // восстановить цвет линий между ячейками таблицы



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