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

Haz: Andrey пишет: Стрес-тест для TBROWSA. Тест конечно стресс но не для бровса,, а для автора т.к. надо немного менять код 1. Переписать так чтобы не было везде понатыкано MyFocusBrw() , как минимум в ON CHANGE - это место крайне чувствительно ко всяким лишним действиям 2. Когда ставиться Scope - бровс об это ничего не знает , ему не сказали что логическая длина базы съехала. Отсюда и косяк на скролере ( пример как сказать есть в TSBFilter , что фильтр что скоп итог один - бровсу кормят не то количество на которое он инициализировался ) - нужен :Reset() 3. Нагенерил 100 000 на локальном компе тормозов нет PS. Сергей верно сказал - мемо поля это помойка в которой тяжело искать , и уменьшай объем передаваемых данных в буфер записи при Skip. Узкое место скорость передачи PPS Вспомнил позднее - по поводу мемо полей мы уже говорили и ты что то делал подобное - мемо показывать не в бровсе а в отдельной области окна , и только для текущей записи . Читать мемо можно c задержкой , чтоб не тормозил бровс при навигации . Я у себя тупо через таймер и массив комманд реализовал , по ON CHANGE в массив комманд пишется N записи по которой перечитать мемо и обнуляется счетчик задержки примерно 500 мс. При контроле этого счетчика , если он достиг 500 читаем последнее значение из массива и по нему мемо, при этом обнуляя массив. Т.е мемо подчитывается через пол секунды после того как пользователь перестал давить на кнопки управления

SergKis: Dima пишет: ништяки типа RDDI_BUFKEYNO , RDDI_BUFKEYCOUNT это для Leto только ? Ты совершенно прав, цитата и ништяки из letodb, а cdx и без них тянет.

Dima: SergKis пишет: а cdx и без них тянет Да меня больше ADSCDX интересовал.


SergKis: Haz пишет:и уменьшай объем передаваемых данных в буфер записи при Skip. Узкое место скорость передачи Для browse лучше skip буфер делать в кол-во строк browse, иначе идет набор рывками (особенно видно в модемном соединении), для TSB, думаю тоже, не пробовал с letodb (пока с cdx вопросы)

SergKis: Dima пишет:Да меня больше ADSCDX интересовал. Думаю, надо править сырец TSB, ввести переменную и заносить значение OrdKeyCount() при создании TSB, а в блоках кода по умолчанию (и своих) использовать ее, когда надо, самому обновлять значение переменной.

Andrey: Haz пишет: Тест конечно стресс но не для бровса,, а для автора т.к. надо немного менять код Для этого и вас всех просил посмотреть ! Haz пишет: 3. Нагенерил 100 000 на локальном компе тормозов нет Нужно по сетке хотя бы проверить.... И побольше базу ....

Dima: Haz пишет: Когда ставиться Scope - бровс об это ничего не знает А вот с этого места можно поподробнее как для домохозяек ? Если я работаю по сети и в базе 100 записей. Завел новую запись 101 а по сети в это время добавили запись 102 , я ее не увижу ? В консоли с этим нет проблем. Молчу уже про Scope , Фильтра.........

Haz: Dima пишет: В консоли с этим нет проблем. думаю и в консоли при сформированном бровсе по полной базе , а какая то прцудура выставит фильтр , то бровсу как минимум :RefreshAll() потребуется . Проблемы такие же как и в консоли , к примеру если коллега отредактирует запись которая у меня висит перед глазами в бровсе , я не увижу изменений пока не обновлю запись

Haz: SergKis пишет: Для browse лучше skip буфер делать в кол-во строк browse, Спасибо, проверю !

Dima: Haz пишет: то бровсу как минимум :RefreshAll() потребуется . Конечно я его делаю и в консоли , когда это требует логика проги. Все понял !

SergKis: Смотрю проблема cValToChar(xValue) для чисел так и не решилась с давних времен http://clipper.borda.ru/?1-20-0-00000485-000-0-0-1150783273 Пост N: 191 [pre2] FUNCTION cValToChar( xValue ) LOCAL cType := ValType( xValue ) LOCAL cValue := "", nDecimals if cType == 'N' if xValue == int(xValue) nDecimals := 0 else nDecimals := Set( _SET_DECIMALS ) endif endif DO CASE CASE cType $ "CM"; cValue := xValue CASE cType == "N" ; cValue := LTrim( Str( xValue, 20, nDecimals ) ) ... на мой взгляд применение (убрав строки определения nDecimals) CASE cType == "N" ; cValue := hb_ntos( xValue) работают правильнее для разных значений дробной части числа [/pre2]

gfilatov2002: SergKis пишет: проблема cValToChar(xValue) для чисел так и не решилась Благодарю за напоминание! Поправил для следующей сборки

SergKis: Подскажите (не вижу), есть ли в MiniGui готовая функция для получения объекта TSBrowse по имени контрола и формы. Типа [pre2] FUNCTION _GetObjTSBrowse( ControlName, ParentForm, nIndex) LOCAL oBrw LOCAL i := iif(pCount() > 2, nIndex, GetControlIndex(ControlName,ParentForm)) IF i > 0; oBrw:= _HMG_aControlIds [ i ] ENDIF RETURN oBrw [/pre2]

gfilatov2002: SergKis пишет: есть ли в MiniGui готовая функция для получения объекта TSBrowse Нет такой функции

SergKis: gfilatov2002 пишет:Нет такой функции Выпадает TsBrowse из общей организации MiniGui. Нет тогда и min псевдообъекта oTSB := wForma.Magazin.Object

Andrey: Всем привет. Тестирую TBROWSE через сервер на медленном соединение... Не очень приятно видеть как TBROWSE медленно перерисовывает окно и саму таблицу. В терминалке была команда DispBegin() и DispEnd(). Есть ли такая команда для МиниГуи TBROWSE ?

Dima: Andrey пишет: Тестирую TBROWSE через сервер на медленном соединение... Тут тема про TSBROWSE... ЗЫ А по вопросу , коли медленный коннект повесь какой то индикатор или типа того...

Andrey: Dima пишет: Тут тема про TSBROWSE... Как читаю, так и написал: DEFINE TBROWSE oBrw3 ; AT 160,2 ; WIDTH nWinWidth-2*2 ; HEIGHT nWinHeight - 160*2 ; ON CHANGE { || ChangeBrowse("oBrw3") } ; ON GOTFOCUS ChangeBrowse("oBrw3") ; BACKCOLOR aBackColor ; CELL и т.д.

Dima: Andrey Думаешь DispBegin() и DispEnd() ......аналоги...помогут ? Что то сомневаюсь. PS Есть там BeginPaint() и EndPaint()

Andrey: Dima пишет: А по вопросу , коли медленный коннект повесь какой то индикатор или типа того... Во первых не знаю как определить - медленный коннект или нет ? Во вторых - видно как TSBROWSE строит по ячейкам таблицу - визуально, медленно и не спеша. А при нажатии на стрелки- вверх/вниз видно как перерисовывается маркер/курсор. Для терминального TBROWSE были команды DispBegin() и DispEnd(), т.е. саму перерисовку пользователь не видел. Это классные команды ! Вот и хотелось бы узнать как провернуть такой же финт для TSBROWSE ?



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