On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение
Администратор




Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 23.04.06 12:03. Заголовок: minigui TSBrowse:bChange


Хочу при навигации по TBrowse обновлять обьекты GetBox:

Samples\Advanced\Tsbrowse

TsBtest.prg, после строки 648 меняю:

@ 10, nWinWidth - 280 LABEL Label_1 VALUE "City" WIDTH 100 HEIGHT 22
@ 10, nWinWidth - 220 GETBOX Get_1 Field employee->City WIDTH 100 HEIGHT 22

DEFINE TBROWSE Brw_8 AT 0, 0 ALIAS "Employee" ;
SELECTFILTER "State+Last" FOR cSelState ;
WIDTH nBrwWidth-290 HEIGHT nBrwHeight ;
MESSAGE "Incremental search uses a instance variable ::cPrefix to be used with " +;
"compound indexes, specially usefull with filtered databases "

Brw_8:bChange := {|| Get_1.Refresh }

при компиляции получаю:

tsbtest.prg(657) Error E0030 Syntax error: "parse error at '.'"

tsbtest.prg(699) Error E0030 Syntax error: "parse error at 'EndCase'"

700
tsbtest.prg(709) Error E0030 Syntax error: "parse error at 'ELSE'"

tsbtest.prg(713) Error E0030 Syntax error: "parse error at 'endif'"

и дальше уже сам компилятор вываливается с ошибками

Как правильно вызвать Refresh ? Я не понимаю базовые понятия minigui:
что такое Get_1: переменная или имя ? И как к ней обратится ?

ЗЫ С праздником


Спасибо: 0 
Профиль
Ответов - 3 [только новые]


постоянный участник


Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 04.05.06 12:42. Заголовок: Re:


По моему невежественному мнению (так как я совсем не работаю с [x]Harbour, а тем более с MiniGui) Get_1 это переменная типа Объект.
Наверное лучше писать Get_1.Refresh(), то есть подчеркивая, что Refresh() - это метод, а не переменная объекта.
Если не проходит Get_1.Refresh(), то можно попробовать Get_1:Refresh(). А вдруг?!

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



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 06.06.06 04:13. Заголовок: Вариант


Т.к. Get_1 есть визуальный объект то обращаться к нему надо с указанием окна.
Т.е. <Имя_окна>.Get_1.Refresh

И, может быть, предварительно продекларировав это окно в начале программного модуля.
Declare Window <Имя_окна>


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




Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 06.06.06 11:15. Заголовок: Re:


Pasha пишет:

 цитата:
Хочу при навигации по TBrowse обновлять обьекты GetBox:



Используйте метод bChange класса TsBrowse.

Ниже пример кода:

...

@ 12,20 LABEL Lbl_1 VALUE "Code:" AUTOSIZE TRANSPARENT
@ 42,20 LABEL Lbl_2 VALUE "First Name:" AUTOSIZE TRANSPARENT
@ 72,20 LABEL Lbl_3 VALUE "Last Name:" AUTOSIZE TRANSPARENT
@102,20 LABEL Lbl_4 VALUE "Date of Birth:" AUTOSIZE TRANSPARENT

@ 10,120 TEXTBOX Text_1 VALUE "" NUMERIC RIGHTALIGN READONLY
@ 40,120 TEXTBOX Text_2 VALUE "" READONLY
@ 70,120 TEXTBOX Text_3 VALUE "" READONLY
@100,120 TEXTBOX Text_4 VALUE "" READONLY

...

Procedure Brw_5()
IF !_IsControlDefined ("oBrw5","Form_1")
Select("TEST")
@ 10,400 TBROWSE oBrw5 ALIAS "Test";
OF Form_1 WIDTH 450 HEIGHT 380 CELLED;
HEADERS "Code","First","Last","Birth" ;
WIDTHS 50,150,150,100 ;
FIELDS Test->Code,Test->First,Test->Last,Test->Birth ;
VALUE 75 ;
BACKCOLOR YELLOW ;
FONTCOLOR BLUE ;
TOOLTIP "TsBrowse - Standard definition" ;
MESSAGE " Browse DataBase 2 "

oBrw5:acolumns[2]:lEdit:=.T.
oBrw5:lNoResetPos := .F.

oBrw5:bChange := { |o| Form_1.Text_1.Value := EVAL(o:aColumns[ 1 ]:bData),;
Form_1.Text_2.Value := EVAL(o:aColumns[ 2 ]:bData),;
Form_1.Text_3.Value := EVAL(o:aColumns[ 3 ]:bData),;
Form_1.Text_4.Value := DtoC(EVAL(o:aColumns[ 4 ]:bData)) }

endif
RETURN


Спасибо: 0 
Профиль
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 63
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет