Автор | Сообщение |
Vlad04
|
| постоянный участник
|
Пост N: 420
Зарегистрирован: 13.10.05
|
|
Отправлено: 19.12.13 18:16. Заголовок: TsBrowse в Минигуи (продолжение)
TsBrows определяется в виде строки ПАРМЕТРОВ объекта и их значений К примеру цитата: | 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 |
| Здесь я собрал параметры из разных tBrows Можно или нет и какие парметры заменить выражением ( и каким) ? oBrw2:.... oBrw2:....
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|
Dima
|
| |
Пост N: 5212
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.08.15 21:55. Заголовок: Andrey Сделай проще..
Andrey Сделай проще ))) Напиши , идет загрузка данных в лейбе индикатора а уж после загрузки покажи бровс. Не то ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4448
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.08.15 22:05. Заголовок: Dima пишет: Напиши ..
Dima пишет: цитата: | Напиши , идет загрузка данных в лейбе индикатора а уж после загрузки покажи бровс. Не то ? |
| То что надо. А как сделать то ? Я сейчас на медленном коннекте вижу как прорисовывается вся таблица.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 792
Зарегистрирован: 17.02.12
|
|
Отправлено: 12.08.15 22:44. Заголовок: Andrey пишет:Я сейча..
Andrey пишет: цитата: | Я сейчас на медленном коннекте вижу как прорисовывается вся таблица. |
| Все верно, tbrows ходит (skip-ует) по базе, время обновления skip-буф. мало, он снова заполняется и получаешь то, что видишь цитата: | То что надо. А как сделать то ? |
| Твой же пример WAIT_WINDOW с потоком и без, сделай аналогично, повесь анимацию, отбери в массив или memio и показывай.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4462
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.08.15 14:16. Заголовок: Помогите разобраться..
Помогите разобраться с глюком мышки. Пример MiniGUI\SAMPLES\Advanced\Tsb_config На самом Tsbrowse нажимаем правую кнопку мышки и выбираем "Enable display of deleted records" Клавиша PgDown до последней странице - нумерация строк (1-я колонка) в Tsbrowse - нормальная. Если крутить колёсиком мышки - нумерация строк (1-я колонка) неправильная. Как исправить ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4464
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.08.15 14:52. Заголовок: Собрал в новой верси..
Собрал в новой версии MiniGUI 2.5.1 - глюк тоже есть ! Вот так выглядит на экране: Если листать клавишей PageDown - то глюка нет ! Помогите пожалуйста исправить, юзера будут просто ВОПИТЬ - куда делись договора...
|
|
|
Haz
|
| |
Пост N: 629
Зарегистрирован: 20.02.11
|
|
Отправлено: 24.08.15 18:06. Заголовок: Andrey пишет: Если ..
Andrey пишет: цитата: | Если листать клавишей PageDown - то глюка нет |
| Это не глюк , минигуй тут не причем. Это ошибки алгоритма заложенного в пример. Меняй алгоритм и не переназначай внутренние переменные бровса если не уверен в том как это работает. Нет времени заниматься поиском косяков в чужом коде , вот куски кода которые корректно работают SET DELETED OFF .... INDEX ON Number TAG "ALL" INDEX ON Number TAG "DEL" FOR ( !Deleted() ) .... oBrw:bChange := { || oBrwChange() } .... STATIC FUNCTION oBrwChange() LOCAL cVal := HB_NToS( (oBrw:cAlias)->(OrdKeyNo()) ) + ' / ' + HB_NToS( (oBrw:cAlias)->(OrdKeyCount()) ) Form_0.StatusBar.Item(3) := " RecnO: " + cVal Form_0.oBrw.Setfocus RETURN Nil .... FUNCTION RecnoViewDel(lVal) LOCAL cMsg IF lVal (oBrw:cAlias)->(DbSetOrder("ALL")) cMsg := "Included a display of deleted records !" ELSE (oBrw:cAlias)->(DbSetOrder("DEL")) cMsg := "Offline mode display of deleted records !" ENDIF oBrw:Reset() MsgInfo(cMsg ) Eval( oBrw:bChange ) RETURN Nil
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4466
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.08.15 23:37. Заголовок: Haz Спасибо ! Буду п..
Haz Спасибо ! Буду переделывать.... И еще заметил странность, если подёргать клавишами PageDown, PageUP а потом погонять клавишей стрелка вниз, то TsBrowse вешает программу наглухо.
|
|
|
Haz
|
| |
Пост N: 630
Зарегистрирован: 20.02.11
|
|
Отправлено: 25.08.15 10:38. Заголовок: Andrey пишет: TsBro..
Andrey пишет: цитата: | TsBrowse вешает программу наглухо. |
| Все верно, так и должно быть Перечитай эту ветку, один форумчанин примерно месяц назад. уже указывал тебе на эти грабли в твоем примере.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4467
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.08.15 17:51. Заголовок: Haz пишет: Перечита..
Haz пишет: цитата: | Перечитай эту ветку, один форумчанин примерно месяц назад. уже указывал тебе на эти грабли в твоем примере. |
| Да пока сам на грабли еще раз не наткнёшься, ни фига не запомнишь ! Только не всегда это происходит... Пост N: 586 Haz пишет: цитата: | и более того , в процедуре по ON CHANGE есть вызов Refresh() , что 100% приводит к зависаниюбровса стоит его прогнать стрелками вниз/вверх |
| Пост N: 717 SergKis пишет: цитата: | Мой (твой) пример Refresh(.F.) к зависанию не приводит, но по pgup или up ниже последней и назад - ломается веделенная закраска всей строки с фокусно ячейкой. Как то похитрее надо делать, может быть мтодом DrawLine(xRow) с цветами на пред.стоку и тек., без бутылки сразу не разберешься |
| Так же ломается счетчик записей левой колонки. Можно туда прикрутить в саму БИБЛИОТЕКУ - чтобы это не ломалось ?
|
|
|
Haz
|
| |
Пост N: 631
Зарегистрирован: 20.02.11
|
|
Отправлено: 25.08.15 17:57. Заголовок: в чем проблема ? пок..
в чем проблема ? показывай в первой колонке OrdKeyNo()
|
|
|
Haz
|
| |
Пост N: 632
Зарегистрирован: 20.02.11
|
|
Отправлено: 25.08.15 18:17. Заголовок: Haz пишет: Только н..
Andrey пишет: цитата: | Только не всегда это происходит... |
| Это происходит ВСЕГДА если в ON CHANGE есть Refresh() и бежать по длинной базе не отрывая пальца по стрелки вниз или вверх достаточно долго. Если почитать дальше 717 714 поста то там есть и пост 587 и ответ на него 716 . Читать надо внимательнее
|
|
|
|
Haz
|
| |
Пост N: 633
Зарегистрирован: 20.02.11
|
|
Отправлено: 25.08.15 18:28. Заголовок: Andrey пишет: Так ж..
Andrey пишет: цитата: | Так же ломается счетчик записей левой колонки. |
| в DBFCDX нет логического нумератора строк , кроме как номер ключа при наличии индекса. в TSBrowse ::nAt - тоже не нумератор , он может и отрицательные значения принимать Поэтому как отобразить логический номер - головняк разработчика программы где используется TSBrowse PS nAt совпадает с логическим номером только при бровсе по массиву.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4468
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.08.15 18:40. Заголовок: Понял. Спасибо БОЛЬШ..
Понял. Спасибо БОЛЬШОЕ ! Вопрос по ломке нумерации - это происходит ТОЛЬКО мышкой и клавишей стрелка вниз, когда находишься на последней строке в бровсе. Как то можно отловить этот момент и не давать маркеру/курсору скакнуть вниз ? Тогда и ломаться нумерация не будет. Но может я и не прав...
|
|
|
Dima
|
| |
Пост N: 5242
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.08.15 21:21. Заголовок: Andrey Что бы не флу..
Andrey Что бы не флудить еще пару-тройку страниц , самодостаточный пример. Ни чего не глючит , не виснет и "ездит" как нужно Да простит меня Has Скрытый текст #include "minigui.ch" #include "tsbrowse.ch" MEMVAR oBrw FUNCTION Main() LOCAL cDbf := 'Test.dbf' LOCAL i := 0 REQUEST DBFCDX SET CENTURY ON SET DELETED OFF RDDSETDEFAULT('DBFCDX') if !file(cDbf) DBCreate( cDbf , {{"String", "C", 50 , 0}, {"number", "N", 5, 0} } ) USE (cDbf) Excl New Alias "TEST" FOR i := 1 TO 200 TEST->(DbAppend()) TEST->String := RandStr(50) TEST->Number := Random( 200) IF( i % 3 == 0, TEST->(DbDelete()) , NIL ) END INDEX ON Number TAG "ALL" TO ("TEST") INDEX ON Number TAG "DEL" TO ("TEST") FOR ( !Deleted() ) USE end DEFINE WINDOW Form_0 ; At 0, 0 ; WIDTH 800 ; HEIGHT 450 ; TITLE 'TsBrowse sample' ; ICON 'lupa.ico' ; MAIN ; DEFINE STATUSBAR SIZE 10 BOLD STATUSITEM "" STATUSITEM "Right mouse button - the popup menu TBROWSE" WIDTH 380 STATUSITEM " Recno: 0/0" WIDTH 200 STATUSITEM "Alias: "+ ALIAS() WIDTH 115 DATE END STATUSBAR END WINDOW USE (cDbf) Shared New Alias "TEST" INDEX ("TEST.CDX") TEST->(OrdSetFocus("DEL")) CreateBrowse( "oBrw", 'Form_0', 30, 2, Form_0.Width-20, Form_0.Height-95, 'TEST' ) AEval( oBrw:aColumns, { |oCol| oCol:lEdit := oCol:lFixLite := TRUE } ) oBrw:SetColor( { 6 }, { { |a,b,c| IF( c:nCell == b, { Rgb( 66, 255, 236 ), Rgb( 111, 183, 155 ) } , { Rgb( 220, 220, 220 ), Rgb( 220, 220, 220 ) }) } } ) // фон курсора oBrw:bChange := { || oBrwChange() } oBrw:lNoChangeOrd := .T. oBrw:SetColSize( "String", 600 ) oBrw:SetColSize( "Number", 150 ) oBrw:Display() DEFINE CONTEXT MENU CONTROL oBRW OF FORM_0 MENUITEM "Enable display of deleted records" ACTION { || RecnoViewDel(.T.) } NAME A1 MENUITEM "Disable display of deleted records" ACTION { || RecnoViewDel(.F.) } NAME A2 END MENU CENTER WINDOW Form_0 ACTIVATE WINDOW Form_0 RETURN Nil FUNCTION CreateBrowse( cBrw, cParent, nRow, nCol, nWidth, nHeight, cAlias ) LOCAL i PUBLIC &cBrw DEFINE TBROWSE &cBrw ; AT nRow, nCol ; ALIAS cAlias ; OF &cParent ; WIDTH nWidth ; HEIGHT nHeight ; COLORS { CLR_BLACK, CLR_BLUE } ; FONT "MS Sans Serif" ; SIZE 8 :SetAppendMode( .F. ) :SetDeleteMode( .F. ) :lNoHScroll := .T. :lCellBrw := .F. END TBROWSE LoadFields( cBrw, cParent ) &cBrw:nHeightCell += 6 &cBrw:nHeightHead += 14 &cBrw:nWheelLines := 1 &cBrw:SetColor( { 3 }, { RGB( 255, 255, 255 )}) &cBrw:SetColor( { 4 }, { { || { RGB( 43, 149, 168 ), RGB( 0, 54, 94 )}}}) &cBrw:SetColor( { 12 }, { { || { RGB( 128, 128, 128 ), RGB( 250, 250, 250 )}}}) &cBrw:SetColor( { 2 }, { { || IF( !(oBrw:cAlias)->(Deleted()), RGB( 230, 240, 255 ), RGB( 130, 140, 155 )) }}) &cBrw:SetColor( { 1 }, { { || IF( !(oBrw:cAlias)->(Deleted()), RGB( 0, 0, 0 ), RGB( 130, 40, 55 )) }}) &cBrw:SetColor( { 5 }, { { || RGB( 0, 0, 255 )}}) &cBrw:SetColor( { 11 }, { { || RGB( 0, 0, 0 )}}) &cBrw:nClrLine := COLOR_GRID &cBrw:ResetVScroll() RETURN Nil FUNCTION RandStr( nLen ) LOCAL cSet := "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM" LOCAL cStr := "" LOCAL i := 0 FOR i := 1 TO nLen cStr += SubStr( cSet, Random( 52 ), 1 ) NEXT RETURN cStr STATIC FUNCTION oBrwChange() LOCAL cVal := HB_NToS( (oBrw:cAlias)->(OrdKeyNo()) ) + ' / ' + HB_NToS( (oBrw:cAlias)->(OrdKeyCount()) ) Form_0.StatusBar.Item(3) := " RecnO: " + cVal Form_0.oBrw.Setfocus RETURN Nil FUNCTION RecnoViewDel(lVal) LOCAL cMsg IF lVal TEST->(DbSetOrder("ALL")) cMsg := "Included a display of deleted records !" ELSE TEST->(DbSetOrder("DEL")) cMsg := "Offline mode display of deleted records !" ENDIF oBrw:Reset() MsgInfo(cMsg ) Eval( oBrw:bChange ) RETURN Nil
| PS Пример не мой. https://www.youtube.com/watch?v=p0-TYMZ4iRE
|
|
|
Haz
|
| |
Пост N: 634
Зарегистрирован: 20.02.11
|
|
Отправлено: 25.08.15 22:06. Заголовок: Dima пишет: Да прос..
Dima пишет: Слил военную тайну тока так Теперь все узнают что TsBrowse работает нормально
|
|
|
Dima
|
| |
Пост N: 5243
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.08.15 22:19. Заголовок: Haz пишет: Слил вое..
Haz пишет: цитата: | Слил военную тайну тока так |
| Чисто на благо форума (темы). Все , к стенке меня... PS Могу убрать если надо
|
|
|
Haz
|
| |
Пост N: 635
Зарегистрирован: 20.02.11
|
|
Отправлено: 25.08.15 22:23. Заголовок: Dima пишет: Все , ..
Dima пишет: цитата: | Все , к стенке меня... ))) |
| Ага, через оформление примера для минигуя жаль для примера этого маловато. В следующий раз - по всей строгости
|
|
|
Dima
|
| |
Пост N: 5244
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.08.15 22:34. Заголовок: Haz пишет: жаль для..
Haz пишет: цитата: | жаль для примера этого маловато. |
| Пример в порядке что бы исправить другой пример. PS По ходу можно назначить тебя админом что бы иногда разгребать.......ну ты понял что. Если готов скажи
|
|
|
Haz
|
| |
Пост N: 636
Зарегистрирован: 20.02.11
|
|
Отправлено: 25.08.15 22:35. Заголовок: Dima пишет: разгреб..
Dima пишет: цитата: | разгребать.......ну ты понял что. |
|
|
|
|
Dima
|
| |
Пост N: 5245
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.08.15 22:44. Заголовок: Haz ))))))..
Haz
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|