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

Ответов - 301, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 All

Andrey: Haz пишет: первый элемент статусбара бровс без объявления войны забирает под свои сообщения Спасибо ! Заработало !

Andrey: Сделал доп окно показа мемо поля. Не активируется оно... Видать неправильный вариант с окнами делаю (до этого не работал с такими окнами)... При объявлении показа мемо-поля в другом окне: Form_1.Edit_Memo.Value := (oBrw_1:cAlias)->MEMO, компилятор не собирает, выдает ошибку: Dbf_Log.prg(360) Error E0030 Syntax error "syntax error at '.'" 1 error No code generated. hbmk2[Dbf_Log]: Error: Running Harbour compiler (embedded). 1 Что-то неправильно делаю, подскажите пожалуйста ? Проект тут - http://files.mail.ru/DF44C802FA1E4821BC2E5CE6E6ED1EFA

Haz: Andrey пишет: Что-то неправильно делаю ну что явно в глаза бросается - попытка создать окно за пределами экрана ( где-то на высоте кнопки питания монитора ) AT nDesktopWidth-100,0 PS по ошибке компилятора - он не знает что за окно ему суют, или DECLARE WINDOW Form_1 перед строкой с ошибкой напиши или SetProperty("Form_1","Edit_Memo", "Value", (oBrw_1:cAlias)->MEMO ) используй


Dima: Haz пишет: попытка создать окно за пределами экрана ( где-то в районе кнопки питания )

Andrey: Haz пишет: ну что явно в глаза бросается - попытка создать окно за пределами экрана ( где-то на высоте кнопки питания монитора ) AT nDesktopWidth-100,0 Можно поставить и 0, 0 - окно все равно не появляется !!! Haz пишет: PS по ошибке компилятора - он не знает что за окно ему суют, или DECLARE WINDOW Form_1 перед строкой с ошибкой напиши или SetProperty("Form_1","Edit_Memo", "Value", (oBrw_1:cAlias)->MEMO ) используй Поставил. Теперь вообще программа сваливается по ошибке: Error: Control: Edit_Memo Of Form_1 Not defined. Called from SETPROPERTY(3658) Called from MYCHANGEBROWSE(361) Я же писал, что что-то с окнами неправильно делаю ? В этой проге ТРИ окна: MAIN (Form_Test), MODAL (Form_0) и еще CHILD (Form_1) ! Где то здесь собака зарыта. Я не работал с 3 окнами сразу. Помогите эти окна разрулить....

Haz: Andrey пишет: Можно поставить и 0, 0 - окно все равно не появляется проверил, в твоем исходнике поставил 0, 0 - появляется Andrey пишет: Control: Edit_Memo Of Form_1 Not defined BEGIN SEQUENCE WITH { |oErr| Break( oErr ) } IF IsWindowDefined(Form_1) SetProperty("Form_1", "Edit_Memo", "Value", (oBrw_1:cAlias)->MEMO ) END END

gfilatov2002: Andrey пишет: В этой проге ТРИ окна: MAIN (Form_Test), MODAL (Form_0) и еще CHILD (Form_1) ! Где то здесь собака зарыта. Я не работал с 3 окнами сразу. Помогите эти окна разрулить.... Сделал так: - определил Form_0 как CHILD TOPMOST DEFINE WINDOW Form_0 ; At 0, 0 ; WIDTH 950 ; HEIGHT 580 ; TITLE cTitle ; ICON "MSGDBF" ; CHILD ; TOPMOST ; ... - определил Form_1 как CHILD NOSHOW DEFINE WINDOW Form_1 ; AT 0,nDesktopWidth-100 ; WIDTH 100 ; HEIGHT 140 ; TITLE 'Мемо' ; ICON "MSGDBF" ; CHILD NOSHOW и активировал его по команде ACTIVATE WINDOW Form_1 NOWAIT

Andrey: Haz пишет: BEGIN SEQUENCE WITH { |oErr| Break( oErr ) } IF IsWindowDefined(Form_1) SetProperty("Form_1", "Edit_Memo", "Value", (oBrw_1:cAlias)->MEMO ) END END Классная конструкция ! Буду теперь так использовать. Спасибо БОЛЬНОЕ ! Haz пишет: проверил, в твоем исходнике поставил 0, 0 - появляется А у меня нет ! Вот исходник, проверь пожалуйста его - http://files.mail.ru/4F239AE50FA543C194D16A0F636B53D6

Andrey: gfilatov2002 пишет: и активировал его по команде Ну как всегда, Григорий всё по полочкам разложит !!! Рука мастера, тут уж ничего по другому и не сделаешь. Спасибо БОЛЬШОЕ !!! А что за "зверь" - TOPMOST ? И как сделать чтобы Form_1 было всегда поверх других окон ?

Haz: Andrey пишет: Вот исходник, проверь пожалуйста его проверил - все появляется при установке чекбокса "примечание"в true

Andrey: Haz пишет: проверил - все появляется при установке чекбокса "примечание"в true Понял, спасибо ! После правки Григория окна заработали как надо ! Буду дальше делать ! Спасибо всем БОЛЬШОЕ !

Andrey: Рано радовался по окнам. Как закрыть окно Form_1 при завершении задачи, т.е. кнопки "Выход" формы Form_0 ? DEFINE BUTTONEX Button_Exit .......... CAPTION "Выход" ACTION {|| Form_0.Release() } При добавлении - ACTION {|| Form_0.Release(), Form_1.Release() } прога не собирается, выдает ошибку на этой строчке: Dbf_Log.prg(189) Error E0030 Syntax error "syntax error at '.'" 1 error No code generated.

Haz: Andrey пишет: Как закрыть окно Form_1 при завершении задачи {|| domethod("Form_1","Release"), domethod("Form_0", "Release") }

Andrey: Haz пишет: {|| domethod("Form_1","Release"), domethod("Form_0", "Release") } Спасибо БОЛЬШОЕ ! А почему не хочет прокатывать стандартный вариант ACTION {|| Form_0.Release(), Form_1.Release() } ? Извиняюсь за настойчивость, очень хочется понять почему. И как сделать чтобы Form_1 была всегда поверх других окон ?

Haz: Andrey пишет: почему не хочет прокатывать стандартный вариант ACTION {|| Form_0.Release(), Form_1.Release() } Если выше по тексту модуля нет объявления окна DEFINE или DECLARE WINDOW, компилятор не понимает что ему суют. по сути нужен именно DECLARE WINDOW т.к. создание окошка через DEFINE в своем описании i_window.ch имеет вызов именно DECLARE. сама команда DECLARE это набор инструкций #translate препроцессору для корректного преобразования фантазии вида Form_o.Release() в соответствующий вызов SetPropertry(...) или DoMethod(...) Andrey пишет: И как сделать чтобы Form_1 была всегда поверх других окон в описании команды DEFINE WINDOW есть TOPMOST

Andrey: Haz пишет: в описании команды DEFINE WINDOW есть TOPMOST Есть. Только для другого окна. Исправил - получилось ! Спасибо !

Haz: Andrey пишет: Есть. Только для другого окна. тут не знаю можно попробовать повесить на событие LostFocus { || Form:Setfocus() } ( но не уверен в том что прокатит ) или копать в сторону процедуры _ChangeWindowTopmostStyle( FormHandle, Value ) из h_controlmisc.prg

Andrey: Все нормально получилось. Я TOPMOST повесил куда ты сказал и все заработало !!! Спасибо БОЛЬШОЕ за помощь ! Буду дальше делать...

Andrey: Пример почти доделал. Работает. http://files.mail.ru/02028517FBDD4473B3332A9C49077BBE Осталось доделать сборку TBROWS ТОЛЬКО из своих полей. Помогите пожалуйста в описании одной колонки, примеры смотрел, ни фига не понял. Как эту строку: ADD COLUMN TO TBROWSE &ob DATA ARRAY ELEMENT 1 ALIGN DT_CENTER, DT_CENTER SIZE 20 COLORS C_TEK, C_SYS преобразовать до привычной Клиперовской: oBrw_1:aColumns[1]:cHeading := "Дата" +CRLF + "события" oBrw_1:SetColSize(1, 70) oBrw_1:aColumns[1]:bData := {||LOG_DBF->DATE } // oBrw_1:aColumns[1]:cPicture:="99.99.9999" - не обязательно oBrw_1:aColumns[1]:nAlign := DT_CENTER Haz пишет: не там смотрел, посмотри как это делается в самом методе (не в функции) Loadfield - там как раз используется ::AddColumn Нашел! ::AddColumn( TSColumn():New( cHeading, FieldWBlock( aStru[ nE, 1 ], Select( ::cAlias ) ),cPicture, ; { ::nClrText, ::nClrPane }, { nAlign, DT_CENTER }, nSize,, lEditable,,, cOrder,,,, ; //V90 5,,,, Self, cBlock ) ) Только как это сделать для себя - вообще не представляю.... У меня есть базы имеющие 150 полей. Для показа нужно всего 15. Ладно, можно один раз перечислить. А когда новые поля в базу добавишь, нужно будет тогда ОПЯТЬ лезть в исходник и править его. ОЧЕНЬ НЕУДОБЕН этот метод. Хочется как на Клипере создавать бровс. Помогите пожалуйста.

ZAlex: А если скомпилировать с ключом -p и затем посмотреть, как препроцессор это делает? Не поможет?



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