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

gfilatov2002: Опубликована новая сборка 21.11 Благодарю за помощь Сергея Киселева и Андрея Верченко Желаю всем доброго здоровья и успеха в делах P.S. Обновил также Unicode архив.

Dima: Andrey А сырец то смотрел ? [pre2] #define MG_VERSION "Harbour MiniGUI Extended Edition 21.10.3 (" *-----------------------------------------------------------------------------* FUNCTION MiniGuiVersion( nVer ) *-----------------------------------------------------------------------------* #ifndef __XHARBOUR__ LOCAL cVer := MG_VERSION + hb_ntos( hb_Version( HB_VERSION_BITWIDTH ) ) + "-bit)" #else LOCAL cVer := MG_VERSION + iif( IsExe64(), "64", "32" ) + "-bit)" #endif LOCAL anOfs cVer += " " + HMG_CharsetName() anOfs := { Len( cVer ), 40, 15 } hb_default( @nVer, 0 ) IF nVer > 2 nVer := 2 ELSEIF nVer < 0 nVer := 0 ENDIF RETURN Left( cVer, anOfs[ nVer + 1 ] ) [/pre2]

Andrey: Dima пишет: А сырец то смотрел ? Для чего ? Мне надо в коде версию сравнивать. Допустим новый пример MiniGUI\SAMPLES\Advanced\Tsb_5Win не будет работать в старых версиях МиниГуи. Отсюда будет не заслужанные восклицания, типа автор не отладил примеры. Т.е. примерно так хотелось бы [pre2] cMsg := "ВНИМАНИЕ !;" cMsg += "Для сборки требуется версия МиниГуи 21.11 или выше !;;" IF MiniGuiVersionNumba() < 211100 AlertStop(cMsg,"Checking the MiniGui version") ENDIF Вот сделал пока свою функцию так: FUNCTION MiniGuiVersionNumba() LOCAL cRegEx, cVer, aVal, nVer := 0, cVal := MiniGuiVersion() cRegEx := "\d+\.\d+[\d.]*" aVal := HB_RegEx(cRegEx, cVal) IF LEN(aVal) > 0 cVal := aVal[1] cVer := CHARREM( '.', cVal ) cVer := PADR(cVer,6,'0') nVer := VAL( cVer ) ENDIF RETURN nVer[/pre2] Но каждый раз таскать в примеры свою функцию не очень то и приятно. Хотя она тоже не постоянно требуется.


SergKis: Andrey Чем не нравится Harbour MiniGUI Extended Edition 21.11.0 (32-bit) ANSI не пойму ? 0 - базовая сборка, будет update 1 => 21.11.1

SergKis: Andrey пишет Это так должно быть или опечатка ? Думаю, что ты что то напутал с установками по каталогам или в файле BATCH\minigui.cfg пред. версия выдает Harbour MiniGUI Extended Edition 21.10.3 (32-bit) ANSI

SergKis: Так я уже поставил и пробую новую версию от сегодня а есть еще каталоги со старой версией сборка, там свою строку версии получаем

Andrey: SergKis пишет: пробую новую версию от сегодня Опять недосмотрел ...

Andrey: gfilatov2002 пишет: Опубликована новая сборка 21.11 Собрал свои проги. Полёт нормальный. Обратите внимание на новый пример MiniGUI\SAMPLES\Advanced\Tsb_5Win

gfilatov2002: Andrey пишет: Полёт нормальный Благодарю за подтверждение

SergKis: Andrey пишет Вот сделал пока свою функцию так: FUNCTION MiniGuiVersionNumba() Можно проще в свой ch (prg) файл добавить[pre2] #xtranslate MiniGuiVersionChar() => Substr( MiniGuiVersion(), At(".", MiniGuiVersion()) - 2, 8 ) #xtranslate MiniGuiVersionNumba() => Int( Val( MiniGuiVersionChar() ) * 10000 + Val( Right(MiniGuiVersionChar(), 2) ) ) [/pre2] использовать ? "ver. =", MiniGuiVersion() ? "v.m. =", MiniGuiVersionChar() ? "numba =", MiniGuiVersionNumba()

Andrey: SergKis пишет: Можно проще в свой ch (prg) файл добавить Отличное решение !

krutoff: Ситуация такая: в ONINIT формы хочу передать фокус конкретному контролу. Если окно MODAL -> все Ok, если CHILD -> то фокус всегда на 1-м контроле. Раскопал: h_windows.prg строка 1536 -> этот блок всегда возвращает взад (на 1-й контрол): IF _SetFocusedSplitChild( i ) == .F. _SetActivationFocus( i ) ENDIF В модальном окне (строка 1513 ....) такого блока нет и поэтому SetFocus в ONINIT отрабатывает. Закоментировал этот блок - и все Ok. Можно ли блок удалить (строка 1536) ?

SergKis: krutoff попробуйте [pre2] SET OOP ON ... DEFINE WINDOW ... TOPMOST ; ON INIT ( This.Topmost := .F., _wPost(0) ) ... (This.Object):Event( 0, {|| This.<контрол>.SetFocus } ) ... [/pre2]

SergKis: gfilatov2002 Как то не закончено с new ф-ями: GetDesktopRealTop() GetDesktopRealLeft() GetDesktopRealWidth() GetDesktopRealHeight() в однобайтной версии hmg нет GetDesktopRealTop(), GetDesktopRealLeft() в unicode версии hmg нет GetDesktopRealTop(), GetDesktopRealLeft(), GetDesktopRealWidth(), GetDesktopRealHeight() Пример unicode https://TransFiles.ru/imyut запуск с параметром Mode : demo.exe 1 demo.exe 2 demo.exe 3 demo.exe Использование новых ф-ий лучше чем Sys.ClientWidth и Sys.ClientHeight

Петр: SergKis пишет: в однобайтной версии hmg нет GetDesktopRealTop(), GetDesktopRealLeft() А так ли они нужны? SergKis пишет: Использование новых ф-ий лучше чем Sys.ClientWidth и Sys.ClientHeight Чем?

gfilatov2002: SergKis пишет: в однобайтной версии hmg нет GetDesktopRealTop(), GetDesktopRealLeft() Уже добавил эти функции с использованием команды #xtranslate в заголовок hmg.ch

SergKis: Петр пишет Чем? Делаем в примере (остальные оставляем как есть)[pre2] FUNCTION wRu866() ... IF App.Cargo:nMode > 0 This.Row := 0 //GetDesktopRealTop() This.Col := 0 //GetDesktopRealLeft() This.Width := Sys.ClientWidth //GetDesktopRealWidth() This.Height := Sys.ClientHeight //GetDesktopRealHeight() //This.Maximize ENDIF ... [/pre2] Запускаем demo.exe 1 У меня win10 pro 14" монитор справа и снизу ~15 pixel отступы, почти в ширину VScrollBar-а Запускаем demo.exe 2 или 3 Со всех сторон есть зазор ~ 2-3 pixel А так ли они нужны? Наверно, так же как GetWindowRow(hwnd), GetWindowCol(hwnd) GetClientRow(hwnd), GetClientCol(hwnd) т.е. при их наличии, если вдруг, TaskBar окажется не внизу, то что то получим в результате

Петр: Поюзайте MiniGUI\SAMPLES\BASIC\Multi_Monitor несколько раз, каждый раз меняя позицию TaskBar. И свой пример попробуйте на системе с несколькими мониторами. SystemParametersInfo( SPI_GETWORKAREA..) работает с PRIMARY дисплеем.

SergKis: gfilatov2002 пишет Уже добавил эти функции Тут тоже надо поправить и добавить [pre2] #translate <p:System,Sys>.ClientRow => #translate <p:System,Sys>.ClientCol => #translate <p:System,Sys>.ClientWidth => ( GetDesktopWidth () - GetBorderWidth () ) #translate <p:System,Sys>.ClientHeight => ( GetDesktopHeight() - GetBorderHeight() - GetTaskBarHeight() ) [/pre2]

gfilatov2002: SergKis пишет: Тут тоже надо поправить и добавить Сделал Благодарю за подсказку



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