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

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

Alex_Cher: Andrey пишет: Работает без ошибок с версии МиниГуи 17.07 и исправленной библиотеки tsbrowse.lib (в модуле h_tbrowse.prg) Application: C:\MiniGUI\SAMPLES\MY_BASIC\Tsbrowse_7\Tsb_composite.exe Date: 24.08.17 Time: 09:00:26 Time from start: 0 days 0 hours 0 mins 27 secs Error BASE/1004 Метод не экспортирован: LAPPEND Called from LAPPEND(0) Called from TSBROWSE:EDITEXIT(4134) Called from (b)TSBROWSE_EDIT(4003) Called from TCOMBOBOX:LOSTFOCUS(212) Called from TCOMBOBOX:COMMAND(964) Called from TCONTROL:HANDLEEVENT(871) Called from TCOMBOBOX:HANDLEEVENT(155) Called from EVENTS(1675) Called from DOMESSAGELOOP(0) Called from _ACTIVATEWINDOW(1449) Called from DOMETHOD(4729) Called from FORMTABLE(161) Called from (b)MAIN(45) Called from _PROCESSINITPROCEDURE(1613) Called from _ACTIVATEWINDOW(1437) Called from MAIN(58) Версии МиниГуи 17.07, на счет библиотеки tsbrowse.lib ничего сказать не могу.

gfilatov2002: Alex_Cher пишет: Версии МиниГуи 17.07 Эта ошибка будет исправлена в августовской сборке Минигуи

Andrey: У себя в Tsbrowse наверху окна вывожу - язык раскладки клавиатуры (RUS/LAT) При смене языка раскладки остаётся старый язык, пока не нажмешь любую клавишу, тогда язык меняется на правильный. Как сделать чтобы при смене раскладки языка - показ языка отрабатывал сразу ?


Dima: Andrey Ни кто не даст ответа не видя как ты выводишь эту самую раскладку.

Andrey: Понял. В Tsbrowse назначаю свою обработку: oBrw:bUserKeys := { |a,b,c| MyKeyEdit(a,b,c) } Функция обработки: [pre2]STATIC FUNCTION MyKeyEdit( nKey, nFlag, oBrw ) LOCAL xRet := .T. ....... IF !Alltrim(cStaticSearch) == Form_0.Text_Seek.Value cStaticSearch := Form_0.Text_Seek.Value ENDIF DO CASE CASE nKey == VK_ESCAPE .... CASE nKey == VK_INSERT // [Ins] Добавить запись ... CASE nKey == VK_DELETE // [Del] Удалить запись .... CASE nKey == VK_BACK // Backspace IF LEN(Form_0.Text_Seek.Value) > 0 cStaticSearch := LEFT(cStaticSearch,LEN(cStaticSearch)-1) Form_0.Text_Seek.Value := cStaticSearch RefreshBrowse() ENDIF CASE nKey > 47 .AND. nKey < 254 cStaticSearch := cStaticSearch + KeyToChar(nKey) Form_0.Text_Seek.Value := cStaticSearch // показ вверху набранного ФИЛЬТРА по базе RefreshBrowse() xRet := .F. Form_0.Label_KB.Value := '('+KB_LANG()+')' CASE nKey == 16 .OR. nKey == 17 // Shift+Alt Shift+Ctrl xRet := .F. ENDCASE Form_0.Label_KB.Value := '('+KB_LANG()+')' // вывод раскладки клавиатуры Form_0.oBrw.SetFocus RETURN xRet [/pre2] Не всегда показывает смену языка клавиатуры !!! Как сделать, чтобы смена языка отображалась правильно ?

Dima: Варианты 1. STATIC FUNCTION MyKeyEdit( nKey, nFlag, oBrw ) LOCAL xRet := .T. Form_0.Label_KB.Value := '('+KB_LANG()+')' // вывод раскладки клавиатуры 2. Повесить показ на таймер 3. Повесить показ в потоке

Andrey: Dima пишет: Варианты 1. Этот не сработал.... Такая же фигня, меняешь язык - остаётся старый, пока не нажмёшь любую клавишу... 2 - не хочется загружать Tsbrowse сторонними процессами, уменьшать быстродействие 3-вообще экзотика, нафига в простом Tsbrowse отдельный поток.

Dima: Andrey Стандартного вывода от OS не хватает ?

Andrey: Dima пишет: Стандартного вывода от OS не хватает ? Да юзера пристали... Вот и сделал им... А не работает.

gfilatov2002: Andrey пишет: не хочется загружать Tsbrowse сторонними процессами, Да, это возможно сделать средствами самого TSBrowse. Надо добавить в функцию CreateBrw() такой обработчик: // Вывод подсказки с использованием внутреннего цикла TBrowse oBrw:bEvents := { |a,b| MyEventBrowse(a,b) } и перенести вывод подсказки из функции MyKeyEdit() в функцию ниже: [pre2]//////////////////////////////////////////////////////////// STATIC FUNCTION MyEventBrowse(oBrw, nMsg) oBrw:=nil IF _IsControlDefined( "Label_KB", "Form_0" ) .and. !(nMsg==WM_PAINT) Form_0.Label_KB.Value := '('+KB_LANG()+')' ENDIF RETURN 0 [/pre2]

Dima: gfilatov2002 пишет: // Вывод подсказки с использованием внутреннего цикла TBrowse oBrw:bEvents := { |a,b| MyEventBrowse(a,b) } Мерцать надпись не будет ?

Andrey: gfilatov2002 пишет: Да, это возможно сделать средствами самого TSBrowse. Заработало !!! И не мерцает... А как насчёт других вопросов (1,2 и 3) ?

Петр: Andrey пишет: А как насчёт других вопросов (1,2 и 3) А где эти вопросы прозвучали? Были 3 варианта от Dima и ваше резюме Andrey пишет: нафига

Dima: Петр пишет: А где эти вопросы прозвучали? Думаю только в его голове

Andrey: Dima пишет: Думаю только в его голове Я проект Tsb_config2 Григорию на прошлой неделе отослал...

Andrey: Сам проект - https://cloud.mail.ru/public/H4Do/1tDRrPPff Вопросы: 1) Модуль util_dbase.prg функция DbfCreateRecno() Нет надписи по команде - WAIT WINDOW "Подождите, создаю тестовую базу...." NOWAIT Что нужно сделать, чтобы надпись появилась ? 2) Модуль Form_operat.prg функция DimOperat() Обработка колонки срабатывает ТОЛЬКО после первого ввода. [pre2] oBrw:aColumns[nVal]:bPrevEdit := ..... oBrw:aColumns[nVal]:bEditing := ..... oBrw:aColumns[nVal]:bEditEnd := .....[/pre2] Как сделать, чтобы при первом вводе был показ подсказки ? 3) Модуль Tsb_Config.prg - нет отработки команды oBrw:nAt := 5 Например: [pre2] FUNCTION RecnoInsert() .......... oBrw:GoTop() // первая запись базы oBrw:nAt := 5[/pre2] или при ПЕРВОМ показе бровса [pre2] строка 364 - oBrw:nAt := 5 // передвинуть МАРКЕР на 5 строку [/pre2] Как исправить ?

gfilatov2002: Andrey пишет: как насчёт других вопросов (1,2 и 3) ? Вопросы. 1) Нет надписи по команде - WAIT WINDOW "Подождите, создаю тестовую базу...." NOWAIT Что нужно сделать, чтобы надпись появилась ? Проверял под Win7 - нет такой проблемы... 2) Как сделать, чтобы при первом вводе был показ подсказки ? Не знаю 3) нет отработки команды oBrw:nAt := 5 Попробуйте заменить на oBrw:GoPos( 5 )

Dima: Andrey пишет: Нет надписи по команде - WAIT WINDOW "Подождите, создаю тестовую базу...." NOWAIT Если сделаешь микро-пример я проверю у себя. Впрочем где то это я уже видел в твоих примерах "Подождите, создаю тестовую базу...." и у меня работало. PS Win-7

Петр: Dima пишет: Впрочем где то это я уже видел в твоих примерах "Подождите, создаю тестовую базу...." и у меня работало. Ну так в том проекте, что он выложил (пост 5490) есть такая штука и она работает - надпись есть (запускал на Win7 и WinXP). Andrey пишет: Модуль Tsb_Config.prg - нет отработки команды oBrw:nAt := 5 nAt обьявлено как DATA (VAR), что там может отрабатывать?

Andrey: Dima пишет: Если сделаешь микро-пример я проверю у себя. Возьми готовый проект, ссылка выше. На микро-примерах, как правило ВСЁ работает !gfilatov2002 пишет: gfilatov2002 пишет: Проверял под Win7 - нет такой проблемы... Значить это у меня под Win8.1 нет надписи ! Тогда можно не заморачиваться... Петр пишет: nAt обьявлено как DATA (VAR), что там может отрабатывать? На других примерах это срабатывает. gfilatov2002 пишет: Попробуйте заменить на oBrw:GoPos( 5 ) НЕ ТО ! Мне нужна 1-я запись и положение курсора/маркера на 5+2 столбце ("Событие") ? Нашёл как исправить: [pre2] ON INIT { || IniGetPosWindow(), IniGetTbrowse(oBrw,aStatClr2Usl), oBrw:GoPos( 1,7 ) } ; [/pre2]



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