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

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

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

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

Andrey: Haz пишет: это решается заменой BRC32 на ресурс компилер от микрософт А как это сделать ? Поделись пожалуйста опытом...

Haz: Andrey пишет: Поделись пожалуйста опытом... а чего тут делиться BRCC32.EXE - компилятор ресурсов от Borland RC.EXE - тож самое от Microsoft ( можно любой другой брать т.к. RES он и в африке RES) Набираешь в консоли RC.EXE /? и читаешь справку по командной строке, потом правишь батник сборки проекта под синтаксис RC. PS Если использовать HBmk2 при использовании BCC32 вызывает его компилятор ресурсов, я когда-то правил исходник HBmk2 под синтаксис RC Можно наверное и свою обманку BRCC32 написать , которая принимает параметры командной строки и передает их RC

gfilatov2002: АНОНС * АНОНС * АНОНС * АНОНС * АНОНС Завершается подготовка к опубликованию новой версии 2.3.8, которая выйдет на следующей неделе. Кратко, что нового: - добавлен новый элемент управления - owner-draw ListBox со встроенными Checkbox-ами; - продолжена оптимизация использования внутренних функций с целью уменьшения ядра библиотеки; - небольшие изменения библиотеки MiniPrint; - обновлена unicode-сборка Харбора версии 3.2.0dev и библиотека SQLITE3 до версии 3.8.6dev; - добавлены новые и обновлены/исправлены некоторые старые примеры. Благодарю за внимание!


gfilatov2002: Новый релиз библиотеки для компилятора BCC выложил, как и обещал, на официальном сайте библиотеки по адресу: http://hmgextended.com/files/CONTRIB/hmg-2.3.8-setup.zip Также доступна полная сборка для компилятора MinGW по адресу: http://hmgextended.com/files/CONTRIB/hmg238-mingw.exe и компактный архив для свежей версии компилятора xHarbour http://hmgextended.com/files/CONTRIB/xhmg238_xhb10008.zip Желаю всем мира, добра и надежды!

Andrey: Григорий, спасибо БОЛЬШОЕ за твой огромный труд !

Haz: Григорий , возможно ли в TsBrowse HMG добавить новый метод ? ( себе добавляю его в новые сборки, но не удобно же ) На базе ::Resize() написал ::RewsizeWin() который позволяет динамически менять само окно TsBrows Вот сам метод * ============================================================================ * METHOD TSBrowse:ReSizeWin() * ============================================================================ METHOD ReSizeWin( nSizeType, nTop, nLeft, nWidth, nHeight ) CLASS TSBrowse Local /*nMin, nMax, nPage,*/ ; nTotPix := 0 MoveWindow ( ::oWnd:hWnd, nLeft, nTop, nWidth, nHeight, .T. ) ::nTop := nTop If Empty( ::aColSizes ) Return Nil EndIf AEval( ::aColSizes, {|n| nTotPix += n } ) If ::lEditing .and. ::aColumns[ ::nCell ]:oEdit != Nil SendMessage( ::aColumns[ ::nCell ]:oEdit:hWnd, WM_KEYDOWN, VK_ESCAPE, 0 ) EndIf If ! Empty( ::nAdjColumn ) ::nAdjColumn := Min( Len( ::aColumns ), ::nAdjColumn ) EndIf ::nRowPos := Min( ::nRowPos, Max( ::nRowCount(), 1 ) ) If ! Empty( ::nAdjColumn ) .and. nTotPix != nWidth ::aColumns[ ::nAdjColumn ]:nWidth := ; ::aColSizes[ ::nAdjColumn ] += ( nWidth - nTotPix ) EndIf ::Super:ReSize( nSizeType, nWidth, nHeight ) ::ResetVScroll() Return ::Refresh(.T.) Вот пример использования , бровс привязан к форме и при изменении размера фориы - меняется размер бровса #include "minigui.ch" #include "tsbrowse.ch" FUNC Main() Local aArray := { ; {'AAAAAAAAAAAAAAAA', 1, Date() }, ; {'BBBBBBBBBBBBBBBB', 2, Date() }, ; {'CCCCCCCCCCCCCCCC', 3, Date() }, ; {'DDDDDDDDDDDDDDDD', 4, Date() }, ; {'EEEEEEEEEEEEEEEE', 5, Date() }, ; {'FFFFFFFFFFFFFFFF', 6, Date() }, ; {'GGGGGGGGGGGGGGGG', 7, Date() } ; } Public oBrw DEFINE WINDOW Form_1 ; AT 0,0 ; WIDTH 400 ; HEIGHT 300 ; TITLE "TsBrowse ReSize Test" ; MAIN ; FONT 'Tahoma' SIZE 9; ON SIZE { || oBrw:ResizeWin( 0, ; GetProperty("Form_1", 'Row') + 5, ; GetProperty("Form_1", 'Col') + 5, ; GetProperty("Form_1", 'Width') - 17, ; GetProperty("Form_1", 'Height') - 45 ) } ; ON MINIMIZE { || oBrw:ResizeWin( 0, ; GetProperty("Form_1", 'Row') + 5, ; GetProperty("Form_1", 'Col') + 5, ; GetProperty("Form_1", 'Width') - 17, ; GetProperty("Form_1", 'Height') - 45 ) } ; ON MAXIMIZE { || oBrw:ResizeWin( 0, ; GetProperty("Form_1", 'Row') + 5, ; GetProperty("Form_1", 'Col') + 5, ; GetProperty("Form_1", 'Width') - 17, ; GetProperty("Form_1", 'Height') - 45 ) } ; DEFINE TBROWSE oBrw ; AT 5,5 ; OF Form_1 ; WIDTH GetProperty("Form_1", 'Width') - 17 ; HEIGHT GetProperty("Form_1", 'Height') - 45 ; FONT "Tahoma" ; SIZE 9 ; GRID oBrw:nAdjColumn := 1 oBrw:SetArray( aArray, .T. ) END TBROWSE END WINDOW ACTIVATE WINDOW Form_1 RETURN NIL

gfilatov2002: Haz пишет: возможно ли в TsBrowse HMG добавить новый метод ? Вынужден Вам отказать, поскольку новый метод практически повторяет уже существующий метод ::Resize() Вместо добавления нового метода предлагаю использовать простую функцию типа [pre2] FUNCTION ResizeWin( oBrw ) Local nTop := 5 Local nLeft := 5 Local nWidth := GetProperty("Form_1", 'Width') - 17 Local nHeight := GetProperty("Form_1", 'Height') - 45 MoveWindow( oBrw:oWnd:hWnd, nTop, nLeft, nWidth, nHeight, .T. ) oBrw:Resize( 0, nWidth, nHeight ) oBrw:ResetVScroll() oBrw:Refresh(.T.) RETURN NIL[/pre2]

Haz: Нет так нет gfilatov2002 пишет: предлагаю использовать простую функцию типа Почти так и делаю METHOD ReSizeWin( nSizeType, nTop, nLeft, nWidth, nHeight ) CLASS TSBrowse MoveWindow ( ::oWnd:hWnd, nLeft, nTop, nWidth, nHeight, .T. ) ::nTop := nTop ::Resize( nSizeType, nWidth, nHeight ) ::ResetVScroll() Return ::Refresh(.T.) PS без выделенной строки будет глюк с Get объектами если на форме не один бровс

Andrey: gfilatov2002 пишет: Local nWidth := GetProperty("Form_1", 'Width') - 17 Local nHeight := GetProperty("Form_1", 'Height') - 45 А зачем это делать ? На ХР будет один размер, на Win8 будет другой размер. Я уже пробовал. Использую теперь, то что SergKis посоветовал. STATIC FUNCTION MyResizeBrowse() LOCAL hWnd := GetFormHandle(ThisWindow) LOCAL nHStBar := GetWindowHeight(GetControlHandle('STATUSBAR', hWnd)) // высота StatusBar nHStBar := 0 // если не используется StatusBar oBrw_5:Move( oBrw_5:nLeft ,oBrw_5:nTop , GetClientWidth(hWnd)-2, ; GetClientHeight(hWnd) - oBrw_5:nTop - nHStBar, .T.) oBrw_5:Paint() // Иначе не перерисовываются вертикальные разделители у бровса CorrectionFirstLast("oBrw_5") MyToolBar(.T.) //----- перерисовать свои кнопки ---- Return nil Может и не прав, но вроде работает. Поправьте меня, если не прав. Может быть лучше эти функции (GetClientWidth() и GetClientHeight() ) добавить в библиотеку, чтобы стандартными были ?

SergKis: Andrey ошибка LOCAL nHStBar := GetWindowHeight(GetControlHandle('STATUSBAR', hWnd)) надо LOCAL nHStBar := GetWindowHeight(GetControlHandle('STATUSBAR', <здесь имя окна, а не hWnd>))

Andrey: SergKis пишет: надо LOCAL nHStBar := GetWindowHeight(GetControlHandle('STATUSBAR', <здесь имя окна, а не hWnd>)) А можно вместо <здесь имя окна, а не hWnd> поставить ThisWindow или _HMG_ThisFormName ?

SergKis: Andrey пишет:А можно вместо если вызов MyResizeBrowse() происходит между DEFINE WINDOW ... END WINDOW то да, ThisWindow.Name или _HMG_ThisFormName, если после END WINDOW до ACTION ..., тогда не через эти переменные.

gfilatov2002: АНОНС * АНОНС * АНОНС * АНОНС * АНОНС Завершается подготовка к опубликованию новой версии 2.3.9, которая выйдет на следующей неделе. Кратко, что нового: - переработана и дополнена Error-система библиотеки; - теперь команда PRINT IMAGE в библиотеке MiniPrint поддерживает вывод PNG картинок; - небольшие изменения в библиотеке WinReport от автора; - обновлена HMGS-IDE до версии 1.2.3; - обновлена unicode-сборка Харбора версии 3.2.0dev и библиотека SQLITE3 до финальной версии 3.8.6; - добавлены новые и обновлены/исправлены некоторые старые примеры. Благодарю за внимание!

Andrey: gfilatov2002 пишет: - переработана и дополнена Error-система библиотеки; А чуть подробней можно описать ?

Dima: Andrey Подробнее будет видимо в ChangeLog.txt

gfilatov2002: Dima пишет: Подробнее будет видимо в ChangeLog.txt Да, именно так [pre2] * Enhanced: The following additional information is available in the ErrorLog file at the program crash: - system params; - environmental params; - detailed work area items (it may be empty section); - internal error handling params; - list of available Public and Private variables (it may be empty). Based upon a Harbour xhb contribution. The old behaviour is available also via using of the command SET SHOWDETAILERROR OFF on top of a main module. Requested by Honorio A. S. Almeida <info2000informa@ig.com.br>. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo in folder \samples\Basic\ShowDetailError) [/pre2]

gfilatov2002: Новый релиз библиотеки для компилятора BCC выложил, как и обещал, на официальном сайте библиотеки по адресу: http://hmgextended.com/files/CONTRIB/hmg-2.3.9-setup.zip Также доступна полная сборка для компилятора MinGW по адресу: http://hmgextended.com/files/CONTRIB/hmg239-mingw.exe и компактный архив для свежей версии компилятора xHarbour http://hmgextended.com/files/CONTRIB/xhmg239_xhb10015.zip Благодарю за внимание

Andrey: Пересобрал несколько программ. Полет нормальный !

gfilatov2002: Andrey пишет: Полет нормальный ! Дополнительно в этой сборке добавлен второй параметр в функцию _AutoAdjust(): - это массив с оригинальным разрешением, при котором разрабатывались формы в приложении. Это удобно использовать для автоматического масштабирования элементов управления в окнах на компьютере пользователя при старте приложения. Для проверки я использовал следующий простой пример, который распахивает окно на весь экран (при этом для дизайна формы использовалось минимальное разрешение 640 х 480): [pre2] #include "minigui.ch" Function Main SET AUTOADJUST ON DEFINE WINDOW Form_1 ; TITLE 'Hello World!' ; MAIN ; ON INIT _AutoAdjust( This.Handle, {640, 480} ) @ 200,10 LABEL Label_1 ; WIDTH 620 HEIGHT 24 ; VALUE 'Sample text' ; FONT 'Arial' SIZE 12 CENTERALIGN // здесь на форме располагаются другие элементы управления END WINDOW ACTIVATE WINDOW Form_1 Return Nil [/pre2]

Andrey: gfilatov2002 пишет: Это удобно использовать для автоматического масштабирования элементов управления в окнах на компьютере пользователя при старте приложения. Не понятно как это использовать ? Вот например есть готовое меню для программы - https://cloud.mail.ru/public/ad39650e5d8a%2FButtonEx_OnMouseHover2.7z Как это меню переделать для всех (основных) разрешений экрана. И второй вопрос: по тексту программы - не могу сделать автоопределение имени объекта для контекстного меню. Как его сделать, чтобы понятно было в контекстном меню - какой объект сейчас редактируется ?



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