Форум » GUI » TBrowse vs мышь » Ответить

TBrowse vs мышь

alex_II: В TBrowse использую событие ON CHANGE, в котором некая функция выводит в STATUSBAR дополнительную информацию из текущей строки: ... DEFINE TBROWSE Br_omes AT h_tlbar,0 ALIAS (al) WIDTH w_br HEIGHT h_br ; BOLD CELLED ; ON CHANGE Form_oMes.StatusBar.Item(1) := f_corr(1,al) ... Если движение по строкам осуществляется клавиатурой, то все работает нормально, в STATUSBAR'е идет корректное отображение данных функцией f_corr(). Если перемещение производить мышью, указывая строку в TBrowse или использовать колесо прокрутки, то после отработки события ON CHANGE, данные в STATUSBAR'е исчезают, т.е поле очищается. В Browse в аналогичной ситуации все отрабатывает нормально. PS Данные из STATUSBAR'а пропадают даже при навигации клавиатурой, если указатель мыши находится над областью TBrowse!

Ответов - 7

SergKis: alex_II пишет Данные из STATUSBAR'а пропадают :nStatusItem := 0 // отключить вывод в Item Это управление в какой Item StatusBar выводить тексты TsBrowse, смотрите METHOD SetMsg( cText, lDefault ) CLASS TControl

SergKis: PS По умолчанию TsBrowse всегда выводит тексты в 1-ый Item StatusBar. Если вы это используете, то для др. своих текстов исп. Item > 1 или для TsBrowse назначаете другой Item или отключаете вывод, как показано выше

Dima: SergKis При чем тут 1 итем если у него по клаве все работает ?


SergKis: Dima пишет При чем тут 1 итем если у него по клаве все работает ? :DrawSelect() имеет[pre2] If ::lCellBrw cMsg := If( ! Empty( ::AColumns[ ::nCell ]:cMsg ), ::AColumns[ ::nCell ]:cMsg, ::cMsg ) cMsg := If( ValType( cMsg ) == "B", Eval( cMsg, Self, ::nCell ), cMsg ) If ! Empty( cMsg ) ::SetMsg( cMsg ) EndIf EndIf :Edit() имеет безусловное ::SetMsg( oCol:cMsgEdit ) и т.д., т.е. имеем срабатывание вывода текста, по умолчанию, в 1-ый Item StatusBar, в том числе и от действий мыши [/pre2]

SergKis: PS Т.е. хочешь сам полностью управлять отображением в StatusBar, отключай TsBrowse :nStatusItem := 0 и делай свои выводы, очистки в StatusBar как хочешь. Если не ноль, то тсб будет лезть со своим (алгоритмом) вывода, тогда просто расходишься с тсб по разным Item StatusBar :nStatusItem := 2, а свои другие в Item 1, например

alex_II: Спасибо за помощь Чтобы не лезть в TBrowse добавил в статусбар на первую позицию пустышку и вывожу во второй Item. Все работает! DEFINE STATUSBAR FONT 'Times New Roman' SIZE 10 BOLD STATUSITEM '' FLAT STATUSITEM '' WIDTH w_br FLAT STATUSITEM '' WIDTH w_br FLAT END STATUSBAR

SergKis: alex_II пишет Чтобы не лезть в TBrowse добавил в статусбар на первую позицию пустышку В TsBrowse лазить не надо, делаете[pre2] DEFINE TBROWSE oBrw :nStatusItem := 0 // или oBrw:nStatusItem := 0 END TBROWSE [/pre2] отключили вывод из TsBrowse



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