Автор | Сообщение |
Vlad04
|
| постоянный участник
|
Пост N: 420
Зарегистрирован: 13.10.05
|
|
Отправлено: 19.12.13 18:16. Заголовок: TsBrowse в Минигуи
TsBrows определяется в виде строки ПАРМЕТРОВ объекта и их значений К примеру цитата: | 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 |
| Здесь я собрал параметры из разных tBrows Можно или нет и какие парметры заменить выражением ( и каким) ? oBrw2:.... oBrw2:....
|
|
|
Ответов - 301
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
All
[только новые]
|
|
Andrey
|
| постоянный участник
|
Пост N: 3264
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.03.14 13:33. Заголовок: Haz пишет: первый э..
Haz пишет: цитата: | первый элемент статусбара бровс без объявления войны забирает под свои сообщения |
| Спасибо ! Заработало !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3265
Зарегистрирован: 12.09.06
|
|
Отправлено: 11.03.14 21:54. Заголовок: Сделал доп окно пока..
Сделал доп окно показа мемо поля. Не активируется оно... Видать неправильный вариант с окнами делаю (до этого не работал с такими окнами)... При объявлении показа мемо-поля в другом окне: 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
|
| |
Пост N: 146
Зарегистрирован: 20.02.11
|
|
Отправлено: 12.03.14 11:38. Заголовок: Andrey пишет: Что-т..
Andrey пишет: ну что явно в глаза бросается - попытка создать окно за пределами экрана ( где-то на высоте кнопки питания монитора ) AT nDesktopWidth-100,0 PS по ошибке компилятора - он не знает что за окно ему суют, или DECLARE WINDOW Form_1 перед строкой с ошибкой напиши или SetProperty("Form_1","Edit_Memo", "Value", (oBrw_1:cAlias)->MEMO ) используй
|
|
|
Dima
|
| |
Пост N: 3864
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.03.14 11:41. Заголовок: Haz пишет: попытка ..
Haz пишет: цитата: | попытка создать окно за пределами экрана ( где-то в районе кнопки питания ) |
|
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3266
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.03.14 14:44. Заголовок: Haz пишет: ну что я..
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
|
| |
Пост N: 147
Зарегистрирован: 20.02.11
|
|
Отправлено: 12.03.14 15:20. Заголовок: Andrey пишет: Можно..
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
|
| moderator
|
Пост N: 565
Зарегистрирован: 11.02.10
|
|
Отправлено: 12.03.14 15:31. Заголовок: Andrey пишет: В это..
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
|
| постоянный участник
|
Пост N: 3267
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.03.14 15:32. Заголовок: Haz пишет: BEGIN SE..
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
|
| постоянный участник
|
Пост N: 3268
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.03.14 15:35. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | и активировал его по команде |
| Ну как всегда, Григорий всё по полочкам разложит !!! Рука мастера, тут уж ничего по другому и не сделаешь. Спасибо БОЛЬШОЕ !!! А что за "зверь" - TOPMOST ? И как сделать чтобы Form_1 было всегда поверх других окон ?
|
|
|
Haz
|
| |
Пост N: 148
Зарегистрирован: 20.02.11
|
|
Отправлено: 12.03.14 15:42. Заголовок: Andrey пишет: Вот и..
Andrey пишет: цитата: | Вот исходник, проверь пожалуйста его |
| проверил - все появляется при установке чекбокса "примечание"в true
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3269
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.03.14 15:51. Заголовок: Haz пишет: проверил..
Haz пишет: цитата: | проверил - все появляется при установке чекбокса "примечание"в true |
| Понял, спасибо ! После правки Григория окна заработали как надо ! Буду дальше делать ! Спасибо всем БОЛЬШОЕ !
|
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3270
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.03.14 16:10. Заголовок: Рано радовался по ок..
Рано радовался по окнам. Как закрыть окно 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
|
| |
Пост N: 149
Зарегистрирован: 20.02.11
|
|
Отправлено: 12.03.14 20:11. Заголовок: Andrey пишет: Как з..
Andrey пишет: цитата: | Как закрыть окно Form_1 при завершении задачи |
| {|| domethod("Form_1","Release"), domethod("Form_0", "Release") }
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3271
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.03.14 21:20. Заголовок: Haz пишет: {|&..
Haz пишет: цитата: | {|| domethod("Form_1","Release"), domethod("Form_0", "Release") } |
| Спасибо БОЛЬШОЕ ! А почему не хочет прокатывать стандартный вариант ACTION {|| Form_0.Release(), Form_1.Release() } ? Извиняюсь за настойчивость, очень хочется понять почему. И как сделать чтобы Form_1 была всегда поверх других окон ?
|
|
|
Haz
|
| |
Пост N: 150
Зарегистрирован: 20.02.11
|
|
Отправлено: 13.03.14 09:24. Заголовок: Andrey пишет: почем..
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
|
| постоянный участник
|
Пост N: 3272
Зарегистрирован: 12.09.06
|
|
Отправлено: 14.03.14 12:08. Заголовок: Haz пишет: в описан..
Haz пишет: цитата: | в описании команды DEFINE WINDOW есть TOPMOST |
| Есть. Только для другого окна. Исправил - получилось ! Спасибо !
|
|
|
Haz
|
| |
Пост N: 151
Зарегистрирован: 20.02.11
|
|
Отправлено: 14.03.14 12:23. Заголовок: Andrey пишет: Есть...
Andrey пишет: цитата: | Есть. Только для другого окна. |
| тут не знаю можно попробовать повесить на событие LostFocus { || Form:Setfocus() } ( но не уверен в том что прокатит ) или копать в сторону процедуры _ChangeWindowTopmostStyle( FormHandle, Value ) из h_controlmisc.prg
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3273
Зарегистрирован: 12.09.06
|
|
Отправлено: 14.03.14 13:44. Заголовок: Все нормально получи..
Все нормально получилось. Я TOPMOST повесил куда ты сказал и все заработало !!! Спасибо БОЛЬШОЕ за помощь ! Буду дальше делать...
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3275
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.03.14 11:30. Заголовок: Пример почти доделал..
Пример почти доделал. Работает. 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
|
| |
Пост N: 2
Зарегистрирован: 22.01.14
|
|
Отправлено: 15.03.14 17:59. Заголовок: А если скомпилироват..
А если скомпилировать с ключом -p и затем посмотреть, как препроцессор это делает? Не поможет?
|
|
|
Ответов - 301
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
All
[только новые]
|
|