Автор | Сообщение |
|
| |
Пост N: 150
Зарегистрирован: 12.07.06
|
|
Отправлено: 22.04.20 08:04. Заголовок: TBrowse vs мышь
В 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
[только новые]
|
|
|
| постоянный участник
|
Пост N: 3133
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.04.20 10:39. Заголовок: alex_II пишет Данные..
alex_II пишет цитата: | Данные из STATUSBAR'а пропадают |
| :nStatusItem := 0 // отключить вывод в Item Это управление в какой Item StatusBar выводить тексты TsBrowse, смотрите METHOD SetMsg( cText, lDefault ) CLASS TControl
|
|
|
|
| постоянный участник
|
Пост N: 3134
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.04.20 10:46. Заголовок: PS По умолчанию TsBr..
PS По умолчанию TsBrowse всегда выводит тексты в 1-ый Item StatusBar. Если вы это используете, то для др. своих текстов исп. Item > 1 или для TsBrowse назначаете другой Item или отключаете вывод, как показано выше
|
|
|
|
| |
Пост N: 7182
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.04.20 11:32. Заголовок: SergKis При чем тут..
SergKis При чем тут 1 итем если у него по клаве все работает ?
|
|
|
|
| постоянный участник
|
Пост N: 3135
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.04.20 15:44. Заголовок: Dima пишет При чем т..
Dima пишет цитата: | При чем тут 1 итем если у него по клаве все работает ? |
| :DrawSelect() имеет 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, в том числе и от действий мыши
|
|
|
|
| постоянный участник
|
Пост N: 3136
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.04.20 15:50. Заголовок: PS Т.е. хочешь сам п..
PS Т.е. хочешь сам полностью управлять отображением в StatusBar, отключай TsBrowse :nStatusItem := 0 и делай свои выводы, очистки в StatusBar как хочешь. Если не ноль, то тсб будет лезть со своим (алгоритмом) вывода, тогда просто расходишься с тсб по разным Item StatusBar :nStatusItem := 2, а свои другие в Item 1, например
|
|
|
|
| |
Пост N: 151
Зарегистрирован: 12.07.06
|
|
Отправлено: 22.04.20 18:25. Заголовок: Спасибо за помощь :s..
Спасибо за помощь Чтобы не лезть в 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
|
|
|
|
| постоянный участник
|
Пост N: 3137
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.04.20 19:49. Заголовок: alex_II пишет Чтобы ..
alex_II пишет цитата: | Чтобы не лезть в TBrowse добавил в статусбар на первую позицию пустышку |
| В TsBrowse лазить не надо, делаете DEFINE TBROWSE oBrw :nStatusItem := 0 // или oBrw:nStatusItem := 0 END TBROWSE отключили вывод из TsBrowse
|
|
|
|