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

Andrey: Спасибо, буду разбираться. Еще вопрос, в программе делаю: oBrwClr:nAdjColumn := 3 // растянуть колонку 3 до заполнения пустоты в бровсе справа oBrw_2:nAdjColumn := 2 // растянуть колонку 2 до заполнения пустоты в бровсе справа Вот результат: Но это только при таких параметрах ХР: Как бороться с такой ситуацией ? Юзеров же не заставишь переключаться на обычный шрифт...

Andrey: Т.е. я понял что никто не знает как бороться с такой ситуацией. Есть ли для объекта TBROWSE такое же свойство как Enabled Property: <WindowName>.<ControlName>.Enabled [<nItemNumber>] := lEnabledState ? Т.е. запретить редактирование, да и переход тоже на TBROWSE. Или аналогичное свойство ?

Andrey: Нашел метод. Метод Enabled() класса TSBrowse Смотреть здесь (совсем забыл про этот сайт) - http://gustow.narod.ru/tsb_help/50.htm


Andrey: Haz пишет: Она не может не работать , bPostEdit автоматически выполняется после редактирования Проверь вызов , oBrwClr:aColumns[4]:bPostEdit := { || MsgDebug('ДО'), ViewColorTbrws(oBrwClr,4,aVar), MsgDebug('ПОСЛЕ') } Скорее в логике проблема. Посмотрел. Ничего не понял. Пример у тебя есть. Я делаю последовательно в коде: // редактирование 4-колонки и перерисовка цвета после его изменения oBrwClr:aColumns[4]:bPrevEdit := { || ColorPicker(oBrwClr), oBrwClr:Refresh(FALSE), FALSE } oBrwClr:aColumns[4]:bPostEdit := { || MsgDebug("DO"),ViewColorTbrws(oBrwClr,4,aVar),MsgDebug("Posle") } :bPrevEdit - отработало нормально, а :bPostEdit вообще не отрабатывает ! Т.е. я хотел бы чтобы после изменения цвета выполнялась функция перерисовки цвета по таблице. Хотя можно эту функцию засунуит и после oBrwClr:Refresh(FALSE). За что отвечает bPostEdit ?

Haz: Andrey пишет: а :bPostEdit вообще не отрабатывает ! так самого Edit нет же т.к. PrevEdit туда и не пускает возвращая FALSE в этом и есть проблема в логике - выполнение назначается на условие - которое не наступит Andrey пишет: Хотя можно эту функцию засунуит и после oBrwClr:Refresh(FALSE). туда и нужно засунуть Andrey пишет: За что отвечает bPostEdit ? TSCOLUMN.PRG DATA bPrevEdit // Action to be performed before editing cell DATA bPostEdit // Action to be performed after editing cell

Andrey: Haz пишет: так самого Edit нет же т.к. PrevEdit туда и не пускает возвращая FALSE Понял, считал что по другому. Спасибо БОЛЬШОЕ за разъяснение !

Andrey: А как насчет вопроса про растягивание колонок при крупном шрифте (120) ? В программе делаю: oBrwClr:nAdjColumn := 3 // растянуть колонку 3 до заполнения пустоты в бровсе справа oBrw_2:nAdjColumn := 2 // растянуть колонку 2 до заполнения пустоты в бровсе справа

Haz: Andrey пишет: крупном шрифте ( не знаю, не пользую

SergKis: Andrey пишет:А как насчет вопроса про растягивание колонок можно определить из видимых колонок, колонку с max width и для нее устанавливать ширину на +разницу от width окна tsbrowse и суммы других видимых width колонок, используя методы IsColVisible/IsColVis2 (в чем разница не знаю) и SetColSize

Andrey: Andrey пишет: А как насчет вопроса про растягивание колонок при крупном шрифте (120) ? Поборол эту ситуацию ! Сделал свою функцию под это дело и применяю в различных случаях после назначения растяжки: oBrwClr:nAdjColumn := 3 // растянуть колонку 3 до заполнения пустоты в бровсе справа // Если включен БОЛЬШОЙ ШРИФТ, то добавить 170 пикселей для oBrwClr:nAdjColumn MyAdjColumn( oBrwClr, 170 ) oBrw_2:nAdjColumn := 2 // растянуть колонку 2 до заполнения пустоты в бровсе справа // Если включен БОЛЬШОЙ ШРИФТ, то добавить 230 пикселей для oBrw_2:nAdjColumn MyAdjColumn( oBrw_2, 230 ) ////////////////////////////////////////////////////////////////// STATIC PROCEDURE MyAdjColumn( oBrw, nAdd ) LOCAL nWidth, nCell := oBrw:nAdjColumn // включена ли растяжка на колонку IF LargeFonts() .AND. nCell > 0 nWidth := oBrw:GetColSizes()[nCell] oBrw:SetColSize( nCell, nWidth + nAdd ) // новая ширина колонкм ENDIF RETURN

Andrey: Опять облом с этим TSBrowse.... Взял рабочий пример, переделал на новую новую базу и вылет... Даже и не знаю где искать ошибку ? Хотя что-то может и сам намудрил, но в качестве информативности с ошибками TSBrowse заметно уступает терминалке. Вот такая ошибка: Строка ошибки: oBrw:Refresh(.T.) Ставлю перед ошибкой MsgDebug(oBrw:nLen) выдает 0 ! До этого такая ошибка была с наличием БИТОГО индекса, сейчас всё правильно: индекс удаляю, потом заново строю. И где искать ошибку... Как бы сделать проверку перед выводом TSBrowse что все в порядке: поля, индексы, фильтр и т.д.

Andrey: Andrey пишет: И где искать ошибку... Нашёл ошибку. Поставил свою проверку перед oBrw:Refresh(.T.) IF oBrw:nLen == 0 // для отладки, чтобы искать ошибки MsgDebug("Условие отбора TBROWSE == 0 !","DbSetFilter=",DBFILTER()) ELSE //MsgDebug("Условие отбора TBROWSE == ", oBrw:nLen ,"DbSetFilter=",DBFILTER()) ENDIF oBrw:Refresh(.T.)

Andrey: Подскажите пожалуйста, какой параметр отвечает за фон при очистке ?

Andrey: Очень раздражает в новом TBrowse мелькание при перерисовке цвета. В Клипере, да и Харборе были операторы: dispbegin() ..... dispend() Есть ли здесь такие же аналоги ?

Andrey: Как получить координаты TBROWSE в окне для отдельной функции ? PUBLIC oBrw DEFINE TBROWSE oBrw ; AT 20,20 ; WIDTH GetClientWidth(hWnd)-40 ; HEIGHT GetClientHeight(hWnd)-10 ; ..... /////////////////////////////// Function DopWin() MsgDebug( oBrw:nLeft , oBrw:nTop ) Выдает ошибку: Error BASE/1004 Метод не экспортирован: NLEFT Called from NLEFT(0)

Haz: Andrey пишет: Как получить координаты TBROWSE в все правильно , ни чё не перепутал ? Andrey пишет: Function DopWin() MsgDebug( oBrw:nLeft , oBrw:nTop ) можно явно MEMVAR oBrw MsgDebug( oBrw:nLeft , oBrw:nTop ) или через GetProperty( "Form", "oBrw", "nTop" )

Andrey: Haz пишет: все правильно , ни чё не перепутал ? Перепутал. Оказывается, пытаюсь получить координаты еще НЕ НАРИСОВАННОГО (не объявленного) TBROWSE. Моя ошибка. Спасибо !

Dima: Andrey пишет: ( Отправлено: Сегодня 02:00) Перепутал. Ну так в 2 часа ночи спать надо ;)

Andrey: Dima пишет: Ну так в 2 часа ночи спать надо ;) Покой нам только сниться... Все переводом на МиниГуи занимаюсь ! Днем не дают.

Andrey: Вот опять фигня получается. Делаю по разному, один TBROWSE (простой) цвет фона рисует, другой основной нет. Белизна достает, пока меня, но чую если заказчику отдам, то будут меня заказчики просто и сложно доставать. Народ, подскажите как убрать белизну (цвет фона TBROWSE) если таблица не заполнена или записи фильтруются ? Вот как на картинке: Блин http://shot.qip.ru не доступен ....



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