Отправлено: 07.01.15 18:29. Заголовок: Чего мне не хватает в МиниГуи....
Всех с праздниками !!! Предлагаю тем кто использует МиниГуи высказать свои предложения по улучшению данного продукта, да и в какую сторону двигаться дальше....
Вот то что мне не хватает (я имею в виду примеров): 1. Очень мало примеров для работы с DLL (хотя это и не относиться к МиниГуи, но как делать не знаю). 1.1 Как собирать свои ресурсы к программе в отдельную dll-ку. Как подключать её при запуске, показ картинок из dll (я может и догадываюсь, но пока не могу сделать этого) ? 1.2. Как сделать отдельный свой ехе-ник, а Харбор и Минигуи затолкать в отдельную dll-ку, ну и LetoDB в отдельную dll. Как подключать при запуске эти отдельные dll и пользоваться функциями из этих dll ? 1.3. Как использовать чужие dll (допустим на Дельфи) в своих программах на МиниГуи (хотя FastReport'ом пользуюсь, но он специально сделан под Харбор) ? Разные примеры из МиниГуи на эту тему смотрел, кое что понятно, кое что нет.
2. Полноценная работа с иконками 2.1. Сейчас приходиться каждый размер иконки (16х16, 32х32 и т.д.) хранить отдельно в ресурсном файле и выводить на кнопки по отдельности. Нужна функция вывода из ОДНОГО файла иконки (содержащий все размеры от 16х16 до 128х128) выбранного размера. 2.2. Как из shell32.dll (она содержит все размеры иконок) можно выбрать и показать иконку отличную от размера 32х32 ? 2.3. Как вывести на форму (не на кнопку) иконку заданного размера ?
Вот пока часть чего хочется... Может на Рождество желания сбудутся ?
Отправлено: 17.11.22 16:14. Заголовок: Andrey пишет: А на ..
Andrey пишет:
цитата:
А на МиниГуи можно сделать так же ?
Да, это возможно с использованием моей библиотеки shell32, которая есть в дистрибутиве Минигуи вместе с исходниками. См. пример в папке \samples\Basic\Shell32 Сначала запусти тест 1, а затем тест 2, и увидишь на мгновение этот системный диалог.
Отправлено: 17.11.22 17:19. Заголовок: Andrey пишет В 1С ис..
Andrey пишет
цитата:
В 1С используют стандартный/системный бегунок копирования файлов
Для пользователя это "распальцовка" программиста, т.к. нужная инф. только в первых 2-х строках и возможно, в бегунке, если есть %, то и струя не обязательна. Время и скорость это не постоянная величина и может прыгать в процессе как в +, так и в - (особенно во внешней сети и плавающего объема инф.). Для пользователя важнее понимать (если он, как привязанный, вылупив глазки, следит за окном) сколько док-тов скопировано (приход\реализация\перемещения\... например в индикации), справочники (названия и кол-во строк\объектов в них в индикации). Соответственно протокол (возможно dbf), что бы с этого протокола что то вытащить, подав как список для выбора (не как из файла с именем blabla.dbf, а как логической структуры: документ, карточка, справочник, ..., могут располагаться в разных, связанных dbf). Копии можно делать в темную (без индикации), например, перед получением отчетной формы, которую клиент делает с подходящей периодичностью.
Отправлено: 23.01.23 22:27. Заголовок: Опять возвращаюсь к ..
Опять возвращаюсь к большим курсорам. Можно ли сделать курсор мышки 128х128 (типа движения по кругу, загрузка) ? Это нужно для ожидания, т.е. пока прога "прочухается", чтобы юзер видел что программа работает. Видел примеры SAMPLES\BASIC\CURSOR_2 и SAMPLES\BASIC\WindowBackground_2 - но они маленькие... Помогите пожалуйста !
Или нельзя в своей программе увеличить курсор мышки ? Пробовал через Настройку - размер увеличивается на все программы.
Отправлено: 05.04.23 23:42. Заголовок: Достаточно ! Спасибо..
Достаточно ! Спасибо ! А почему у формы программы МиниГуи углы закруглены ? Это как можно сделать ? Хочу такие же скруглённые формы у себя в программе....
Отправлено: 10.06.23 22:11. Заголовок: Можно ли как то сдел..
Можно ли как то сделать кнопку - мигающей, или gif-ку туда за бабахать ? Юзера просто тупо не замечают красную кнопку появившуюся на форме. Блин и как с ними бороться...
Отправлено: 10.06.23 22:39. Заголовок: Andrey пишет Блин и ..
Andrey пишет
цитата:
Блин и как с ними бороться...
Если смена BackColor не устраивает, то делаешь мамнадцать кнопок в одних координатах (разные цвета, image ...), только одна видимая, остальные hide и крути их в цикле по очереди hide\show, можешь и Label с кликом так же делать
цитата:
Юзера просто тупо не замечают красную кнопку появившуюся на форме
А ты оставь только красную кнопку , остальные контролы убери в hide может заметят !? PS Windows update, если не делать, отказываться, через какое то время выключает мышку, клавиатуру ... и пока не начнешь делать перезагрузку (сразу цепляется update) ничего делать не получается.
Отправлено: 11.06.23 20:22. Заголовок: Возвращаюсь к функци..
Возвращаюсь к функциям AlertInfo() AlertStop() и т.д. Хотелось бы ещё добавить возможность к этим функциям, навести окончательную красоту для них. Хочется гибкости настроек для них и кнопки сделать с градиентом. Вот примерно так:
Вот примерно код который бы хотелось добавить в СТАНДАРТНУЮ поставку МиниГуи.
ON KEY F2 ACTION {|| // тест кнопки LOCAL aBtnClr := { {189, 30, 73} } // светло-красный LOCAL aFntClr := MAROON LOCAL aBckClr := { 255, 178, 178 } LOCAL cMsg := HB_ValToExp(aTest)+REPL('#;',7) LOCAL cIco := "iStop64" LOCAL cTitle := "Ошибка" LOCAL bInit := Nil, lNoSound := Nil LOCAL aColors := _SetMsgAlertColors( aBackColor ) LOCAL nOldLine := HMG_Alert_MaxLines(5) SET MSGALERT FONTCOLOR TO aFntClr // не ставятся числовые цвета - CLR_HRED SET MSGALERT BACKCOLOR TO aBckClr AlertStop( cMsg, cTitle, cIco, 64, aBtnClr, .T., bInit, lNoSound ) // это текущий синтаксис SET MSGALERT BACKCOLOR TO aColors HMG_Alert_MaxLines(nOldLine) // ------ добавочные переменные -------- //LOCAL aBtnText := {" &Продолжить "} //, aBtnText := {" &Да "," &Нет "} //LOCAL aBtnFntClr := BLUE //SET MSGALERT BTNFONTCOLOR TO BLUE //SET MSGALERT BTNFONTBOLD TO .T. //aGrFill := { { 0.5, CLR_HRED , CLR_WHITE }, { 0.5, CLR_WHITE , CLR_HRED } } //aGrOver := { { 0.5, CLR_RED , CLR_HRED }, { 0.5, CLR_HRED , CLR_RED } } //SET MSGALERT BTNGradientFill TO aGrFill //SET MSGALERT BTNGradientOver TO aGrOver // или новый синтаксис // aBtnGrClr := { aGrFill, aGrOver } // lBtnBold := .T. // AlertStop( cMsg, cTitle, cIco, 64, aBtnGrClr, lTopMost, bInit, lNoSound, aBtnText, aBtnFntClr, lBtnBold ) Return Nil } // AlertStop ( Message, Title, Icon, nSize, aColors, lTopMost, bInit, lNoSound , aBtnFntClr )
Григорий, можно это сделать ? Очень хочется... Синтаксис можно поменять, это просто моё видение синтаксиса.
Отправлено: 11.06.23 20:34. Заголовок: Andrey У тебя есть ..
Andrey У тебя есть bInit во всех ф-ях AlertStop ( Message, Title, Icon, nSize, aColors, lTopMost, bInit, lNoSound , aBtnFntClr ) вызывается практически последней командой перед END WINDOW, выглядит
IF HB_ISBLOCK( bBlock ) Do_WindowEventProcedure( bBlock, This.Index, 'WINDOW_INIT' ) ENDIF
т.е. блок кода выполняется со средой окна, возьми и замени не устраивающий контрол на свой, которой нравится, можно в тех же координатах, а можно все контролы переставить, поменяв координаты и добавить новые PS. Блок кода, как в событиях :Event(..., {|| ... }) без параметра. Можешь сделать в блоке, т.е. bInit := {|| my01() } STAT FUNCT my01() Local ow := This.Object, aControl Local cWnd := This.Name, aType Local hWnd := This.Handle ... aControl := HMG_GetFormControls (cWnd) aType := ow:GetListType() ... Draw_BtnEx( y, x, oBtn, nWBtn, nHBtn, nGBtn, lRow ) ... This.Width := ... This.Height := ... RETURN Nil
Отправлено: 11.06.23 20:58. Заголовок: SergKis пишет: У те..
SergKis пишет:
цитата:
У тебя есть bInit во всех ф-ях
Хочется ГОТОВУЮ и практичную функцию в составе МиниГуи (из коробки), а не заниматься дописыванием уже имеющих функций. И самое ГЛАВНОЕ, я отказался ВЕЗДЕ от правки bInit в своих функциях. Большая прога тупо вылетает на них !!! Я тебе давал логи вылета и так не смог победить эти вылеты. Убрал код в bInit и вылеты прекратились. Так что этим bInit - нельзя пользоваться в БОЛЬШИХ программах, в маленьких работают.
Отправлено: 11.06.23 21:38. Заголовок: Andrey пишет Я тебе ..
Andrey пишет
цитата:
Я тебе давал логи вылета и так не смог победить эти вылеты.
Так стиль написания такой, что проще заменить, причем весь код, я тебе про это говорил и писал.
цитата:
Так что этим bInit - нельзя пользоваться в БОЛЬШИХ программах, в маленьких работают
Вся hmg на блоках кода, события окон, контролов и ... А bInit простой код в теле окна и заменить BUTTON, на BUTTONEX в тех же или немного др. координатах + изменить размер окна снизу - это оч. простые действия, ты их постоянно делаешь добавляя ф-ии (список целый) после DEFINE TBROWSE ... до END TBROWSE и все это находится в блоке кода события окна\кнопки ...
Все даты в формате GMT
3 час. Хитов сегодня: 71
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет