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

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

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

Ответов - 137, стр: 1 2 3 4 5 6 7 All

gfilatov2002: gfilatov2002 пишет: Инсталляторы для других Си-компиляторов обновлю позже Выложил исталляторы сборки 16.10 для остальных Си-компиляторов (прямые ссылки есть на сайте библиотеки).

Andrey: Привет всем. На новой версии перестала работать команда: DEFINE BKGBRUSH newBrush PATTERN IN Form_9 BITMAP MyPASS48 Выдаёт ошибку: Tbrws_Test.prg(219) Error E0030 Syntax error "syntax error at 'PICTURE'" При сборке примера SAMPLES\Advanced\TsBrowse и SAMPLES\Applications\SysInfo тоже выдаёт ошибку: TestXls.prg(36) Error E0030 Syntax error "syntax error at 'BITMAP'" и SysInfo.prg(229) Error E0030 Syntax error "syntax error at 'BITMAP'" Это видел: * Changed: DEFINE BKGBRUSH command supports a reduced format now, i.e. - <DEFINE | CREATE> BKBRUSH <brush> [ STYLE ] PATTERN ; IN [ FORM | WINDOW ] <parent> PICTURE <image> - ADD BKBRUSH <brush> [ STYLE ] PATTERN ; TO [ FORM | WINDOW ] <parent> PICTURE <image> Замена на PICTURE: DEFINE BKGBRUSH Brush_1 PATTERN IN Form_1 PICTURE Skin\background.bmp ошибку не убирает...

gfilatov2002: Andrey пишет: На новой версии перестала работать команда Эта команда уже работает в исправленной сборке 16.10 Надо просто еще раз скачать и установить эту сборку заново...

Andrey: Да, в исправленной версии ошибка ушла ! Спасибо ! Но теперь потерялась функция: //DEFINE BKGBRUSH newBrush PATTERN IN &cFormName PICTURE cResFon // заливка фоном newBrush := SetWndBrush( cFormName, .F., 3, NIL, NIL, cResFon ) при сборке выдаёт: Error: Unresolved external '_HB_FUN_SETWNDBRUSH' referenced from W:\HB_PROJECT\....

gfilatov2002: Andrey пишет: Но теперь потерялась функция Она была переименована Петром в _SetWindowBKBrush() и является внутренней функцией. Т.е. прямое ее использование не рекомендуется, для этого есть соответствующая команда

Петр: Andrey пишет: Замена на PICTURE: DEFINE BKGBRUSH Brush_1 PATTERN IN Form_1 PICTURE Skin\background.bmp ошибку не убирает.. Ошибка в changelog Смотрите обновленный синтаксис в i_brush.ch [pre2]#xtranslate <dummy: CREATE,DEFINE> <dummy1: BKBRUSH,BKGBRUSH> <brush> ; [ STYLE ] <style: SOLID,HATCHED,PATTERN> ; [ [ HATCHSTYLE ] <hatch> ] ; [ <dummy3: BITMAP,IMAGE,PICTURE> <bitmap> ] ; [ COLOR <aColor> ] ; [ <nodelete: NODELETE> ] ; [ IN [ <dummy2: FORM,WINDOW> ] <window> ] ; =>[/pre2] и базовый пример SAMPLES\BASIC\WindowBackground\demo.prg SAMPLES\BASIC\WindowBackground_2\demo.prg тоже м.б. интересным

Andrey: gfilatov2002 пишет: Т.е. прямое ее использование не рекомендуется, для этого есть соответствующая команда Понял. Давно сделал, так и использовал в некоторых исходниках. Петр пишет: и базовый пример SAMPLES\BASIC\WindowBackground\demo.prg Поиск по DEFINE BKGBRUSH дал только 2 примера. А пример смотрел, там по другому уже. По синтаксису - понравилось лучше. Только в пример BASIC\WindowBackground_2\demo.prg нужно бы поставить кнопку смены заливки на лету !

Петр: Andrey пишет: Только в пример BASIC\WindowBackground_2\demo.prg нужно бы поставить кнопку смены заливки на лету ! Суть примера в применении классов CURSOR, BKBRUSH при создании окна (DEFINE WINDOW). Все остальное "рюшечки" - и кнопка, и таймер, и генератор псевдо-случайных чисел - все это, как правило, лишь отвлекает от сути. И да, писать качественные, содержательные примеры - это нужно уметь, у меня не всегда получается.

Andrey: Петр пишет: Все остальное "рюшечки" - и кнопка, и таймер, и генератор псевдо-случайных чисел - все это, как правило, лишь отвлекает от сути. Не всегда. Юзерам нравятся не унылые серые формы, а симпатичные. А кнопка смены заливки формы позволяет понять разработчику - как можно делать смену обоев на "лету" в окне. Я в своё время очень помучился с этим. Не помню уже чем и закончилось. И смена заливки тоже можно использовать для задачи - четко показывать юзеру смену задачи или меню. Петр пишет: И да, писать качественные, содержательные примеры - это нужно уметь, у меня не всегда получается. Классно получается ! Что интересно, всегда спросим !

Andrey: Теперь в новой версии при выходе из моей программы получаю ошибку: Error BASE/0 MiniGUI Err.: _ONDESTROYMENU Called from _ONDESTROYMENU(0) Called from RELEASEALLWINDOWS(2127) Called from _RELEASEWINDOW(2196) Called from DOMETHOD(4739) Called from MYEXIT(462) Called from (b)METRO_BUTTON(369) Строка 462: Form_Main.Release или выход из программы нужно делать всегда через - RELEASE WINDOW ALL ? Хотя поставил RELEASE WINDOW ALL - тоже выдаёт такую же ошибку. Откатился на 16.09 - ошибки нет.

Петр: Andrey пишет: Form_Main.Release Form_Main содержит меню или нет ? Andrey пишет: Called from RELEASEALLWINDOWS(2127) h_windows.prg замените сл. фрагмент [pre2] IF IsExtendedMenuStyleActive() _OnDestroyMenu ( GetMenu ( _HMG_MainHandle ) ) // Release OwnerDraw Main Menu ENDIF [/pre2] на [pre2] ... LOCAL hMenu ... hMenu := GetMenu ( _HMG_MainHandle ) IF IsExtendedMenuStyleActive() .AND. IsMenu( hMenu ) _OnDestroyMenu ( hMenu ) // Release OwnerDraw Main Menu ENDIF [/pre2] и, конечно, перекомпилируйте библиотеку

Петр: Andrey пишет: Откатился на 16.09 - ошибки нет. Видишь суслика? — Нет. — И я не вижу. А он есть!

gfilatov2002: Петр пишет: h_windows.prg замените сл. фрагмент Благодарю за помощь Добавил эту поправку в следующую сборку

Andrey: Петр пишет: Видишь суслика? — Нет. — И я не вижу. А он есть!

SergKis: gfilatov2002 Можно маленькую правку в TsBrowse[pre2] METHOD LoadFields( lEditable ) CLASS TSBrowse ... line: 7171 ElseIf cType == "D" cData := cValToChar( If( ! Empty( cData ), cData, Date() ) ) nSize := Int( GetTextWidth( 0, cData + " " , hFont ) ) + If( lEditable, 22, 0 ) ElseIf cType == "M" ... приходится постоянно править таким a := {}; AEval(oBrw:aColumns, {|oCol,nCol,val| val := Eval(oCol:bData), ; iif(Valtype(val)=="D", AAdd(a, nCol), ) }) i := Int( GetTextWidth( 0, " ", oBrw:hFont ) ) AEval(a, {|nCol| oBrw:aColumns[ nCol ]:nWidth += i } ) что бы дата и линии Tcb не наезжали друг на друга в колонке [/pre2]

Andrey: SergKis пишет: Можно маленькую правку в TsBrowse Поддерживаю. Меня тоже это раздражает.

Dima: Совсем не обязательно править сырец Делаю примерно так obrw:GetColumn("naim"):bPrevEdit := { |a, b, lLock| SetGetAdjustBrw(b,{2,0,-2,-3})...............

Andrey: Dima пишет: Совсем не обязательно править сырец Таблица по умолчанию должна быть правильной и красивой, без срезки колонок (как сейчас дата срезана) и т.д. Каждый раз не на исправляешься. Допилить всё можно, только времени своего жалко.

SergKis: Dima пишет Делаю примерно так obrw:GetColumn("naim"):bPrevEdit := { |a, b, lLock| SetGetAdjustBrw(b,{2,0,-2,-3})............... дело не в корректировке, на этапе отображения даты в колонки, правая цифра частично под линией

Dima: SergKis пишет: дело не в корректировке Точно. Сразу не сообразил

gfilatov2002: SergKis пишет: на этапе отображения даты в колонки, правая цифра частично под линией Благодарю за наводку! Поправил эту бяку следующим образом: nSize := Int( GetTextWidth( 0, cData + "B", hFont ) ) + If( lEditable, 30, 0 ) Мой пример для проверки см. ниже [pre2]#include "minigui.ch" #include "tsbrowse.ch" REQUEST SQLMIX Procedure Main() SET CENTURY ON DEFINE WINDOW Form1 ; AT 0,0 ; WIDTH (RR_GetDesktopArea()[4] * 0.99) ; HEIGHT (RR_GetDesktopArea()[3] * 0.91) ; TITLE "TsBrowse Array Test" ; MAIN ; FONT 'Tahoma' SIZE 9 END WINDOW Test() Form1.Center Form1.ACTIVATE Return *-------------------------------------------------------------- Function Test() local i := 0 local j := 0 Local aStr := {} local cAlias := "TEST" local cBrw := "BRW" PUBLIC &cBrw FOR j := 1 TO 30 AADD( aStr, {"F_" + NTOC(j) , "D", 8, 0 } ) NEXT rddSetDefault( "SQLMIX" ) dbCreate( cAlias, aStr,, .T., cAlias ) FOR i := 1 TO 100 (cAlias)->( DbAppend() ) FOR j := 1 TO 30 (cAlias)->( FieldPut(j, Date()) ) NEXT NEXT rddSetDefault( "SQLMIX" ) DEFINE TBROWSE &cBrw ; At 20, 5 ; ALIAS cAlias ; OF Form1 ; WIDTH (Form1.Width - 20) ; HEIGHT (Form1.Height - 70) ; COLORS { CLR_BLACK, CLR_BLUE } ; FONT "MS Sans Serif" ; SIZE 8 ; CELL; SELECTOR .T. END TBROWSE &cBrw:LoadFields( FALSE ) Return Nil[/pre2]

SergKis: Dima пишет obrw:GetColumn("naim"):bPrevEdit := { |a, b, lLock| SetGetAdjustBrw(b,{2,0,-2,-3})............... Может с учетом Edit, надо не пробел, а ширину цифры или буквы добавлять ?

Dima: SergKis пишет: Может с учетом Edit, надо не пробел, а ширину цифры или буквы добавлять ? Сергей это ты мне или Григорию адресовал ? Если мне , то этот фокус нужен что бы при входе и последующем выходе из режима редактирования не съедалась сетка грида , по периметру ячейки.

SergKis: Дима пишет Сергей это ты мне или Григорию адресовал ? Это пока я вопрос набирал, Григорий уже реализовал.

SergKis: gfilatov2002 Вспомнил (посмотрел), как делал в своей версии nSize := Int( GetTextWidth( 0, StrTran(CtoD(""), " ", "9")+"B", hFont ) ) + If( lEditable, 22, 0 )

SergKis: PS Уже заработался, у меня через xVal промежуточную, убирал и пропустил. cValToChar(xVal), т.е. nSize := Int( GetTextWidth( 0, StrTran(cValToChar(CtoD("")), " ", "9")+"B", hFont ) ) + If( lEditable, 22, 0 )

SergKis: gfilatov2002 можно пару добавок [pre2] Method AddSuperHead( nFromCol, nToCol, uHead, nHeight, aColors, l3dLook, uFont, uBitMap, lAdjust, lTransp, ; lNoLines, nHAlign, nVAlign ) CLASS TSBrowse ... uHead := "" If Valtype(nFromCol) == "C" nFromCol := ::nColumn(nFromCol) EndIf If Valtype(nToCol) == "C" nToCol := ::nColumn(nToCol) EndIf uFont := If( uFont != Nil, If( ValType( uFont ) == "O", uFont:hFont, uFont ), uFont ) If ! Empty( ::aColumns ) ... METHOD InsColumn( nPos, oColumn ) CLASS TSBrowse ... If oColumn == Nil // if no Column object supplied Return Nil // return nil insted of reference to object EndIf If Valtype(nPos) == "C" nPos := ::nColumn(nPos) EndIf If nPos < 1 nPos := 1 ... [/pre2]

gfilatov2002: SergKis пишет: можно пару добавок Не вопрос! Конечно, добавлю в следующую сборку

Dima: gfilatov2002 Какой то не понятный глюк в 16.10 под MINGW , если в сырце прописать REQUEST HB_LANG_RUWIN то программу не собрать , в 16.06 было все нормально. Под BCC55 в 16.10 этой проблемы нет.

gfilatov2002: Dima пишет: REQUEST HB_LANG_RUWIN то программу не собрать , в 16.06 было все нормально. Это происки Виктора в его Harbour 3.4 Попробуй добавить такой код [pre2] #include "hbextcdp.ch" #include "hbextlng.ch" PROCEDURE HB_LANG_RUWIN() ; RETURN [/pre2]и отпишись, если помогло

Dima: gfilatov2002 Собралось , но при запуске упало на этой строке HB_LANGSELECT( "RUWIN" ) ранее было все хорошо

gfilatov2002: Dima пишет: HB_LANGSELECT( "RUWIN" ) Попробуй вызывать эту функцию так HB_LANGSELECT( "RU" )

Dima: gfilatov2002 пишет: Попробуй вызывать эту функцию так Да так работает. Спасибо ! А почему такая разница между сборкой под BCC и MINGW ? Под BCC все работает как и ранее а под MINGW какие то костыли нужно ставить...... И еще вопрос , EXE собранные в 16.10 под MINGW , не жмутся UPX 3.91w , он их не понимает. Чем можно заменить UPX ?

Петр: Dima пишет: А почему такая разница между сборкой под BCC и MINGW ? Под BCC все работает как и ранее а под MINGW какие то костыли нужно ставить Можно я отвечу? 1) Это еще смотреть надо где костыль 2) MiniGUI изначально заточен под bcc, все остальное overhead А зачем их жать?

Dima: Петр пишет: 2) MiniGUI изначально заточен под bcc, все остальное overhead Может и так и стоит вернуться на него , но там есть ограничения на формат и размер файлов в ресурсах , если мне память не изменяет. Петр пишет: А зачем их жать? Кто его знает :) Вычитал в инете и натыкался не раз что лучше жать , так как по сети EXE грузится быстрее , я конечно понимаю что нужно еще время и на распаковку в памяти. С секундомером не мерял и просто принял за истину что так лучше.........

gfilatov2002: Dima пишет: Под BCC все работает как и ранее а под MINGW какие то костыли нужно Поправил установку русского, немецкого и т.д. языков для MinGw-сборок на базе форка Harbour 3.4 Кстати, для испанского, португальского и итальянского языков ничего исправлять не потребовалось (это объясняет, почему не было сообщений об этой проблеме в MinGw-сборках ранее)

Andrey: Всем привет ! Нашёл косяк... Создаём цветное окно, размещаем на нем цветные Label - всё работает отлично, но если перед окном ставим: SET EVENTS FUNCTION TO MYEVENTS Цвета у Label не меняются и TRANSPARENT не работает... Протестил и на MiniGUI\SAMPLES\Applications\RunCmd Вот так это выглядит: Как сделать, чтобы заработало ?

gfilatov2002: Andrey пишет: Как сделать, чтобы заработало ? В функции MyEvents() надо записать вызов Events() следующим образом Return Events ( hWnd, nMsg, wParam, lParam ) Отпишись, если это помогло

Andrey: gfilatov2002 пишет: Отпишись, если это помогло Да, помогло ! Спасибо ! Делал по твоему примеру: [pre2] otherwise Events ( hWnd, nMsg, wParam, lParam ) endcase Return (0) [/pre2]

Петр: Andrey пишет: Как сделать, чтобы заработало ? Напишите корректный обработчик MYEVENTS, не перехватывайте ненужные события, перенаправьте их стандартному обработчику HMG (если, что Events() называется). Опять задание для телепатов. P.S. Григорий таки делает успехи в этом деле.

sashaBG: для MINGW в i_lang.ch надо поправить 63 ряд на : #translate SET LANGUAGE TO BULGARIAN => _HMG_LANG_ID := ' ' ; REQUEST HB_LANG_BG ; HB_LANGSELECT("BG" ) ; InitMessages()

gfilatov2002: sashaBG Благодарю за помощь! Я уже сделал такое изменение в заголовочном файле i_lang.ch: #if ( __HARBOUR__ - 0 > 0x030200 ) #translate SET LANGUAGE TO GERMAN => _HMG_LANG_ID := ' ' ; #include "hbextlng.ch" ; HB_LANGSELECT( "DE" ) ; InitMessages() #translate SET LANGUAGE TO GREEK => _HMG_LANG_ID := ' ' ; #include "hbextlng.ch" ; HB_LANGSELECT( "EL" ) ; InitMessages() #translate SET LANGUAGE TO RUSSIAN => _HMG_LANG_ID := ' ' ; #include "hbextlng.ch" ; HB_LANGSELECT( "RU" ) ; InitMessages() #translate SET LANGUAGE TO UKRAINIAN => _HMG_LANG_ID := ' ' ; #include "hbextlng.ch" ; HB_LANGSELECT( "UA" ) ; InitMessages() #translate SET LANGUAGE TO POLISH => _HMG_LANG_ID := ' ' ; #include "hbextlng.ch" ; HB_LANGSELECT( "PL" ) ; InitMessages() #translate SET LANGUAGE TO CROATIAN => _HMG_LANG_ID := ' ' ; #include "hbextlng.ch" ; HB_LANGSELECT( "HR" ) ; InitMessages() #translate SET LANGUAGE TO SLOVENIAN => _HMG_LANG_ID := ' ' ; #include "hbextlng.ch" ; HB_LANGSELECT( "SL" ) ; InitMessages() #translate SET LANGUAGE TO CZECH => _HMG_LANG_ID := ' ' ; #include "hbextlng.ch" ; HB_LANGSELECT( "CS" ) ; InitMessages() #translate SET LANGUAGE TO BULGARIAN => _HMG_LANG_ID := ' ' ; #include "hbextlng.ch" ; HB_LANGSELECT( "BG" ) ; InitMessages() #translate SET LANGUAGE TO HUNGARIAN => _HMG_LANG_ID := ' ' ; #include "hbextlng.ch" ; HB_LANGSELECT( "HU" ) ; InitMessages() #translate SET LANGUAGE TO SLOVAK => _HMG_LANG_ID := ' ' ; #include "hbextlng.ch" ; HB_LANGSELECT( "SK" ) ; InitMessages() #else ... Прошу проверить его работу, ожидаю Ваш комментарий здесь... Дополнение. Но Ваш вариант предпочтительнее, поскольку в таком случае к приложению не подключаются ненужные языковые модули

gfilatov2002: Просто к сведению. Выпустил сегодня первый RC для новой сборки библиотеки. Полный список изменений см. ниже [pre2] * Fixed: Append a record in a Browse control (via <Alt+A>) worked also with the <Ctrl+Alt+A> and <Shift+Alt+A> hotkeys. Reported and contributed by a HMG user. Adapted for MiniguiEx by Grigory Filatov <gfilatov@inbox.ru> * Fixed: A standard ComboBox control loses an established font color with the defined DISPLAYEDIT clause. Reported by Marcelo A. L. Carli <malcarli@terra.com.br>. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo.prg in folder \samples\Basic\COMBO_4) * Fixed: Wrong font handling in a TimePicker control if the global command SET FONT TO <font>, <size> was defined. Problem was reported by Eladio Bravo <eladibravo@yahoo.es>. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo in folder \samples\Basic\StopEvents) * Modified: Added the global var hInstance internal handling in the all C-code. * New: Added the helpful C-function GetComCtl32DllVer() (see demo in folder \samples\Basic\MAINDEMO_(SYNTAX_I)) * New: Added the helpful C-function GetClassName( <hWnd> ) (see demo in folder \samples\Advanced\MoveDialogBox) * New: Added the internal C-functions GetWindowStyle( <hWnd> ) and IsWindowHasExStyle( <hWnd> ). Contributed by Petr Chornyj <myorg63@mail.ru> * Modified: Revised a ToolTip and ToolTip Custom Draw handling: - the function InitToolTipForRect() was renamed to InitToolTipEx(); - added the new C-functions TTM_Activate(), TTM_SetTipTextColor(), TTM_SetTipBKColor(), TTM_SetMaxTipWidth() and TTM_SetDelayTime(); - added the following new commands: SET TOOLTIP [ ACTIVATE ] <ON | OFF> OF <form> SET TOOLTIP [ ACTIVATE ] TO IsToolTipActive OF <form> Contributed by Petr Chornyj <myorg63@mail.ru> (see demos in folder \samples\Basic\ToolTip\) * Modified: The 'Type' property returns an user-friendly name instead of an internal core name for all controls. Suggested by Roberto Lopez <mail.box.hmg@gmail.com>. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo in folder \samples\Basic\FormStorage) * Modified: Added the global user variable for any purpose in the application. Usage: _HMG_MainCargo := <any value> ; MyVar := _HMG_MainCargo - function syntax: _GetMainCargo () := <value> - pseudo-OOP syntax: Main.Cargo := <value> Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo in folder \samples\Basic\Histogram) * Enhanced: The BTNTEXTBOX control supports an optional 'NoKeepFocus' clause. Requested by Pete D. <pete_westg/at/yahoo.gr>. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demos in folders \samples\Basic\BtnTextBox and \samples\Basic\BtnTextBox_2) * Changed: The function GetFontList() was moved from sample to MiniGUI core. Syntax: aFontList := ; GetFontList( [ hDC ], [ cFontFamilyName ], [ nCharSet ], [ nPitch ],; [ nFontType ], [ lSortCaseSensitive ], @aFontName ) where nCharSet may be ANSI_CHARSET, DEFAULT_CHARSET, SYMBOL_CHARSET etc. nPitch may be FONT_DEFAULT_PITCH, FONT_FIXED_PITCH, FONT_VARIABLE_PITCH nFontType may be FONT_VECTOR_TYPE, FONT_RASTER_TYPE, FONT_TRUE_TYPE Return aFontList is the multidimensional array { { cFontName, nCharSet, nPitchAndFamily, nFontType }, ... } Return by reference aFontName is the unidimensional array { cFontName1, cFontName2, ... } Based upon a contribution of Claudio Soto <srvet@adinet.com.uy> (see demo in folder \samples\Advanced\GetFonts) * Updated: HBPrinter library v.2.40: - Changed: using of the function GetFontList() from the Minigui core instead of a local implementation. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo in folder \samples\Basic\HBPrinter) * Updated: Socket library source code by Matteo Baccan: - Added SetReplyTo( cReplyTo ) method in tsmtp.prg. Contributed by Milomir Zecevic <zeka/at/bnbos.rs> (see in folder \Source\Socket) * Updated: Adaptation FiveWin Class TSBrowse 9.0 in HMG: - Changed: using of the header file mgdefs.h in the C-code; - Updated: minor corrections contributed by SergKis. * Updated: HbSQLite3 library: - update for using SQLITE3 version 3.15.1 (from 3.15.0). Contributed by Grigory Filatov <gfilatov@inbox.ru> * Updated: Harbour Compiler 3.2.0dev (SVN 2016-10-28 12:29): * Modified: hbrdd and hbrtl were compiled with a custom switch -gc0; * Updated: HbVpdf library source code (see in folder \Source\HbVpdf). Contributed by Grigory Filatov <gfilatov@inbox.ru> (look at ReadMe.txt in folder \harbour) * Updated: HMGS-IDE v.1.4.1 Project Manager and Two-Way Visual Form Designer. Contributed by Grigory Filatov <gfilatov@inbox.ru> (look for what's new at changelog.txt in folder \Ide) * New: 'Inter-process communication' sample. Based upon a contribution of Verchenko Andrey <verchenkoag@gmail.com>. Revised by Petr Chornyj <myorg63@mail.ru> (see in folder \samples\Basic\IPC) * New: 'Grid Columns Width' sample. Based upon a contribution of HMG user KDJ. Adapted for Minigui Extended by Grigory Filatov <gfilatov@inbox.ru> (see in folder \samples\Basic\Grid_ColumnsWidth) * New: 'MultiThread usage in HMG' sample. Based upon a contribution of Roberto Lopez <mail.box.hmg@gmail.com>. Enhanced by HMG user KDJ (see in folder \samples\Basic\MultiThread_2) * New: 'Show Password without the asterisks and vice versa' sample. Based upon a contribution of a HMG user. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see in folder \samples\Basic\ShowPassword) * New: 'Template application' sample. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see in folder \samples\Basic\Template) * New: 'MiniPrint: insert a last page number after printing' sample. Don't miss this very interesting example! Based upon a contribution of Claudio Soto <srvet@adinet.com.uy>. Adapted for Minigui Extended by Grigory Filatov <gfilatov@inbox.ru> (see in folder \samples\Advanced\MiniPrint2_2) * New: 'TSBrowse: The discovery of different databases on a single form' sample. Based upon a contribution of SergKis. Contributed by Verchenko Andrey <verchenkoag@gmail.com> (see in folder \samples\Advanced\Tsb_4bases) * New: 'HMG Assistant Utility' sample converts HMG Control Objects Alternate Syntax to @... Commands statement. Contributed by Danny A. del Pilar <dhaine_adp/at/yahoo.com>. Adapted for Minigui Extended by Grigory Filatov <gfilatov@inbox.ru> (see readme.txt in folder \Utils\FMG2PRG) * Updated: 'Form Storage' sample. Based upon a contribution of Petr Chornyj <myorg63@mail.ru> (see in folder \samples\Basic\FormStorage) * Updated: 'Print Pie Graph' sample: updated the data for October 2016. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo.prg in folder \samples\Basic\GraphPrint) * Updated: 'Mouse click on one picture which is divided into 3 parts' sample. Contributed by Petr Chornyj <myorg63@mail.ru> (see demos in folder \samples\Basic\Picture_Coords) * Updated: 'Enable/Disable ToolTip Messages' sample. Contributed by Petr Chornyj <myorg63@mail.ru> (see in folder \samples\Basic\ToolTip\ActivateTTips) * Updated: 'Combo Color' sample by Janusz Pora: added the new HMG colors. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see in folder \samples\Advanced\ComboColor) * Updated: 'Read a text from an another application' sample. Revised by Petr Chornyj <myorg63@mail.ru> (see in folder \samples\Advanced\ExternalApp_3) * Updated: 'Move a standard dialog box in the screen' sample. Revised by Petr Chornyj <myorg63@mail.ru> (see in folder \samples\Advanced\MoveDialogBox) * Updated: 'Run the executable file from an application resource' mixed sample. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see in folder \samples\Advanced\RCDataToFile) * Updated: 'Simple Phone Book' sample: - fixed a refreshing of the grids after a record deletion. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see in folder \samples\Applications\PHONE_BOOK) [/pre2]Благодарю за Ваше внимание

gfilatov2002: Опубликована новая сборка 16.11 для следующих С-компиляторов: - BCC 5.51 (Harbour и xHarbour) - BCC 10.1 (только Harbour) - XCC (xHarbour) Прямые ссылки на дистрибутивы есть на домашней странице библиотеки Благодарю за помощь Петра и Андрея Верченко Примечание. Сборки для компилятора MinGW 6.2.0 32/64 bits (только Harbour) теперь доступны только тем, кто материально поддерживал (и поддерживает) работу по обновлению/улучшению библиотеки Прекрасно понимаю, что квалифицированный программист без труда сделает такую сборку самостоятельно на основе других доступных сборок. Но...

Andrey: Привет всем. Нашёл небольшой баг в примере MiniGUI\SAMPLES\BASIC\COLORED_TAB Добавляем в строчку допустим 87 - SIZE 22, далее собираем пример, запускаем всё отлично. Меняем Style на любой - вверху присутствует строка выше Tab. На больших шрифтах НАДПИСЬ на Tab чуток пониже бы надо, а то сильно к верху прилеплена надпись.

gfilatov2002: Andrey пишет: Меняем Style на любой - вверху присутствует строка выше Tab. Если переключиться на следующую вкладку, а затем - вернуться обратно, то все снова отлично Надеюсь, что в реальной программе (а не в примере) не потребуется "на лету" менять стиль и шрифт цветного TABа

Andrey: gfilatov2002 пишет: Надеюсь, что в реальной программе (а не в примере) не потребуется "на лету" менять стиль и шрифт цветного TABа Согласен ! А как быть с этим: На больших шрифтах НАДПИСЬ на Tab чуток пониже бы надо, а то сильно к верху прилеплена надпись.

gfilatov2002: Andrey пишет: На больших шрифтах НАДПИСЬ на Tab чуток пониже бы надо Сейчас в ТАБе большим шрифтом BigFsize считается шрифт, если его размер больше 12. Значит, для шрифтов с размером больше 20, надо вводить обработку BigBigFsize, для шрифтов с размером больше 30, надо вводить обработку BigBigBigFsize и так далее. А какой смысл так усложнять код, если такие большие шрифты используются достаточно редко (обычно размер шрифта до 20)

Andrey: У меня в программе шрифты для большого экрана 22. Уже много заказчиков с большими экранами. Если не сложно, то добавь пожалуйста ещё для обработки BigBigFsize. Заранее большое спасибо !

gfilatov2002: Andrey пишет: добавь пожалуйста ещё Сделал, до размера шрифта 28 работает (но лучше не более 24)

Andrey: Спасибо !

Dima: gfilatov2002 пишет: Сборки для компилятора MinGW 6.2.0 32/64 bits (только Harbour) теперь доступны только тем, кто материально поддерживал (и поддерживает) работу по обновлению/улучшению библиотеки Печаль то какая.... Поделится кто то ссылкой в личку ?

Andrey: gfilatov2002 пишет: Прямые ссылки на дистрибутивы есть на домашней странице библиотеки Григорий, а у себя на сайте ты можешь сделать отдельную страничку под примеры не вошедшие в библиотеку ? У всех же есть и у тебя будет. Да и на сайт чаще заглядывать станут. Тем более что при поиске в Гугле допустим: minigui harbour sendmessage или: minigui Downloader выходит твоя библиотека. Вот и так же сделай пожалуйста страничку под примеры не вошедшие в библиотеку. Кандидаты на страничку: DBF_to_XLS - сделан (уже высылал) DBF_to_DOC - делаю DBF_to_PostgreSQL - делаю Народ, поддержите идею !!!

gfilatov2002: Andrey пишет: сделать отдельную страничку под примеры не вошедшие в библиотеку Благодарю за предложение! На сайте Минигуи Ex есть такая ссылка: https://groups.yahoo.com/neo/groups/harbourminigui/files которая описана следуюшим образом: Additional samples and help files are in the Files area of the Users group З.Ы. Плохой из меня web-мастер...

Andrey: Ссылка не работает, требует логина. Это не есть хорошо. Нужно примерно так: архив-проекта, краткое описание на инглише. Просто и со смыслом. Ну и чтобы тексты попали в индексацию Гугла. А в заголовках примерах я специально пишу на русском, чтобы искать можно было тоже на русском в гугле. Типа: * Передача сообщений между приложениями/процессами при помощи сообщения WM_COPYDATA * Transmission of messages between applications / processes using the WM_COPYDATA Верни пожалуйста в пример русский комментарий заодно.

sashaBG: после SET LAGUAGE TO BULGARIAN Функция NTOCMONTH(1) пробовал и на других и на Русском показывает крокозяблики. Помоему какието йероглфы печатает в остальных сборках все ок

gfilatov2002: sashaBG пишет: Функция NTOCMONTH(1) пробовал и на других и на Русском показывает крокозяблики Благодарю за сообщение! Видимо, существует какая-то нестыковка этого нового компилятора с Харбором для этой функции. Причем это касается только кириллических языков, для латинских языков эта функция работает правильно. В целом же, этот компилятор позволяет нормально интернационалмзмровать приложение для основных востребованных языков.

gfilatov2002: Всем, кому это интересно. Завершается подготовка новой "рождественской" сборки библиотеки 16.12 Полный список изменений см. ниже [pre2] * New: Added a basic support for the multi-monitors system: - New: CountMonitors(), EnumDisplayMonitors(), GetMonitorInfo(), MonitorFromPoint(), MonitorFromWindow(), WindowToMonitor() functions. Contributed by Petr Chornyj <myorg63@mail.ru> * Enhanced: The ButtonEx control supports the optional GRADIENTFILL <aGradient> clause where aGradient can contain any number of gradients and should be specified in the following way: { { nPart, nClrStart, nClrEnd }, { nPart, nClrStart, nClrEnd }, ... } nPart is to be specified as 0.25, 0.5, etc. and should aggregate to 1. The gradient may be specified as Horizontal or Vertical (default value). The BACKCOLOR clause is required and will determine the pressed gradient color which should be defined similar to aGradient array. Based upon a contribution of Petr Chornyj <myorg63@mail.ru>. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo4.prg in folder \samples\Basic\ButtonEx) * Modified: Revised a font management by DEFINE FONT <font> FONTNAME <name> ... command: - New: Added the helpful function GetFontParamByRef(). Syntax: lResult := GetFontParamByRef( GetFontHandle( "fnt" ), @n, @s, ... ) (see demo2.prg in folder \samples\Basic\Font) - Changed: The function GetFontList() uses new C-function EnumFontsEx() Contributed by Petr Chornyj <myorg63@mail.ru> * Modified: Revised a global events management by SET EVENTS FUNCTION TO <name> command: - Changed: The internal function SetEventsFunc() was renamed to SetGlobalListener() and added a verify of given funcname rightness; - New: Added the helpful functions GetGlobalListener() and ResetGlobalListener(). Contributed by Petr Chornyj <myorg63@mail.ru> * Changed: The C-function SendMessage( <hWnd>, ... ) will return an error when a first parameter is not a valid window handle. Contributed by Petr Chornyj <myorg63@mail.ru> * Updated: 'Bos Taurus' Graphics Library (see source in folder \Source\BosTaurus): - fixed the memory leaks in the various C-functions. Bug was reported by Marek Olszewski <mol/at/pro.onet.pl>. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo in folder \samples\Advanced\BTGraph) * Updated: HbSQLite3 library: - update for using SQLITE3 version 3.15.2 (from 3.15.1). Contributed by Grigory Filatov <gfilatov@inbox.ru> * Updated: HMGS-IDE v.1.4.2 Project Manager and Two-Way Visual Form Designer. Contributed by Grigory Filatov <gfilatov@inbox.ru> (look for what's new at changelog.txt in folder \Ide) * New: 'Ownerdraw ButtonEx control with colors support' sample. Based upon a contribution of HMG user KDJ. Adapted for Minigui Extended by Grigory Filatov <gfilatov@inbox.ru> (see in folder \samples\Basic\ButtonEx_2) * Updated: 'ADORDD' sample with using TBROWSE control for a search result show. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see in folder \samples\Basic\ADORDD_4) * Updated: 'Stainway HMG Demo' sample by Jacek Kubica. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo1.prg in folder \samples\Basic\ButtonEx) * Updated: 'Print Pie Graph' sample: updated the data for November 2016. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo.prg in folder \samples\Basic\GraphPrint) * Updated: 'Virtual Grid Usage' sample: - New: added export an array to DBF; - New: added export a DBF To Excel. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo2.prg in folder \samples\Basic\Grid_8) [/pre2]Благодарю за Ваше внимание

Andrey: Использую в программе: SET MULTIPLE OFF WARNING Можно ли вместо простой надписи "Программа уже запущена", написать так: Попытка запуска второй копии программы: C:\path\name.exe Отказано в запуске. Программа уже запущена ! А то юзера пугаются, им не вдомёк что уже программу запустили.

Vlad04: А то юзера пугаются, им не вдомёк что уже программу запустили. Объяснишь, после второго раза перестанут пугаться. А после третьего - уже остальным смогут объяснить.

SergKis: Andrey пишет Можно ли вместо простой надписи "Программа уже запущена", написать так: Можно, если поменять значения (см. h_init.prg)[pre2] // MISC MESSAGES (ENGLISH DEFAULT) _HMG_MESSAGE [1] := 'Are you sure ?' _HMG_MESSAGE [2] := 'Close Window' _HMG_MESSAGE [3] := 'Close not allowed' _HMG_MESSAGE [4] := 'Program Already Running' _HMG_MESSAGE [5] := 'Edit' _HMG_MESSAGE [6] := 'Ok' _HMG_MESSAGE [7] := 'Cancel' _HMG_MESSAGE [8] := 'Apply' _HMG_MESSAGE [9] := 'Pag.' [/pre2]

gfilatov2002: SergKis пишет: Можно, если поменять значения (см. h_init.prg) Поправил, теперь в следующей сборке можно будет использовать таким образом: [pre2]/* * MINIGUI - Harbour Win32 GUI library Demo * */ #include "minigui.ch" Function Main() SET LANGUAGE TO RUSSIAN _HMG_MESSAGE [4] := "Попытка запуска второй копии программы:" + CRLF + ; App.ExeName + CRLF + ; "Отказано в запуске." + CRLF + ; _HMG_MESSAGE [4] SET MULTIPLE OFF WARNING DEFINE WINDOW Form_Main ; TITLE 'Warning Demo' ; MAIN END WINDOW CENTER WINDOW Form_Main ACTIVATE WINDOW Form_Main Return Nil[/pre2]

Andrey: gfilatov2002 пишет: Поправил, теперь в следующей сборке можно будет использовать таким образом: Супер, то что нужно ! Спасибо большое !

gfilatov2002: Поздравляю всех с днем Святого Николая! Опубликована новая сборка 16.12 для следующих С-компиляторов: - BCC 5.51 (Harbour и xHarbour) - BCC 10.1 (только Harbour) - XCC (xHarbour) Прямые ссылки на дистрибутивы есть на домашней странице библиотеки Благодарю Петра за огромный вклад в эту сборку, без его помощи она бы не состоялась... Примечание. Сборки для компилятора MinGW 6.2.0 32/64 bits (только Harbour) доступны только тем, кто материально поддерживал (и поддерживает) работу по обновлению/улучшению библиотеки

Dima: gfilatov2002 пишет: Сборки для компилятора MinGW 6.2.0 32/64 bits (только Harbour) доступны только тем, кто материально поддерживал (и поддерживает) работу по обновлению/улучшению библиотеки А сколько стоит билетик ?

gfilatov2002: Dima пишет: сколько стоит билетик ? Сумма пожервования - на Ваше усмотрение (от 10 евро и выше). Важна не сумма, а сам факт помощи в развитии этого проекта

Andrey: Народ ! Давайте Григория поддержим !!! Классный продукт же получился. Не уж то жалко поделиться средствами, которые получаешь на созданном Григории софте ! Там в папке MiniGui есть файл PayPal Donate.url - вот по нему можно оплачивать. Или ещё из России пока действуют переводы в Украину по системе MoneyGram в любом салоне Связной. Там нужно только ФИО и отправить спец.код Григорию по эл.почте или смс-кой.

Veeha: Andrey пишет: Народ ! Давайте Григория поддержим !!! Классный продукт же получился. gfilatov2002 пишет: Благодарю Петра за огромный вклад в эту сборку, без его помощи она бы не состоялась... gfilatov2002 пишет: Сумма пожервования - на Ваше усмотрение (от 10 евро и выше). Обидно будет, если обойдём мимо Петра. Петр, а какие у вас ставки?

Петр: Veeha пишет: Обидно будет, если обойдём мимо Петра. Петр, а какие у вас ставки? ?! What is it? У меня нет возможности работать постоянно над проектом (и отвечать на вопросы пользователей, а куда без них, - тоже ). Поэтому для меня Minigui, что называется just for fun, почти .

Veeha: Петр пишет: У меня нет возможности работать постоянно над проектом (и отвечать на вопросы пользователей На счет работы над проектом ничего не скажу, но на вопросы пользователей вы отвечаете чаще, чем Григорий ... ИМХО ...Петр пишет: что называется just for fun Та ды и мы 'что называется just for fun'

Петр: Veeha пишет: Та ды и мы 'что называется just for fun' Этого не знаю, определяйтесь сами Veeha пишет: На счет работы над проектом ничего не скажу, но на вопросы пользователей вы отвечаете чаще, чем Григорий Наверное, вы имеете в виду этот форум и последнее время, но это не показатель. Так, что Григорий - software developer + software maintainer Я только committer в той части, которая меня интересует.

Andrey: Петр пишет: Я только committer в той части, которая меня интересует. Как бы заинтересовать вас сделать нормальную поддержку PNG в МиниГуи ? Я думаю, что многие бы и я в том числе, поддержали это начинание... 1 картинка PNG 128x128 заменит все форматы ICO, вывод на форму и т.д. А как упроститься работа с ресурсами... Сказочное сокращение рисование иконок из png и т.д. Очень просим помочь !!!

Dima: Andrey пишет: Очень просим помочь !!! Только виртуальным пивом тут не обойдется точно Проданатируй Петра.

Петр: Andrey пишет: 1 картинка PNG 128x128 заменит все форматы ICO, вывод на форму и т.д. Как вы это себе представляете? И почему в MS до этого не додумались

Andrey: Dima пишет: Только виртуальным пивом тут не обойдется точно Без вопросов... Петр пишет: Как вы это себе представляете? И почему в MS до этого не додумались Ну не совсем ясно выразился. Сейчас при показе PNG (прозрачный) на форме и кнопке края картинки выглядят слово их мышь поела - так Дмитрий написал. Это из-за плохой реализации показа.

Dima: Andrey Выложи пример , он был у тебя , там все было понятно , в чем проблема. Один вроде был на чистом С# и такой же на MG + Harbour

Петр: Andrey пишет: Это из-за плохой реализации показа. Реализация вполне стандартная. А вывод PNG (как я понял - с альфа каналом) сам по себе нестандартный. Если подключить GDI+ то 1) Такой вывод достаточно медленный (особенно заметно при больших заливках) 2) Достаточно ресурсоемкий. Но, конечно, картинка иногда может получиться вполне симпатичная, особенно если еще зеркальное отображение сделать В 90% из 100% лучшим способом будет сконвертировать понравившийся PNG в ICO/BMP. Подключение внешних графических библиотек не предлагаю

Andrey: Dima пишет: Выложи пример , он был у тебя Выкладываю - https://cloud.mail.ru/public/8jVN/pbpiYjsaw Вдобавок ко всему, если на форме поменяешь цвет, то надо PNG картинку удалить, а потом заново выводить объект в этом месте, что не есть - ОЧЕНЬ хорошо, для программиста.

Andrey: Петр пишет: В 90% из 100% лучшим способом будет сконвертировать понравившийся PNG в ICO/BMP. Вот и я этим и занимаюсь, картинками, а не программированием. Хочешь красивую прогу, делай ICO все форматы... задолбало. Об этом уже писали мой - Пост N: 4996, Дмитрия - Пост N: 5847 Dima пишет: Куда копать пока не понял. Нужно менять (допиливать) функцию. За вывод PNG на форму и кнопки в минигуи отвечают две функции: HBITMAP HMG_LoadImage( char * FileName ); HBITMAP HMG_LoadPicture( char * FileName, int New_Width, int New_Height, HWND hWnd, int ScaleStretch, int Transparent, long BackgroundColor, int AdjustImage ); Вот есть подсказки как нужно делать: https://msdn.microsoft.com/en-us/library/ee719902(v=VS.85).aspx https://code.logos.com/blog/2008/09/displaying_a_splash_screen_with_c_part_i.html Григорий написал: "Теперь дело за "МАЛЫМ" - найти сишника, который согласится конвертировать эту "радость" в среду Харбора." Вот пример для ICO - https://cloud.mail.ru/public/85DF/VqQteEoJp Вот пример для PNG - https://cloud.mail.ru/public/DMSe/n43rPEZnk А вот так выглядит PNG на C# - https://cloud.mail.ru/public/HuNC/xaHcVzLLz

Петр: Andrey пишет: Хочешь красивую прогу, делай ICO все форматы... Да вот представьте себе, именно такой совет дает msdn: хотите портабельную прогу для win, которая в случае чего и в безопасном режиме могла бы заработать - будьте добры. Andrey пишет: Нужно менять (допиливать) функцию. Знаете я не всегда смотрел за развитием MiniGUI. Но когда-то, после очередного перерыва, увидел, что в состав MiniGUI включили, частично правда, код из библиотеки BosTaurus - инициализацию и использование отдельных функций GDI+. Т.е. теперь любая программа с использованием MiniGUI не будет работать без установленной gdiplus.dll - это цена за использование PNG. Да, согласен, теперь уже тяжело найти машину где б gdiplus.dll не жила, но, поверьте, так было не всегда. И в C# поддержка PNG не была заложена изначально. Не знаю, как теперь, но сначала это делалось с помощью сторонних классов - оберток над тем же GDI+ Andrey пишет: Вот есть подсказки как нужно делать: Я все это (и не только это) видел еще когда писал пример Advanced\GdiPlus и до сих пор не уверен, нужно ли всю эту "радость" тянуть в MiniGUI.

Andrey: Пример \MiniGUI\SAMPLES\BASIC\DirSelect Команда - WAIT WINDOW "Scanning Directories" NOWAIT 1) Окошко есть, а надписи нет ! Почему ? 2) Ставлю такую же команду к себе в большой проект - не собирается, выдает ошибку: Source\form_news.prg(27) Error E0030 Syntax error "syntax error at 'WINDOW'" Почему ? Поставил пока так - WaitWindow( "Загружаю файл....", .T. )

Петр: Andrey пишет: Почему ? Не включен "hmg.ch" #include "hmg.ch" или #include "i_hmgcompat.ch"

Andrey: Петр пишет: Не включен "hmg.ch" #include "hmg.ch" или #include "i_hmgcompat.ch" Это по второму вопросу - маленький пример собирается, а в большом проекте в модуле где ставлю команду WAIT WINDOW "Загружаю файл...." NOWAIT в начале модуля есть #include "minigui.ch" Но не собирается проект, выдаёт ошибку. А по первому вопросу - есть надпись или нет ? У меня надписи нет.

Петр: Andrey пишет: А по первому вопросу - есть надпись или нет ? У меня надписи нет. У меня есть - поэтому на вопрос "Окошко есть, а надписи нет! Почему ?" у меня нет ответа. Кто-то другой может и ответит. Andrey пишет: в начале модуля есть #include "minigui.ch" Вам лень посмотреть hmg.ch и чем он отличается от minigui.ch?

Dima: Петр пишет: У меня есть - поэтому на вопрос "Окошко есть, а надписи нет! Почему ?" у меня нет ответа. Кто-то другой может и ответит. И у меня есть

Andrey: Dima пишет: И у меня есть Значит что-то с 8-кой у меня ! Спасибо Дима !

Andrey: Петр пишет: Вам лень посмотреть hmg.ch и чем он отличается от minigui.ch? Посмотрел minigui.ch, понял что там нет i_hmgcompat.ch . Спасибо !

Dima: gfilatov Просто инфа. Наблюдается проблема с HB_FUNC( TONE ) , прога виснет , при этом Audiodg.exe грузит проц на 70 % Вероятно как то не правильно установлены дрова на звук. Похожая проблема на том же компе и с TeamViewer , он при выходе не заканчивает сессию и повторно попасть на комп не возможно. Остановили службу Audio на компе и выключили звуки , проблема ушла.

gfilatov2002: Опубликована новая сборка 17.01 для следующих С-компиляторов: - BCC 5.51 (Harbour и xHarbour) - BCC 10.1 (только Harbour) - XCC (xHarbour) Базовый дистрибутив для BCC 5.5 лежит по адресу http://hmgextended.com/files/CONTRIB/hmg-17.01-setup.zip Прямые ссылки на другие дистрибутивы есть на домашней странице библиотеки Сборки для компилятора MinGW 6.3.0 32/64 bits для Harbour 3.4.0 доступны только тем, кто материально поддерживал (и поддерживает) работу по обновлению/улучшению библиотеки

Andrey: gfilatov2002 пишет: Опубликована новая сборка 17.01 Попробовал новую сборку и предыдущую. Вылет в уже рабочем проекте... Писал об этом Пост N: 5307 Проект на Версии 16.11 работает без ошибки. Как бы исправить версию 17.01 ?

Петр: Andrey пишет: Как бы исправить версию 17.01 ? Правьте свой код, в 17.01., (в прочем как и в 16.12.) добавлены проверки параметров, передаваемых в функции, всего лишь. Нет у вас ошибок - ничего вылетать не будет (теоретически ). Andrey пишет: Писал об этом Пост N: 5307 Вам там ответ дали, зачем плодить посты? Лучьше последуйте совету и отпишитесь, помогло или нет.

gfilatov2002: Andrey пишет: Проект на Версии 16.11 работает без ошибки. После добавления проверки параметров на С-уровне удалось обнаружить минимум две неточности/ошибки в PRG-коде ядра библиотеки. Так что теперь в последних сборках генерируется качественный код, что, естественно, повышает стабильность программы в целом. Поэтому от Вас потребуется ревизия существующего кода программы для использования самых свежих сборок

Andrey: Понял, спасибо !

Петр: gfilatov2002 пишет: Опубликована новая сборка 17.01 При установке на Win7 постоянно возникает предупреждение, что-то вроде, "Установка завершена некорректно. Переустановить продукт?", хотя вроде бы все устанавливается. Можно ли распространять библиотеку в виде простого архива (как для xhb)? Не рассматривался ли вопрос замены стандартного архиватора на 7z, с учетом как бесплатности, так и доступности данного архиватора?

Dima: Петр пишет: При установке на Win7 постоянно возникает предупреждение, что-то вроде, "Установка завершена некорректно. Переустановить продукт?", хотя вроде бы все устанавливается. То же самое.

gfilatov2002: Петр пишет: При установке на Win7 постоянно возникает предупреждение Возможно, проблема возникает при созданнии ярлыков в папке в меню "Пуск". Просто поставьте галку "Не создавать ярлыки". Петр пишет: Не рассматривался ли вопрос замены стандартного архиватора на 7z Архив для xhb создается с помощью архиватора 7zip Петр пишет: Можно ли распространять библиотеку в виде простого архива (как для xhb)? Конечно, можно (так и было на начальном этапе, когда сборка была экспериментальной). Но с использованием инсталлятора, на мой взгляд, более профессионально...

Петр: gfilatov2002 пишет: Просто поставьте галку "Не создавать ярлыки". Это не решает проблему. gfilatov2002 пишет: Но с использованием инсталлятора, на мой взгляд, более профессионально.. Да, но множество дистрибутивов имеют еще portable версию. А здесь два инсталлятора, только один упакован, другой нет. Т.е. налицо проблема инсталятора - некорректная установка (что именно не так?) и, как я понимаю, ложные срабатывания некоторых антивирусов. Такой подход вряд ли можно назвать профессиональным Не смертельно.

gfilatov2002: Петр пишет: здесь два инсталлятора, только один упакован, другой нет Мысль понял, для следующей сборки сделаю в архиве portable версию вместо упаковки инсталлятора. Благодарю за подсказку

krutoff: Да, у мне тоже пришлось откатиться на версию 16.11, т.к. ошибки возникли в TSBrowse на уровне исходного кода библиотеки.

gfilatov2002: Просто к сведению. Выпустил сегодня первый RC для новой сборки библиотеки. Полный список изменений см. ниже [pre2] * Fixed: The problem of a RadioGroup control with TRANSPARENT clause on a THEMED colored form. Reported by Dusko Radojcin. Contributed by Grigory Filatov <gfilatov@inbox.ru>. * Fixed: Memory leak in the C-function c_SetPicture() at WinXP and an image with alpha chanel. Contributed by Petr Chornyj <myorg63@mail.ru> * New: 'Vista Split Button' control was defined as User Component. A split button control is composed of either a button and a drop-down menu. Syntax: @ <row>,<col> SPLITBUTTON <name> [ OF <parent> ] ; [ WIDTH <w> ] [ HEIGHT <h> ] ; CAPTION <caption> ; ACTION <action> ; [ FONT <cFontName> ] ; [ SIZE <nFontSize> ] ; [ TOOLTIP <tooltip> ] ; [ <default: DEFAULT> ] Note: This control works properly at Windows Vista or later only. Based upon a contribution of Petr Chornyj <myorg63@mail.ru> (see demo in folder \samples\Advanced\SplitButton) * Modified: Programmatic change executes 'On Change' procedure for all controls certainly for compatibility with Official HMG. It is not guarded via the command SET PROGRAMMATICCHANGE OFF anymore. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo in folder \samples\Basic\Slider) * Updated: Modified SetFocus method of the 'Command Link' button for a proper handling of a focused look at a few buttons on a form. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo in folder \samples\Advanced\CommandLink) * Updated: Synchronized Extended HMG for compatibility with Official HMG 3.4.3 patch 1: - Fixed bug in GetLastActiveFormIndex() and GetLastActiveControlIndex() functions. Based upon a contribution of Claudio Soto <srvet@adinet.com.uy> (see demo in folder \samples\Basic\StopEvents) * New: HbZeeGrid library (see source in folder \Source\HbZeeGrid). ZeeGrid is an editable grid with a similar user interface to Microsoft's Excel spreadsheet. It is released as a compiled DLL and associated header file. You need only distribute the DLL file with your application. Based on the Original Work by David Hillard <david/at/kycsepp.com>. Contributed by Petr Chornyj <myorg63@mail.ru> (see demos in folder \samples\Advanced\HbZeeGrid) * Updated: Adaptation FiveWin Class TSBrowse 9.0 in HMG: - New: added handling of the variable :nStatusItem to TControl class. Contributed by SergKis. - Fixed: correction for compatibility with a last Minigui improvement. Problem was reported by russian user. * Updated: HbSQLite3 library: - update for using SQLITE3 version 3.17.0 (from 3.16.2). Contributed by Grigory Filatov <gfilatov@inbox.ru> * Updated: Harbour Compiler 3.2.0dev (SVN 2017-02-08 19:36): * Fixed: HbZipArc library source code (see in folder \Source\HbZipArc). Contributed by Grigory Filatov <gfilatov@inbox.ru> (look at ReadMe.txt in folder \harbour) * New: 'RadioGroup with multiline items and variable or fixed height' sample. Based upon a contribution of HMG user KDJ. Adapted for Minigui Extended by Grigory Filatov <gfilatov@inbox.ru> (see in folder \samples\Basic\RadioGroup_multiline) * New: 'Vista Split Button' sample. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see in folder \samples\Advanced\SplitButton) * Updated: 'ComboBox control with changing of ReadOnly property at runtime' sample. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo2.prg in folder \samples\Basic\COMBO_4) * Updated: MsgMenu sample by Carlos Britos <bcd12a[at]yahoo.com.ar>: - modified for compatibility with a last Minigui improvement. Problem was reported by Fischer Zsolt <fischer.zsolt[at]gmail.com>. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see in folder \samples\Basic\MsgMenu) * Updated: 'UPX shell' sample: added embedding of UPX.EXE inside application. Warning: You should place of upx.exe binary into a project folder for compatibility with this change. Based upon a contribution of Pete D. <pete_westg/at/yahoo.gr> (see in folder \samples\Applications\UPXshell) [/pre2] Благодарю за Ваше внимание

Петр: Andrey пишет: За вывод PNG на форму и кнопки в минигуи отвечают две функции: HBITMAP HMG_LoadImage( char * FileName ); HBITMAP HMG_LoadPicture( char * FileName, int New_Width, int New_Height, HWND hWnd, int ScaleStretch, int Transparent, long BackgroundColor, int AdjustImage ); За вывод отвечает HMG_LoadPicture(). HMG_LoadImage() отвечает за загрузку с использованием OLE или GDI+. В качестве дополнительного анонса: в MiniGUI добавлена ограниченная поддержка вывода картинок с альфа каналом. Пример приложения

Dima: Петр пишет: В качестве дополнительного анонса: в MiniGUI добавлена ограниченная поддержка вывода картинок с альфа каналом. Отлично смотрится

Andrey: Петр пишет: В качестве дополнительного анонса: в MiniGUI добавлена ограниченная поддержка вывода картинок с альфа каналом. Классная вещь ! Давно хотелось такого ! А в чем заключается ограничение ?

gfilatov2002: Опубликована новая сборка 17.02 для следующих С-компиляторов: - BCC 5.51 (Harbour и xHarbour) - BCC 10.1 (только Harbour) - XCC (xHarbour) Базовый дистрибутив для BCC 5.5 лежит по адресу http://hmgextended.com/files/CONTRIB/hmg-17.02-setup.exe Прямые ссылки на другие дистрибутивы есть на домашней странице библиотеки Ваши комментарии приветствуются

Alex_Cher: gfilatov2002 пишет: Опубликована новая сборка 17.02 Уважаемый Григорий, резко упало качество картинок расположенных в окне ... click here

gfilatov2002: Alex_Cher пишет: резко упало качество картинок Благодарю за сообщение! Как лечить: закомментируйте следующую экспериментальную строку в функции HMG_LoadPicture() из файла c_image.c hBitmap = LoadOLEPicturePath( ( const char * ) FileName ); и пересоберите библиотеку с помощью батника MakeLib.bat. Если такое лечение помогло, то обязательно сообщите здесь на форуме...

Alex_Cher: gfilatov2002 пишет: закомментируйте следующую экспериментальную строку в функции HMG_LoadPicture() Уважаемый Григорий, замечание устранено ... благодарю за оперативность ...

Петр: Alex_Cher пишет: резко упало качество картинок расположенных в окне Было бы не плохо, если бы вы выложили фрагмент кода, который выводит картинку, и вообще, замечательно было бы оригинал картинки посмотреть

Alex_Cher: Петр пишет: Было бы не плохо, если бы вы выложили фрагмент кода @ 0,30 IMAGE Image_1 PARENT Form_8 PICTURE _tec_dir + '/dat/Logotip.jpg' ; WIDTH 150 HEIGHT 100 TOOLTIP 'ПАО "АВТОВАЗ" 2014 ' click here

Andrey: Петр пишет: В качестве дополнительного анонса: в MiniGUI добавлена ограниченная поддержка вывода картинок с альфа каналом. Я использую формы цветные (цвет формы разный). Добавил в пример demo.prg цвет формы: [pre2] MAIN BACKCOLOR BLUE [/pre2] И красота примера накрылась.... Опять обгрызанные края у картинки ...

Петр: Andrey пишет: Опять обгрызанные края у картинки ... Что могу сказать.. Ждите мартовский релиз или апрельский, это как решит Григорий. Но думаю, что уже скоро все будет хорошо

Andrey: Петр пишет: Но думаю, что уже скоро все будет хорошо Отличная новость !

Alw Spencer: Приветстую всех gfilatov2002 пишет: Опубликована новая сборка 17.02 Ошибка компиляции примера: C:\MiniGUI\SAMPLES\BASIC\ExtractIcon\demo2.prg demo2.prg(66) Error E0030 Syntax error "syntax error at '@'"

gfilatov2002: Alw Spencer пишет: demo2.prg(66) Error E0030 Syntax error Запишите эту строку следующим образом: [pre] @ nRow, nCol BUTTON &cObj ; OF Form_1 ; ICON cIconSrc ; EXTRACT nI FLAT ; WIDTH 38 HEIGHT 38 ; ACTION SaveThisIcon( cIconSrc, Val( SubStr( This.Name, At( "_", This.Name ) + 1 ) ) ) [/pre]

gfilatov2002: Опубликована новая сборка 17.03 для следующих С-компиляторов: - BCC 5.51 (Harbour и xHarbour) - BCC 10.1 (только Harbour) Базовый дистрибутив для BCC 5.5 и Harbour лежит по адресу http://hmgextended.com/files/CONTRIB/hmg-17.03-setup.exe Прямые ссылки на другие дистрибутивы есть на домашней странице библиотеки Под заказ возможно сделать сборки для таких С-компиляторов: - MinGW 6.3.0 32-bit и Harbour 3.4.0dev; - MinGW 6.3.0 64-bit и Harbour 3.4.0dev; - PellesC 8.0 32-bit и xHarbour 1.2.3 build 10193.

SergKis: gfilatov2002 В Tsb_addrecord_3 demo.prg (line 359) прошла неточность (когда копировал на сайт), надо nCol := oBrw:nColumn("NAME")

gfilatov2002: SergKis пишет: demo.prg (line 359) прошла неточность Благодарю, поправил в архиве сборки на сайте

i3t4j6: gfilatov2002 пишет: Эта функция использовалась очень давно для поиска абонентов в базе данных по фамилии. Но начиная с версии 1702 происходит сбой - в Combobox введенный символ не отражается, хотя абонент находится. Посмотрите , пожалуйста, на текст. Что изменилось в сравнении с версией 1701? *---------------- Function Poisk2(oBrw) Local Buscar,nRow Buscar:=Form_2.Combo_02.DisplayValue If .Not. Empty(Buscar) If abon->(DbSeek(Buscar)) nRow:=oBrw:nLogicPos() Form_2.Brw_8.Value := Abon->(RecNo()) oBrw:Gopos(nRow) oBrw:Refresh( .T. ) oBrw:lHasChanged := .T. Else PlayBeep() EndIf EndIf Return Nil

Vlad04: Непонятки со сборкой 1703. Создаю новый проект в ДИЗАЙНЕРЕ. Добавляю НОВЫЙ МОДУЛЬ в проект- все нормально, добавляю НОВУЮ ФОРМУ - и всё вываливается И IDE закрывается .Старые проекты нормально открываются. В сборке 1702 такого не было

Vlad04: Что-то с IDE. Сборка 1703 с IDE от 1702 нормально работает

gfilatov2002: Vlad04 пишет: добавляю НОВУЮ ФОРМУ - и всё вываливается Благодарю за сообщение! Уже поправил эту ошибку Вы можете обновить HMGS-IDE через меню Help->Update

Vlad04: ок

Andrey: Последняя версия МиниГуи. Примеры MiniGUI\SAMPLES\BASIC\WAIT_WINDOW_2 Картинка на белом фоне ТЕПЕРЬ СЕРАЯ, вместо белой !!! Как исправить на белый цвет ? Заодно и в примерах нужно поправить.

gfilatov2002: Andrey пишет: Как исправить на белый цвет ? Замени класс WHITEBACKGROUND на STRETCH при определении Image_1 Andrey пишет: Заодно и в примерах нужно поправить. Уже сделал для новой сборки

Andrey: gfilatov2002 пишет: Замени класс WHITEBACKGROUND на STRETCH при определении Image_1 Заменил. Не помогло ! Осталось также.

Andrey: Исправил так: [pre2] DEFINE WINDOW &cFormName ; ....... BACKCOLOR {240,240,240} ;[/pre2] Окно стало сереньким как и картинка ... Зато фон окна совпадает с картинкой ! gfilatov2002 правь примеры для следующей версии.

gfilatov2002: Andrey пишет: Окно стало сереньким как и картинка Разобрался с этим... Дело в том, что Минигуи использует в качестве цвета фона окна по умолчанию системный цвет COLOR_BTNFACE. Для 7-й Винды этот цвет как раз {240,240,240}, а не чисто белый, как было сделано в примере. Думаю, что теперь вопрос закрыт Больше хороших новостей о следующей апрельской сборке: - выполнена адаптация библиотеки для работы с Си-компилятором VisualC 2015; - Петр показал, как использовать уже имеющуюся в библиотеке функцию LoadIconByName() для загрузки иконок различных размеров из одного многостраничного ICON файла (это то, чего не хватало в минигуи, Андрею ). Благодарю за Ваше внимание

Andrey: gfilatov2002 пишет: LoadIconByName() для загрузки иконок различных размеров из одного многостраничного ICON файла (это то, чего не хватало в минигуи, Андрею ). Это отличная новость !!! Но боюсь что BCC 5.51 не сможет проглотить этот формат иконок. У меня он вылетает на сборке с ошибкой. Единственную иконку различных размеров линковщик берёт только для MAIN окна... gfilatov2002 пишет: выполнена адаптация библиотеки для работы с Си-компилятором VisualC 2015; Красота ! Что там будет со сборкой .... Надо бы попробовать !!!

gfilatov2002: Andrey пишет: Что там будет со сборкой Сборка библиотеки и примеров осуществляется с помощью Харбор-утилиты hbmk2 Пример батника см.ниже [pre2]@echo off set OLDPATH=%PATH% set HMGPATH=c:\minigui set vccdir=C:\VC2015 SET LIB=%vccdir%\LIB;%vccdir%\SDK\LIB;%vccdir%\kit\lib\x86;%vccdir%\kit\lib\ucrt\x86 SET INCLUDE=%vccdir%\INCLUDE;%vccdir%\SDK\INCLUDE;%hdir%\mvc\include;%vccdir%\kit\include\ucrt;%vccdir%\kit\include\ucrt\sys;%vccdir%\kit\include\um SET PATH=%HMGPATH%\harbour\bin;%vccdir%\BIN;%vccdir%\SDK\BIN echo #define HMGRPATH %HMGPATH%\RESOURCES > _hmg_resconfig.h COPY /b %HMGPATH%\resources\minigui.rc+%1.rc+%HMGPATH%\resources\filler _temp.rc >>NUL hbmk2 %1 %2 %3 %4 %5 %6 %7 %8 %HMGPATH%\minigui.hbc -D__CALLDLL__ -q -warn- -run >build.log 2>&1 del _hmg_resconfig.h del _temp.* set HMGPATH= set PATH=%OLDPATH%[/pre2] Andrey пишет: Надо бы попробовать Напиши мне, пришлю ссылку на архив бетки, в котором есть исходники, примеры, Харбор и уже собранные библиотеки. Примечание. В качестве Си-компилятора здесь используется Command Line Visual C 2015 Compiler, который лежит на сайте http://whosaway.com (его размер около 374 MB)

Andrey: gfilatov2002 пишет: - выполнена адаптация библиотеки для работы с Си-компилятором VisualC 2015; Опять засада... Папка для Си-компилятора тоже называется MiniGui. Как ставить на диск С: одновременно для BCC и MSVC и ещё MinGW ? Может пора переделать структуру папок ?

gfilatov2002: Andrey пишет: Как ставить на диск С: одновременно для BCC и MSVC и ещё MinGW ? Это не серьезно Просто временно переименуйте (или переместите на другой диск) одноименные папки А после тестирования всегда можно все вернуть назад... Andrey пишет: Может пора переделать структуру папок ? Файлы конфигурации в минигуи - только для рабочего примера. Вы можете использовать переменные окружения set HMGPATH=c:\minigui set vccdir=C:\VC2015 в батнике buildapp.bat для настройки требуемой конфигурации

Haz: Григорий Просьба подправить код т.к. если ::nRowCount() < ::nLen игнорируется выполнение ::bChange С поправкой ниже все работает. * ============================================================================ * METHOD TSBrowse:PageDown() Version 9.0 Nov/30/2009 * ============================================================================ Примерно в строке :8555 [pre2] If nKeyPressed == Nil ::Refresh( ::nLen < nTotLines ) If ::bChange != Nil Eval( ::bChange, Self, VK_NEXT ) EndIf ElseIf nSkipped >= nLines ::DrawSelect() Else nKeyPressed := Nil ::DrawSelect() If ::bChange != Nil Eval( ::bChange, Self, VK_NEXT ) EndIf EndIf [/pre2]

gfilatov2002: Haz пишет: С поправкой ниже все работает Благодарю за помощь! Уже поправил

SergKis: gfilatov2002 Возможно, будет интересно, сделать возможность не задавать значения ControlName, ParentForm в функциях, сделав их по default _HMG_ThisControlName, _HMG_ThisFormName. Тогда упростится вызов их в событиях контролов. [pre2] h_ControlMisc.prg : ============= ... *-----------------------------------------------------------------------------* FUNCTION _GetValue ( ControlName, ParentForm, Index ) *-----------------------------------------------------------------------------* ... Default ControlName := _HMG_ThisControlName, ; ParentForm := _HMG_ThisFormName IF PCount() < 3 // было == 2 IF Upper ( ControlName ) == 'VSCROLLBAR' RETURN GetScrollPos ( GetFormHandle ( ParentForm ) , SB_VERT ) ELSEIF Upper ( ControlName ) == 'HSCROLLBAR' RETURN GetScrollPos ( GetFormHandle ( ParentForm ) , SB_HORZ ) ENDIF ... *-----------------------------------------------------------------------------* FUNCTION GetControlIndex ( ControlName, ParentForm ) *-----------------------------------------------------------------------------* // было LOCAL mVar := '_' + ParentForm + '_' + ControlName LOCAL mVar := '_' + iif( Empty(ParentForm ), _HMG_ThisFormName , ParentForm ) + ; '_' + iif( Empty(ControlName), _HMG_ThisControlName, ControlName ) IF __mvExist ( mVar ) RETURN __mvGet ( mVar ) ENDIF RETURN 0 ... и так далее по функциям с LOCAL mVar := '_' + ParentForm + '_' + ControlName h_Windows.prg : =========== ... *-----------------------------------------------------------------------------* FUNCTION GetFormIndex ( FormName ) *-----------------------------------------------------------------------------* // было LOCAL mVar := '_' + FormName LOCAL mVar := '_' + iif( Empty(FormName), _HMG_ThisFormName, FormName ) IF __mvExist ( mVar ) RETURN __mvGet ( mVar ) ENDIF RETURN 0 ... *-----------------------------------------------------------------------------* FUNCTION _ReleaseWindow ( FormName ) *-----------------------------------------------------------------------------* LOCAL b, i, FormHandle Default FormName := _HMG_ThisFormName b := _HMG_InteractiveClose ... [/pre2]

SergKis: SergKis пишет Тогда упростится вызов их в событиях контролов. Т.е. в блоках кода ACTION, GOT\LOST FOCUS, MOUSE..., и т.д. можно писать xVal := _GetValue() _SetValue(,, xVal) nInd := GetControlInex() hCnt := GetControlHandle() ... это облегчает писанину, особенно когда "дурит" препроцессор и не пропускает псевдо ООП команды у себя сделал еще вариант If hb_IsNumeric( ControlName) - то это уже готовый Index конттрола и макро получение индекса не выполняется, используя полученное значение. Но это, наверно, выходит за пределы "религии" hmg

gfilatov2002: SergKis пишет: это, наверно, выходит за пределы "религии" hmg Благодарю за Ваши предложения, но это действительно за пределами философии МиниГуи Кстати, выпустил сегодня pre-release апрельской сборки 17.04 Огромная благодарность Петру за все предложенные улучшения Си-кода ядра библиотеки

gfilatov2002: Опубликована новая сборка 17.04 для следующих С-компиляторов: - BCC 5.51 (Harbour и xHarbour) - BCC 10.1 (только Harbour) Базовый дистрибутив для BCC 5.5 и Harbour лежит по адресу http://hmgextended.com/files/CONTRIB/hmg-17.04-setup.exe Прямые ссылки на другие дистрибутивы есть на домашней странице библиотеки Под заказ возможно сделать сборки для таких дополнительных С-компиляторов: - MinGW 6.3.0 32-bit и Harbour 3.4.0dev; - MinGW 6.3.0 64-bit и Harbour 3.4.0dev; - MS VisualC 2015 32-bit and Harbour 3.2.0dev; - PellesC 8.0 32-bit и xHarbour 1.2.3 build 10193. Ожидаю Ваших комментариев Желаю мира и добра и благодарю за Ваше внимание



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