Форум » GUI » Новая версия Расширенного релиза библиотеки MiniGUI (часть VI ) (продолжение) » Ответить

Новая версия Расширенного релиза библиотеки MiniGUI (часть VI ) (продолжение)

gfilatov: Начало темы находится здесь, а теперь АНОНС * АНОНС * АНОНС * АНОНС * АНОНС Готовится к опубликованию новая сборка №48, которая выйдет в конце недели. Если у Вас есть интересные наработки для включения в новый релиз, то сейчас самое удобное время для их отправки мне Кратко, что нового: - исправление обнаруженных ошибок и неточностей кода; - новый класс HEADERIMAGE для Grid и Browse; - свойство Address в Hyperlink может теперь открывать папку или файл на диске; - добавлен NOTABSTOP класс для Browse; - поддержка пользовательских компонентов (заимствована из оффициального релиза); - расширения и исправления в библиотеках TsBrowse и PropGrid; - обновлены сборки Харбор и HMGS-IDE; - новые и обновленные старые примеры (как обычно ).

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

Andrey: gfilatov2002 пишет: Андрею должно понравится такое изменение: Мне понравилось ! Спасибо ! SergKis пишет: что бы не делать доп. переменных, а использовать :cargo колонки, например (от Андрея): Да, это очень удобно получается. Загружаешь в массив короткий справочник типа: [pre2]{1, "В офисе "} {2, "отданы лично в руки "} {3, "отданы Посыльному "}[/pre2] А потом бровс сам показывает вместо кодов нужные наименования через функцию: [pre2]FUNCTION Select2Array(xVal,aDim) LOCAL nI, cRet := "none Dim" FOR nI := 1 TO LEN(aDim) IF xVal == aDim[nI,1] cRet := aDim[nI,2] ENDIF NEXT RETURN cRet[/pre2] Ну а в oCol:bPrevEdit - показ выбора из этого массива SelectWho(ob, oc:Cargo) и потом запись в базу WriteColum4(ob). Что-то форум потерял предыдущую тему. Не понятно будет о чем речь идёт...

SergKis: Andrey пишет Ну а в oCol:bPrevEdit - показ выбора из этого массива SelectWho(ob, oc:Cargo) Можно упростить[pre2] oCol := oBrw:GetColumn("Name_4") oCol:Cargo := oKeyData() // Get2DimCol4() // получить массив для колонки 4 oCol:bDecode := {|val,ob,nc,oc| nc:=ob, oc:Cargo:Get(val, val) } // если для кода нет наименования, будет сам код oCol:nAlign := DT_CENTER oCol:cPicture := REPL("x",25) oCol:lEdit := .T. oCol:bPrevEdit := {|val,ob,nc,oc| SelectWho(ob, oc:Cargo), WriteColum4(ob), ob:Setfocus(), FALSE } // заполним из dbf коды и названия для колонки USE ... ALIAS SPR NEW SHARED dbEval({|| oCol:Cargo:Set(FIELD->KOD, FIELD->NAME) }) USE dbSelectArea(oBrw:cAlias) ... [/pre2]

SergKis: PS массив получить так oCol:CargoGetAll(.T.) // массив наименований для combobox например oCol:CargoGetAll(.F.) // массив {{kod, name},..., {kodN, nameN}} т.е. oCol:bPrevEdit := {|val,ob,nc,oc| SelectWho(ob, oc:Cargo:GetAll(.F.)), WriteColum4(ob), ob:Setfocus(), FALSE }


gfilatov2002: Снова обновил сборку 20.01 (Update 7) с учетом последних наработок Базовый дистрибутив для BCC 5.8.2 находится по адресу http://hmgextended.com/files/CONTRIB/hmg-20.01-setup.exe Обновил также архив для бесплатного Embarcadero C++ 10.1 Berlin compiler по адресу http://hmgextended.com/files/CONTRIB/hmg2001_bcc101.exe Благодарю за ваше внимание

kkg: Из замеченного, если в версии bcc101 подменить библиотеки hblang.lib hbcpage.lib от BCC 5.8.2 то установка русского языка отрабатывает нормально, включая обработку ошибок. На некоторых версиях ОС проявляется ошибка ilink32, "лечение" описано тут click here может кому то пригодится.

gfilatov2002: Завершена подготовка новой сборки 20.03, которая будет опубликована на следующей неделе. Кратко, что нового: [pre2] * New: Added the new useful C-function dbInsert( [nRecNo] [, nCount] ). Added the new commands for managing of the above function: - INSERT BEFORE; - INSERT BLANK. * Splitboxed TOOLBAR control supports the changing of a 'Caption' property at runtime. * Added a support of the 'Variant' fields type in a Browse control. * The Getbox control may manage a 'ValidMessage' property at runtime. * Synchronized Extended HMG for compatibility with Official HMG: - New: Added the following read/write properties for a Grid control: - ColumnJUSTIFY( nColIndex ), - ColumnONHEADCLICK( nColIndex ), - ColumnCONTROL( nColIndex ), - ColumnDYNAMICBACKCOLOR( nColIndex ), - ColumnDYNAMICFORECOLOR( nColIndex ), - ColumnVALID( nColIndex ), - ColumnWHEN( nColIndex ), - ColumnVALIDMESSAGE( nColIndex ). * Updated Harbour Compiler 3.2.0dev to a recent Git-version. * Updated HMGS-IDE v.1.4.4.0 and Sqlite3 library. * Updated the some Basic, Advanced and Applications samples. [/pre2]Благодарю за ваше внимание

Andrey: gfilatov2002 пишет: которая будет опубликована на следующей неделе. Ждем с нетерпением !

gfilatov2002: Andrey пишет: Ждем с нетерпением Завтра буду готовить финальную версию инсталлятора для этой сборки

gfilatov2002: Опубликована новая сборка 20.03 для BCC 5.8.2 и компиляторов Harbour и xHarbour. Базовый дистрибутив находится по адресу http://hmgextended.com/files/CONTRIB/hmg-20.03-setup.exe Добавил также архив для бесплатного Embarcadero C++ 10.1 Berlin compiler http://hmgextended.com/files/CONTRIB/hmg2003_bcc101.exe В марте этого года исполнилось ровно 15 лет с момента начала разработки этой версии библиотеки Выпуск последующих обновлений будет зависеть от активности и поддержки со стороны пользователей ее разработки. Отдельная благодарность - Андрею Верченко, Диме (админу этого форума) и Саше Савову из Болгарии за их материальную поддержку

gfilatov2002: Сделал "тихое" обновление сборки 20.03 после повторного исправления следующего изменения: * Enhanced: Splitboxed TOOLBAR control supports the changing of a 'Caption' property at runtime. Проблема была указана на английском форуме библиотеки. Если вы не используете данную возможность в своей программе, то это обновление является необязательным.

gfilatov2002: Подготовил 1-й релиз-кандидат для новой сборки 20.04 со следующим списком изменений (кратко): [pre2] * Fixed problem with assigning of the BKBRUSH clause at a form definition (introduced in the build 19.12). * A correction in the function _SetValue() for a conflict between the Timer and AniGif controls handling. * The Label, HyperLink, CheckBox and RadioGroup controls support changing the 'Transparent' property at runtime. * The EDIT controls family (TEXTBOX & EDITBOX) support changing the 'CaseConvert' property at runtime. It was a postponed user's request. * The MONTHCAL control supports the BackColor, FontColor and others color clauses in the THEMED Operating Systems. It was a postponed user's request. * Improved user type of control in INPLACE EDIT of GRID control. DYNAMIC type is defined as { cControlType, bCodeBlock [, bChange] } where cControlType = 'DYNAMIC' (Required) bCodeBlock = CodeBlock that return array with normal type control (Required) bChange = CodeBlock with ON CHANGE action (Optional) to above CodeBlock is passed one param - a current control value. Added a new control type 'CODEBLOCK' for using with 'DYNAMIC' type. * The ANIMATEBOX control supports now an optional INVISIBLE clause. * The FONT clause in the POPUP and MENUITEM commands supports a font name for the fonts which were defined by the command DEFINE FONT <font> FONTNAME <name>. * Limited the height of the dialog box in the function HMG_Alert() to be able to output more than 20 strings in the EditBox control. * The HMG Debugger resources were moved from the sample DBG_TEST to the application resources. * Updated TSBrowse and Sqlite3 libraries. * Updated the some Basic and Advanced samples. [/pre2] Благодарю за ваше внимание

SergKis: gfilatov2002 Предложение: TsBrowse.ch [pre2] #xcommand @ <row>,<col> TBROWSE <name> ; ... [ <cur: DBLCURSOR, DOUBLE CURSOR, FIXED> ] ; [ <emptyval: COLEMPTY,COLSEMPTY,EMPTYVALUE> ] ; =>; ... [ <number> ], [ <aBrush> ], [ <aEdit> ], [ <Adjust> ], [ <.ladjust.> ], ; [ <.emptyval.> ] ) #xcommand DEFINE TBROWSE <name> ; ... [ <emptyval: COLEMPTY,COLSEMPTY,EMPTYVALUE> ] ; =>; ... [ <number> ], [ <aBrush> ], [ <aEdit> ], [ <Adjust> ], [ <.ladjust.> ], ; [ <.emptyval.> ] ) ;; with object <name> ... #xcommand DEFINE TBROWSE <name> OBJ <obrw> ; ... [ <cur: DBLCURSOR, DOUBLE CURSOR, FIXED> ] ; [ <emptyval: COLEMPTY,COLSEMPTY,EMPTYVALUE> ] ; =>; ... [ <number> ], [ <aBrush> ], [ <aEdit> ], [ <Adjust> ], [ <.ladjust.> ], ; [ <.emptyval.> ] ) ;; with object <obrw> ... [/pre2] TsBrowse.prg [pre2] FUNCTION _DefineTBrowse ( ControlName, ParentFormName, nCol, nRow, nWidth, nHeight, ; ... lLoad, lDblCursor, aNames, aFooters, nColNumber, aBrush, aEdit, Adjust, ; lAdjust, lEmptyValToChar ) ... ELSE // BK IF HB_ISARRAY( uAlias ) aArray := uAlias uAlias := NIL ENDIF IF HB_ISLOGICAL(aEdit) ... // BK IF HB_ISARRAY(aArray) oBrw:SetArrayTo( aArray, {hFontHead, hFontFoot} , aHeaders, aWidths, aFooters, aPicture, aJust, aNames ) ELSE If ! empty(hFontHead) ; oBrw:hFontHead := hFontHead EndIf If ! empty(hFontFoot) ; oBrw:hFontFoot := hFontFoot EndIf ENDIF IF HB_ISARRAY(aBrush) .and. Len(aBrush) > 2 ... IF ( nColums := Len( oBrw:aColumns ) ) > 0 /* BK 18.05.2015 */ ... // BK n := nColums IF ! HB_ISARRAY( aArray ) IF HB_ISARRAY(aNames) j := Min(Len(aNames), n) FOR t := 1 TO j IF ! Empty(aNames[ t ]) .and. HB_ISCHAR(aNames[ t ]) oBrw:aColumns[ t ]:cName := aNames[ t ] ENDIF NEXT ENDIF IF HB_ISLOGICAL(aFooters) .and. aFooters aFooters := Array( n ) aFill( aFooters, " " ) ENDIF IF HB_ISARRAY(aFooters) j := Min( Len(aFooters), n ) FOR t := 1 TO j IF aFooters[ t ] != NIL If HB_ISCHAR( aFooters[ t ] ) .and. ";" $ aFooters[ t ] aFooters[ t ] := StrTran( aFooters[ t ], ";", Chr(13) ) EndIf oBrw:aColumns[ t ]:cFooting := aFooters[ t ] ENDIF NEXT oBrw:lDrawFooters := .T. oBrw:lFooting := .T. oBrw:nHeightFoot := oBrw:nHeightCell ENDIF ENDIF IF HB_ISARRAY(aEdit) ... IF ! Empty(lDblCursor) AEval( oBrw:aColumns, {|oCol| oCol:lFixLite := .T. } ) ENDIF IF ! empty(lEmptyValToChar) AEval( oBrw:aColumns, {| oCol| oCol:lEmptyValToChar := .T. } ) ENDIF nW := 0 IF nColNumber != NIL IF HB_ISLOGICAL(nColNumber) nColNumber := iif( nColNumber, 1, NIL ) ELSEIF HB_ISARRAY(nColNumber) IF Len(nColNumber) > 1 nW := nColNumber[2] nColNumber := nColNumber[1] ELSE nColNumber := 1 ENDIF ENDIF ENDIF IF HB_ISNUMERIC(nColNumber) nColNumber := iif( nColNumber > 0 .and. nColNumber <= n, nColNumber, 1 ) IF oBrw:lIsDbf DEFINE COLUMN oCol DATA 'hb_ntos(iif( IndexOrd() > 0, ORDKEYNO(), RecNo() ))' ; HEADER '#' ; FOOTER ' ' ; ALIGN 1, 1, 1 ; WIDTH 80 ; PICTURE '9999999' ; MOVE 0 ; DBLCURSOR ; NAME ORDKEYNO oCol:lEdit := .F. oCol:cAlias := oBrw:cAlias oCol:cFooting := { |nc,ob| nc := ob:nLen, iif( Empty(nc), '', hb_ntos(nc) ) } #ifndef __XHARBOUR__ oCol:cData := 'hb_macroblock("'+oCol:cField+'")' oCol:bData := hb_macroblock( oCol:cField ) #else oCol:cData := '{|| '+oCol:cField+'}' oCol:bData := &( '{|| '+oCol:cField+'}' ) #endif ELSEIF oBrw:lIsArr DEFINE COLUMN oCol DATA {|| NIL } ; HEADER '#' ; FOOTER ' ' ; ALIGN 1, 1, 1 ; WIDTH 80 ; PICTURE '99999' ; MOVE 0 ; DBLCURSOR ; NAME ARRAYNO oCol:cFooting := { |nc,ob| nc := ob:nLen, iif( Empty(nc), '', hb_ntos(nc) ) } oCol:bValue := { |xx,ob| xx := ob, hb_ntos( ob:nAt ) } ENDIF oCol:lEmptyValToChar := .T. oCol:cFieldTyp := 'N' oCol:nFieldLen := 10 oCol:nFieldDec := 0 oBrw:InsColumn( nColNumber, oCol ) oBrw:nCell := nColNumber + 1 oBrw:nFreeze := nColNumber oBrw:lLockFreeze := .T. IF HB_ISNUMERIC(nW) .and. nW > 0 ... [/pre2] Пример ADVANCED\Tsb_Array_2\demo3.prg [pre2] #include "minigui.ch" #include "TSBrowse.ch" PROCEDURE MAIN LOCAL oBrw, aDatos, aArray, aHead, aSize, aFoot, aPict, aAlign, aName LOCAL nY, nX, nW, nH SET DECIMALS TO 4 SET DATE TO GERMAN SET EPOCH TO 2000 SET CENTURY ON SET EXACT ON SET FONT TO 'Arial', 11 DEFINE FONT Norm FONTNAME _HMG_DefaultFontName SIZE _HMG_DefaultFontSize DEFINE FONT Bold FONTNAME _HMG_DefaultFontName SIZE _HMG_DefaultFontSize BOLD DEFINE WINDOW test ; TITLE "SetArray For Report Demo" ; MAIN ; NOMAXIMIZE NOSIZE DEFINE STATUSBAR STATUSITEM "0" // WIDTH 0 FONTCOLOR BLACK STATUSITEM "Item 1" WIDTH 230 // FONTCOLOR BLACK STATUSITEM "Item 2" WIDTH 230 // FONTCOLOR BLACK STATUSITEM "Item 3" WIDTH 230 // FONTCOLOR BLACK END STATUSBAR nY := 1 + iif( IsVistaOrLater(), GetBorderWidth ()/2, 0 ) nX := 1 + iif( IsVistaOrLater(), GetBorderHeight()/2, 0 ) nW := test.WIDTH - 2 * GetBorderWidth() nH := test.HEIGHT - 2 * GetBorderHeight() - ; GetTitleHeight() - test.StatusBar.Height aDatos := CreateDatos() aArray := aDatos[ 1 ] aHead := aDatos[ 2 ] aSize := aDatos[ 3 ] aFoot := aDatos[ 4 ] aPict := aDatos[ 5 ] aAlign := aDatos[ 6 ] aName := aDatos[ 7 ] DEFINE TBROWSE oBrw ; AT nY, nX ALIAS aArray WIDTH nW HEIGHT nH CELL ; FONT { "Norm", "Bold", "Bold" } ; BRUSH { 255, 255, 240 } ; HEADERS aHead ; COLSIZES aSize ; PICTURE aPict ; JUSTIFY aAlign ; COLNAMES aName ; COLNUMBER { 1, 40 } ; FOOTERS aFoot ; FIXED ADJUST COLEMPTY ; ENUMERATOR mySetTsb( oBrw ) myColorTsb( oBrw ) END TBROWSE oBrw:SetNoHoles() END WINDOW DoMethod( "test", "Activate" ) RETURN FUNCTION mySetTsb( oBrw ) WITH OBJECT oBrw :nColOrder := 0 :lNoChangeOrd := .T. :nWheelLines := 1 :lNoGrayBar := .F. :lNoLiteBar := .F. :lNoResetPos := .F. :lNoHScroll := .T. :lNoPopUp := .T. END WITH RETURN Nil FUNCTION myColorTsb( oBrw ) WITH OBJECT oBrw :nClrLine := RGB(180,180,180) // COLOR_GRID :SetColor( { 11 }, { { || RGB(0,0,0) } } ) :SetColor( { 2 }, { { || RGB(255,255,240) } } ) :SetColor( { 5 }, { { || RGB(0,0,0) } } ) :SetColor( { 6 }, { { |a,b,c| iif( c:nCell == b, -CLR_HRED , -RGB(128,225,225) ) } } ) :SetColor( { 12 }, { { |a,b,c| iif( c:nCell == b, -RGB(128,225,225), -RGB(128,225,225) ) } } ) END WITH RETURN Nil * ====================================================================== STATIC FUNCTION CreateDatos() LOCAL i, k := 1000, aDatos, aHead, aSize, aFoot, aPict, aAlign, aName aDatos := Array( k ) FOR i := 1 TO k aDatos[ i ] := { " ", ; // 1 i, ; // 2 ntoc( i ) + "_123", ; // 3 Date() + i, ; // 4 PadR( "Test line - " + ntoc( i ), 20 ), ; // 5 Round( ( 10000 -i ) * i / 3, 2 ), ; // 6 100.00 * i, ; // 7 0.12, ; // 8 Round( 100.00 * i * 0.12, 2 ), ; // 9 Round( 1234567.00 / i, 3 ), ; // 10 PadR( "Line " + StrZero( i, 5 ), 20 ), ; // 11 Date(), ; // 12 Time(), ; // 13 i % 2 == 0 } // 14 NEXT aHead := AClone( aDatos[ 1 ] ) // AEval(aHead, {|x,n| aHead[ n ] := "Head_" + hb_ntos(n) }) AEval( aHead, {| x, n| aHead[ n ] := "Head" + hb_ntos( n ) + ; iif( n % 2 == 0, CRLF + "SubHead" + hb_ntos( n ), "" ) } ) aFoot := Array( Len( aDatos[ 1 ] ) ) AEval( aFoot, {| x, n| aFoot[ n ] := n } ) // aFoot := .T. // яюфэюцшх хёЄ№ ё яєёЄ√ьш чэрўхэш ьш aPict := Array( Len( aDatos[ 1 ] ) ) // ьюцэю эх чрфртрЄ№, ЇюЁьшЁє■Єё  aPict[ 10 ] := "99999999999.999" // ртЄюьрЄюь фы  C,N яю ьрї чэрўхэш■ aSize := Array( Len( aDatos[ 1 ] ) ) // ьюцэю эх чрфртрЄ№, ЇюЁьшЁє■Єё  aSize[ 10 ] := aPict[ 10 ] // ртЄюьрЄюь яю ьрї чэрўхэш■ т ъюыюэъх aAlign := Array( Len( aDatos[ 1 ] ) ) // Єшя яюы  C - DT_LEFT aAlign[ 2 ] := DT_CENTER // D,L - DT_CENTER // N - DT_RIGHT aName := Array( Len( aDatos[ 1 ] ) ) AEval( aName, {| x, n| aName[ n ] := "MyName_" + hb_ntos( n ) } ) RETURN { aDatos, aHead, aSize, aFoot, aPict, aAlign, aName } [/pre2]

SergKis: PS Для колонки нумерации ARRAYNO надо поправить PICTURE '9999999' как у ORDKEYNO, забыл это сделать.

SergKis: PS Возможно, колонки нумерации надо назвать одинаково ? Названия колонок оставил, как использую сам.

SergKis: PS2 Еще можно добавить TsBrowse.ch (в определения команд выше добавить) [pre2] [ <emptyval: COLEMPTY,COLSEMPTY,EMPTYVALUE> ] ; [ <gotfocusel: GOTFOCUSSELECT,GOTFOCUSELECT> ] ; ... [ <.emptyval.> ], [ <.gotfocusel.> ] ) ... ... [/pre2] TsBrowse.prg [pre2] FUNCTION _DefineTBrowse ( ControlName, ParentFormName, nCol, nRow, nWidth, nHeight, ; ... lAdjust, lEmptyValToChar, lOnGotFocusSelect ) ... IF ! empty(lEmptyValToChar) AEval( oBrw:aColumns, {| oCol| oCol:lEmptyValToChar := .T. } ) ENDIF IF ! empty(lOnGotFocusSelect) AEval( oBrw:aColumns, {| oCol| oCol:lOnGotFocusSelect := .T. } ) ENDIF nW := 0 ... [/pre2] И в примере [pre2] DEFINE TBROWSE oBrw ; AT nY, nX ALIAS aArray WIDTH nW HEIGHT nH CELL ; FONT { "Norm", "Bold", "Bold" } ; BRUSH { 255, 255, 240 } ; HEADERS aHead ; COLSIZES aSize ; PICTURE aPict ; JUSTIFY aAlign ; COLNAMES aName ; COLNUMBER { 1, 40 } ; FOOTERS aFoot ; FIXED ADJUST COLEMPTY ; ENUMERATOR EDIT ; GOTFOCUSSELECT [/pre2]

gfilatov2002: SergKis пишет: Еще можно добавить Добавил все ваши предложения без изменений, пример работает нормально. Благодарю за помощь

gfilatov2002: Подготовил 2-й релиз-кандидат для новой сборки 20.04. Что нового: [pre2]  * Fixed: A correction for the font attributes handling in SplitButton control.            Contributed by Ivanil Marcelino <ivanil/at/linkbr.com.br>            (see demo in folder \samples\Advanced\SplitButton) ...   * Modified: PLAYER: the helpful functions were moved from the samples to            MiniGUI core:            - aSize := GetAviFileSize( <cFileName> ) ;            - aSize := GetAviResSize( <cResName> ).            Contributed by Grigory Filatov <gfilatov@inbox.ru>            (see demos in the folders \samples\Basic\PLAYER_1 and            \samples\Basic\ANIMATEDEMO_2) ...   * Updated: Adaptation FiveWin Class TSBrowse 9.0 in HMG: ...            Added the following optional clauses to DEFINE TBROWSE command:            - New: COLSEMPTY clause means to assign              oCol:lEmptyValToChar := .T.              for all columns of a TBROWSE control.            - New: GOTFOCUSSELECT clause means to assign              oCol:lOnGotFocusSelect := .T.              for all edited columns of a TBROWSE control.            - Enhanced: LOADFIELDS clause allows to load an array with using of              the method SetArrayTo() at startup of a TBROWSE control.            Contributed by Sergej Kiselev.            (see demo3.prg in folder \samples\Advanced\Tsb_Array_2)   * Updated: Harbour Compiler 3.2.0dev (SVN 2020-04-19 16:32).            Contributed by Grigory Filatov <gfilatov@inbox.ru>            (look at ReadMe.txt in folder \harbour) ...   * Updated: 'Cas_dbf' sample: added an enhanced demo with Tsbrowse search.            Contributed by Pierpaolo Martinello <pier.martinello[at]alice.it>            (see in folder \samples\Basic\Database) [/pre2]Благодарю за ваше внимание

alex_II: В TBrowse использую событие ON CHANGE, в котором некая функция выводит в STATUSBAR дополнительную информацию из текущей строки: ... DEFINE TBROWSE Br_omes AT h_tlbar,0 ALIAS (al) WIDTH w_br HEIGHT h_br ; BOLD CELLED ; ON CHANGE Form_oMes.StatusBar.Item(1) := f_corr(1,al) ... Если движение по строкам осуществляется клавиатурой, то все работает нормально, в STATUSBAR'е идет корректное отображение данных функцией f_corr(). Если перемещение производить мышью, указывая строку в TBrowse или использовать колесо прокрутки, то после отработки события ON CHANGE, данные в STATUSBAR'е исчезают, т.е поле очищается. В Browse в аналогичной ситуации все отрабатывает нормально.

Dima: alex_II Глянь пример C:\MiniGUI\SAMPLES\Advanced\Tsb_config\ и функцию FUNCTION MyChangeBrowse Вроде все работает и с мышкой

SergKis: gfilatov2002 Можно чуть поправить ? h_objmisc.prg [pre2] FUNCTION _wPost( nEvent, nIndex, xParam ) ... ENDIF ELSEIF HB_ISCHAR( nIndex ) oWnd := _WindowObj( nIndex ) nIndex := NIL ELSE oWnd := _WindowObj( _HMG_THISFORMNAME ) ENDIF ... FUNCTION _wSend( nEvent, nIndex, xParam ) ... ENDIF ELSEIF HB_ISCHAR( nIndex ) oWnd := _WindowObj( nIndex ) nIndex := NIL ELSE oWnd := _WindowObj( _HMG_THISFORMNAME ) ENDIF ... [/pre2]



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