Готовится к опубликованию новая сборка №48, которая выйдет в конце недели. Если у Вас есть интересные наработки для включения в новый релиз, то сейчас самое удобное время для их отправки мне
Кратко, что нового:
- исправление обнаруженных ошибок и неточностей кода; - новый класс HEADERIMAGE для Grid и Browse; - свойство Address в Hyperlink может теперь открывать папку или файл на диске; - добавлен NOTABSTOP класс для Browse; - поддержка пользовательских компонентов (заимствована из оффициального релиза); - расширения и исправления в библиотеках TsBrowse и PropGrid; - обновлены сборки Харбор и HMGS-IDE; - новые и обновленные старые примеры (как обычно ).
что бы не делать доп. переменных, а использовать :cargo колонки, например (от Андрея):
Да, это очень удобно получается. Загружаешь в массив короткий справочник типа:
{1, "В офисе "} {2, "отданы лично в руки "} {3, "отданы Посыльному "}
А потом бровс сам показывает вместо кодов нужные наименования через функцию:
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
Ну а в oCol:bPrevEdit - показ выбора из этого массива SelectWho(ob, oc:Cargo) и потом запись в базу WriteColum4(ob).
Что-то форум потерял предыдущую тему. Не понятно будет о чем речь идёт...
SergKis
постоянный участник
Пост N: 3075
Зарегистрирован: 17.02.12
Отправлено: 25.02.20 15:08. Заголовок: Andrey пишет Ну а в ..
Andrey пишет
цитата:
Ну а в oCol:bPrevEdit - показ выбора из этого массива SelectWho(ob, oc:Cargo)
Можно упростить
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) ...
SergKis
постоянный участник
Пост N: 3076
Зарегистрирован: 17.02.12
Отправлено: 25.02.20 15:58. Заголовок: PS массив получить т..
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
moderator
Пост N: 1660
Зарегистрирован: 11.02.10
Отправлено: 28.02.20 10:58. Заголовок: Всем кому это интересно
Снова обновил сборку 20.01 (Update 7) с учетом последних наработок
Базовый дистрибутив для BCC 5.8.2 находится по адресу
Отправлено: 01.03.20 14:54. Заголовок: Из замеченного, если..
Из замеченного, если в версии bcc101 подменить библиотеки hblang.lib hbcpage.lib от BCC 5.8.2 то установка русского языка отрабатывает нормально, включая обработку ошибок. На некоторых версиях ОС проявляется ошибка ilink32, "лечение" описано тут click here может кому то пригодится.
gfilatov2002
moderator
Пост N: 1661
Зарегистрирован: 11.02.10
Отправлено: 26.03.20 11:42. Заголовок: Всем кому это интересно
Завершена подготовка новой сборки 20.03, которая будет опубликована на следующей неделе.
* 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.
В марте этого года исполнилось ровно 15 лет с момента начала разработки этой версии библиотеки
Выпуск последующих обновлений будет зависеть от активности и поддержки со стороны пользователей ее разработки.
Отдельная благодарность - Андрею Верченко, Диме (админу этого форума) и Саше Савову из Болгарии за их материальную поддержку
gfilatov2002
moderator
Пост N: 1664
Зарегистрирован: 11.02.10
Отправлено: 01.04.20 09:56. Заголовок: Всем кому это интересно
Сделал "тихое" обновление сборки 20.03 после повторного исправления следующего изменения:
цитата:
* Enhanced: Splitboxed TOOLBAR control supports the changing of a 'Caption' property at runtime.
Проблема была указана на английском форуме библиотеки. Если вы не используете данную возможность в своей программе, то это обновление является необязательным.
gfilatov2002
moderator
Пост N: 1675
Зарегистрирован: 11.02.10
Отправлено: 16.04.20 14:54. Заголовок: Всем кому это интересно
Подготовил 1-й релиз-кандидат для новой сборки 20.04 со следующим списком изменений (кратко): Скрытый текст
* 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.
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
Отправлено: 16.04.20 20:25. Заголовок: SergKis пишет: Еще ..
SergKis пишет:
цитата:
Еще можно добавить
Добавил все ваши предложения без изменений, пример работает нормально. Благодарю за помощь
gfilatov2002
moderator
Пост N: 1678
Зарегистрирован: 11.02.10
Отправлено: 21.04.20 10:48. Заголовок: Всем кому это интересно
Подготовил 2-й релиз-кандидат для новой сборки 20.04. Что нового: Скрытый текст
цитата:
* 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)
Благодарю за ваше внимание
alex_II
Пост N: 149
Зарегистрирован: 12.07.06
Отправлено: 22.04.20 06:46. Заголовок: TBROWSE vs мышь
В 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 в аналогичной ситуации все отрабатывает нормально.
Все даты в формате GMT
3 час. Хитов сегодня: 108
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет