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

Dima: SergKis пишет: Окна с тсб без заголовков и всего, так можно пробнуть, отпишись, что выйдет. конечно

ММК: Dima пишет: Такое впечатление что где то утечка памяти. Да, такое впечатление. Под FW с TsBrows ом у меня такие проблемы были. Отследи утечку, потом можно будет пободаться. Например убрать все фонты ....

Dima: ММК в Xбровсе FW такого нет ?

ММК: Dima пишет: в Xбровсе FW такого нет ? Нет. Xбровс это уже другой уровень, другие возможности.

Dima: ММК То есть ни чего в нем само не ломается если сам ошибок не сделал , так ?

Dima: SergKis Значит сделал я в отдельном окне. Одно окно STANDART большое на весь экран , под главный бровс внутри этого окна сделал окно WINDOWTYPE PANEL и в нем поселил главный бровс. Поездил и глюки повторились (не сразу) . Печаль......

SergKis: Dima А если не панель (там вроде не все ок), а child на каждый тсб, а сверху standart ?

Dima: SergKis Да что то я сразу не допер , так как смутил первый вылет когда я просто внутри окна определил другое окно и когда запустил , выпала месага что внутри окна можно создать только окно типа Panel Я пока что делаю чистый эксперимент , езжу только клавишами......о снова все сломалось при чем в обоих бровсах сразу. Хрен знает что делать.......а клиент уже лютует ЗЫ Чем больше ездим по бровсу , не важно как , мышка или клава , тем он быстрее дурнеет и дурнеет...... Может ему какую оздоравливающую процедуру делать по таймеру ? Вопрос в том какую... Говорю о двух бровсах в одном окне. Когда один то такого не происходит , мне не удалось это сделать.

Andrey: Dima пишет: Хрен знает что делать.......а клиент уже лютует Сочувствую... Аналогично бывает... Я только один бровс в окне использую. SergKis пишет: А если не панель (там вроде не все ок), а child на каждый тсб, а сверху standart ? Вот это интересное решение, но столько проблем начинается при перетаскивании окна. Если каждое окно - само за себя то это классное решение.

Dima: Dima пишет: Может ему какую оздоравливающую процедуру делать по таймеру ? Сунул пока что в bchange бровса doevents() , буду тестить......

SergKis: Dima пишет Может ему какую оздоравливающую процедуру делать Я тебе ее предлагал, стрелкой вниз держим, через ~50 строк отжимаем и жмем PgDn, снова стрелкой вниз держим, через ~50 строк отжимаем и жмем PgDn, ... потом стрелкой вверх тоже самое, если не рушится, то процедуру можно делать (у меня есть такое), если нет, то ... хз.

SergKis: Dima пишет Хрен знает что делать.......а клиент уже лютует Замени левый тсб (с первой картинки) browse, там только 2-х строчный заголовок -> сделай в строку для browse, места хватит. должно работать, есть разница, конено, но не смертельная, а выиграть аремя можно.

Dima: SergKis пишет: Я тебе ее предлагал, стрелкой вниз держим, через ~50 строк отжимаем и жмем PgDn Как же я на глазок определю что отмотал 50 строк руками ? :) Вообще процедура не понятна.........отмотали 50 строк вниз и зачем то нажали PgDn ....он еще отмотает страницу , как то не логично. И потом почему на твой взгляд такой подход должен решить проблему ? Что то я не до конца усекаю

SergKis: Andrey пишет но столько проблем начинается при перетаскивании окна. Совсем проблемы нет менять координаты row,col child окон при перетаскивании standart окна

SergKis: Dima пишет И потом почему на твой взгляд такой подход должен решить проблему ? Что то я не до конца усекаю У себя я именно так нащупал оздоравливающую процедуру и встроил ее в либу - пока работает. Стрелка .. работает типа скрол экрана, а PgDn прорисовывает весь лист (окно) тсб, в этом разница. ~50-100 строк я нащупал пробуя, в либу поставил 100, т.е. крутим колесико или жмем стрелку ..., через 100 строк проскакивает отжатие стрелки и PgDn или PgUp

Dima: SergKis Похоже на шаманство и танец с бубном Если не жалко , сложи на фтп + как ее правильно применить. Спасибо. PS С 7 утра пытаюсь решить эту проблему и ни как..........

SergKis: Dima пишет Похоже на шаманство и танец с бубном Так я и плясал вокруг этого не один день Просто понять поможет или нет (время на разбирательсво не тратить) жмешь чуть чуть стрелку вниз, отпускаешь, жмешь PgDn один раз и снова стрелку вниз чуть чуть и т.д. Еще пробни нажатия PgDn (с отпусканием или зажатый на срок) ломают тсб ? тексты тут положу, найду что менял.

Dima: SergKis пишет: Так я и плясал вокруг этого не один день Смотри сам , не хочешь , не выкладывай , я пойму Буду тогда сам ковыряться не один день

ММК: Dima пишет: То есть ни чего в нем само не ломается если сам ошибок не сделал , так Так нет. У меня есть пару мест , где на окне пара бровсов-жалоб не поступало. Правда не пробовал 15 минут крутить колесико :) SergKis пишет: Стрелка .. работает типа скрол экрана, а PgDn прорисовывает весь лист (окно) тсб, в этом разница. Уже не помню, поэтому могу ошибаться :) Делал что-то типа oBr:upstable() oBr:Setfocus() или oBr:upstable() oBr:Refresh(.T.) Иногда помогало :)

SergKis: Тут изменения [pre2] CLASS TSBrowse FROM TControl ... DATA nKeyDownOld AS NUMERIC INIT 0 // BK 11.08.2015 DATA nKeyDownCnt AS NUMERIC INIT 0 // BK ... METHOD HandleEvent( nMsg, nWParam, nLParam ) CLASS TSBrowse ... ElseIf nMsg == WM_KEYDOWN return ::KeyDown( nWParam, nLParam ) ElseIf nMsg == WM_KEYUP ::nKeyDownOld := 0 // BK 11.08.2015 ::nKeyDownCnt := 0 // BK Return ::KeyUp( nWParam, nLParam ) Elseif nMsg == WM_HSCROLL ... METHOD KeyDown( nKey, nFlags ) CLASS TSBrowse ... Case nKey == VK_UP ::GoUp() If ::nRowPos == 1 // BK 11.08.2015 If ::nKeyDownOld == nKey ::nKeyDownCnt += 1 EndIf If ::nKeyDownCnt >= ( ::nRowCount() ) PostMessage(::hWnd, WM_KEYUP , VK_UP , 0) PostMessage(::hWnd, WM_KEYDOWN, VK_PRIOR, 0) EndIf EndIf ::nKeyDownOld := nKey // BK 11.08.2015 Case nKey == VK_DOWN ::GoDown() If ::nRowPos == ::nRowCount() // BK 11.08.2015 If ::nKeyDownOld == nKey ::nKeyDownCnt += 1 EndIf If ::nKeyDownCnt >= ( ::nRowCount() ) PostMessage(::hWnd, WM_KEYUP , VK_DOWN, 0) PostMessage(::hWnd, WM_KEYDOWN, VK_NEXT, 0) EndIf EndIf ::nKeyDownOld := nKey // BK 11.08.2015 Case nKey == VK_LEFT ::GoLeft() Case nKey == VK_RIGHT ::GoRight() ... METHOD KeyUp( nKey, nFlags ) CLASS TSBrowse ::nKeyDownOld := 0 // BK 11.08.2015 ::nKeyDownCnt := 0 // BK If lNoAppend != Nil ... [/pre2]



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