Автор | Сообщение |
|
| |
Пост N: 91
Зарегистрирован: 15.12.06
|
|
Отправлено: 19.09.08 11:33. Заголовок: Какой-то глюк в TsBrowse
Товарищи! Кто поможет? Определяю TBrowse в неглавном окне, с одним или более столбцами, неважно. При попытке изменить границы столбцов (при наведении мыши на разделитель заголовков появляется двунаправленная стрелка), при щелчке на этой стрелке происходит вылет: Error BASE/1066 Argument error: conditional Called from (b)TCONTROL(193) Called from TSBROWSE:RELEASEDC(0) Called from TSBROWSE:VERTLINE(10615) Called from TSBROWSE:LBUTTONDOWN(6102) Called from TCONTROL:HANDLEEVENT(903) Called from TSBROWSE:HANDLEEVENT(6531) Called from EVENTS(263) Called from _DOMESSAGELOOP(0) Called from _ACTIVATEWINDOW(1273) *Called from DB_BROWSE(786) *Called from (b)MAIN_WIND(273) Called from _DOCONTROLEVENTPROCEDURE(1552) Called from EVENTS(1582) *Called from MYEVENTS(35) Called from _DOMESSAGELOOP(0) Called from _ACTIVATEWINDOW(1273) *Called from MAIN_WIND(300) *Called from MAIN(105) Звёздочками я отметил мои функции. Просмотр исходников TsBrowse никакой полезной информации мне лично не дал. Кто может что подсказать?
|
|
|
Ответов - 10
[только новые]
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 19.09.08 12:55. Заголовок: А в предыдущем окне ..
А в предыдущем окне случаем не броуз сидит ?
|
|
|
|
| |
Пост N: 92
Зарегистрирован: 15.12.06
|
|
Отправлено: 19.09.08 13:42. Заголовок: fil пишет: А в пред..
fil пишет: цитата: | А в предыдущем окне случаем не броуз сидит ? |
| Нет, броуз один во всей программе.
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 19.09.08 13:46. Заголовок: Тогда подробнее. Луч..
Тогда подробнее. Лучше фрагмент текста процедуры до броузера (включая его самого)
|
|
|
|
| |
Пост N: 93
Зарегистрирован: 15.12.06
|
|
Отправлено: 19.09.08 16:12. Заголовок: Вот такой фрагмент. ..
Вот такой фрагмент. А по-старому, через BROWSE, с этим проблем не было. Правда, DATA в колонках сейчас определены криво, но это неважно, до редактирования не доходит. DEFINE WINDOW TabForm AT 12,36 WIDTH 740 HEIGHT 450; TITLE hea CHILD ON LOSTFOCUS THISWINDOW.RELEASE NOMINIMIZE NOMAXIMIZE @ 4,60 LABEL LCAPT2 SIZE 12; BACKCOLOR WHITE WIDTH 495 HEIGHT 20 VALUE ' '+hea2 DRAW RECTANGLE IN WINDOW TabForm AT 4,30; TO 24,60 PENCOLOR WHITE FILLCOLOR WHITE //легенда (окошко) DRAW LINE IN WINDOW TabForm AT 13,35; //легенда - dbBrowse() TO 13,55 PENCOLOR ccurves[section] PENWIDTH ccurves[section,4] DRAW PANEL IN WINDOW TabForm AT 28,10 TO 375,727 /* СТАРОЕ @ 34, 20 BROWSE Browse_1a WIDTH 580 HEIGHT 300; ON DBLCLICK THISWINDOW.RELEASE; HEADERS {'Номер записи','Дата-время','Значение'}; WIDTHS {100,150,150} WORKAREA &('curve'+str_0(section,2)); FIELDS {'recno()','if(value="********","<КОНЕЦ СЕАНСА>",dt2000(datetime))',; 'if(value="********","",float_str(ctof(value),9))'} //JUSTIFY {2,1,000} */ DEFINE TBROWSE Browse_1a AT 34,20 /*GRID*/ ; ALIAS 'curve'+str_0(section,2); WIDTH 580 HEIGHT 300 COLORS {CLR_BLACK, CLR_BLUE} //; MESSAGE "oBrw:lNoHScroll, eliminates horizontal scroll bar." ADD COLUMN TO Browse_1a WIDTH 100 HEADER 'Номер записи'; DATA {|x| recno()} EDITABLE MOVE DT_MOVE_RIGHT ADD COLUMN TO Browse_1a WIDTH 150 HEADER 'Дата-время'; DATA {|x| if(x=nil,dt2000(datetime),datetime:=' ')} EDITABLE MOVE DT_MOVE_RIGHT ADD COLUMN TO Browse_1a WIDTH 150 HEADER 'Значение'+cr+'"'+SectName+'"'; DATA {|x| if(x=nil,float_str(ctof(value),9),float_str(ctof(value),9))} EDITABLE MOVE DT_MOVE_RIGHT END TBROWSE //ряд кнопок (справа от таблицы) ....... END WINDOW CENTER WINDOW TabForm TabForm.Browse_1a.Setfocus() ACTIVATE WINDOW TabForm Пробовал убрать и DRAW, и кнопки - оставить в окне только броуз - не помогает.
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 19.09.08 17:00. Заголовок: Ну так с виду вроде ..
Ну так с виду вроде похоже на правду. Возьми sbtest.prg и посмотри, там как раз MDI окна с TsBrowse рассмотрены
|
|
|
|
| |
Пост N: 94
Зарегистрирован: 15.12.06
|
|
Отправлено: 25.09.08 09:39. Заголовок: То есть обязательно ..
То есть обязательно д.б. MDI? Но у меня, к сожалению, тогда многое придётся переделать. Если просто добавить слово "MDI", то изменяется порядок всякой инициализации и начинаются вылеты на несуществующих переменных. Правда, переделывать всё равно много надо, так что уж заодно. В общем, работать и работать...
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 25.09.08 13:55. Заголовок: Да нет, совершенно н..
Да нет, совершенно не обязательно MDI - любое окно. А в TBrowse перехвати клик bRClick
|
|
|
|
| |
Пост N: 95
Зарегистрирован: 15.12.06
|
|
Отправлено: 26.09.08 15:20. Заголовок: Как-то сложно. А где..
Как-то сложно. А где описано, как это делать? И в samples\advanced\tsbrowse обходится же без этого. Правда, там и без MyEvents тоже - может, в этом дело?
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 26.09.08 16:50. Заголовок: Причем тут MyEvents ..
Причем тут MyEvents ? oBr:=TSBroswe():New() ....................... oBr:bRClick:={||МояФункция()}
|
|
|
|
| |
Пост N: 96
Зарегистрирован: 15.12.06
|
|
Отправлено: 02.10.08 14:15. Заголовок: Да, oBr:bRClick - на..
Да, oBr:bRClick - нашёл, что такое. Но это не то. Во-первых- для перемещения границ колонок используется левая кнопка. Во-вторых - в примерах-то ничего подобного нет, как-то обходятся без этого. Я пытался изменить мою программу, чтобы добиться отсутствия вылетов, пытался и изменить пример, чтобы как раз добиться вылета - не получается. Ладно, пока не до этого, т.к. появились более срочные дела. Есть, правда, подозрение, что дело не только в самих программах, но в разных методах сборки.
|
|
|
|