On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
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:....



Спасибо: 0 
Профиль
Ответов - 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 пишет:

 цитата:
первый элемент статусбара бровс без объявления войны забирает под свои сообщения


Спасибо ! Заработало !

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3265
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.03.14 21:54. Заголовок: Сделал доп окно пока..


Сделал доп окно показа мемо поля.
Не активируется оно...
Видать неправильный вариант с окнами делаю (до этого не работал с такими окнами)...

При объявлении показа мемо-поля в другом окне: Form_1.Edit_Memo.Value := (oBrw_1:cAlias)->MEMO,
компилятор не собирает, выдает ошибку:
Скрытый текст

Что-то неправильно делаю, подскажите пожалуйста ?
Проект тут - http://files.mail.ru/DF44C802FA1E4821BC2E5CE6E6ED1EFA

Спасибо: 0 
Профиль
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 ) используй

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 3864
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.03.14 11:41. Заголовок: Haz пишет: попытка ..


Haz пишет:

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




Спасибо: 0 
Профиль
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 окнами сразу.
Помогите эти окна разрулить....

Спасибо: 0 
Профиль
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




Спасибо: 0 
Профиль
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




Спасибо: 0 
Профиль
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

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3268
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.03.14 15:35. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
и активировал его по команде


Ну как всегда, Григорий всё по полочкам разложит !!! Рука мастера, тут уж ничего по другому и не сделаешь.
Спасибо БОЛЬШОЕ !!!

А что за "зверь" - TOPMOST ?

И как сделать чтобы Form_1 было всегда поверх других окон ?

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 148
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 12.03.14 15:42. Заголовок: Andrey пишет: Вот и..


Andrey пишет:

 цитата:
Вот исходник, проверь пожалуйста его



проверил - все появляется при установке чекбокса "примечание"в true



Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3269
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.03.14 15:51. Заголовок: Haz пишет: проверил..


Haz пишет:

 цитата:
проверил - все появляется при установке чекбокса "примечание"в true


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

Спасибо: 0 
Профиль
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.





Спасибо: 0 
Профиль
Haz
администратор




Пост N: 149
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 12.03.14 20:11. Заголовок: Andrey пишет: Как з..


Andrey пишет:

 цитата:
Как закрыть окно Form_1 при завершении задачи


{|| domethod("Form_1","Release"), domethod("Form_0", "Release") }

Спасибо: 0 
Профиль
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 была всегда поверх других окон ?

Спасибо: 0 
Профиль
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





Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3272
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.03.14 12:08. Заголовок: Haz пишет: в описан..


Haz пишет:

 цитата:
в описании команды DEFINE WINDOW есть TOPMOST


Есть. Только для другого окна.
Исправил - получилось ! Спасибо !

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 151
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 14.03.14 12:23. Заголовок: Andrey пишет: Есть...


Andrey пишет:

 цитата:
Есть. Только для другого окна.



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

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 3273
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.03.14 13:44. Заголовок: Все нормально получи..


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

Спасибо: 0 
Профиль
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.
Ладно, можно один раз перечислить. А когда новые поля в базу добавишь,
нужно будет тогда ОПЯТЬ лезть в исходник и править его. ОЧЕНЬ НЕУДОБЕН этот метод.
Хочется как на Клипере создавать бровс.
Помогите пожалуйста.

Спасибо: 0 
Профиль
ZAlex



Пост N: 2
Зарегистрирован: 22.01.14
ссылка на сообщение  Отправлено: 15.03.14 17:59. Заголовок: А если скомпилироват..


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

Спасибо: 0 
Профиль
Ответов - 301 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 33
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет