Автор | Сообщение |
|
| постоянный участник
|
Пост N: 3882
Зарегистрирован: 12.09.06
|
|
Отправлено: 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. Как вывести на форму ( не на кнопку) иконку заданного размера ? Вот пока часть чего хочется... Может на Рождество желания сбудутся ?
| |
|
Ответов - 201
, стр:
1
2
3
4
5
6
7
8
9
10
11
All
[только новые]
|
|
|
| moderator
|
Пост N: 2069
Зарегистрирован: 11.02.10
|
|
Отправлено: 17.11.22 16:14. Заголовок: Andrey пишет: А на ..
Andrey пишет: цитата: | А на МиниГуи можно сделать так же ? |
| Да, это возможно с использованием моей библиотеки shell32, которая есть в дистрибутиве Минигуи вместе с исходниками. См. пример в папке \ samples\Basic\Shell32 Сначала запусти тест 1, а затем тест 2, и увидишь на мгновение этот системный диалог.
| |
|
|
| постоянный участник
|
Пост N: 4181
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.11.22 17:19. Заголовок: Andrey пишет В 1С ис..
Andrey пишет цитата: | В 1С используют стандартный/системный бегунок копирования файлов |
| Для пользователя это "распальцовка" программиста, т.к. нужная инф. только в первых 2-х строках и возможно, в бегунке, если есть %, то и струя не обязательна. Время и скорость это не постоянная величина и может прыгать в процессе как в +, так и в - (особенно во внешней сети и плавающего объема инф.). Для пользователя важнее понимать (если он, как привязанный, вылупив глазки, следит за окном) сколько док-тов скопировано (приход\реализация\перемещения\... например в индикации), справочники (названия и кол-во строк\объектов в них в индикации). Соответственно протокол (возможно dbf), что бы с этого протокола что то вытащить, подав как список для выбора (не как из файла с именем blabla.dbf, а как логической структуры: документ, карточка, справочник, ..., могут располагаться в разных, связанных dbf). Копии можно делать в темную (без индикации), например, перед получением отчетной формы, которую клиент делает с подходящей периодичностью.
| |
|
|
| постоянный участник
|
Пост N: 7262
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.11.22 19:09. Заголовок: SergKis пишет: Для ..
SergKis пишет: цитата: | Для пользователя это "распальцовка" программиста, т.к. нужная инф. только в первых 2-х строках |
| Согласен на 100% Но пускай будет.... gfilatov2002 пишет: цитата: | Да, это возможно с использованием моей библиотеки shell32 |
| СПАСИБО БОЛЬШОЕ !
| |
|
|
| постоянный участник
|
Пост N: 7276
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.01.23 22:27. Заголовок: Опять возвращаюсь к ..
Опять возвращаюсь к большим курсорам. Можно ли сделать курсор мышки 128х128 (типа движения по кругу, загрузка) ? Это нужно для ожидания, т.е. пока прога "прочухается", чтобы юзер видел что программа работает. Видел примеры SAMPLES\BASIC\CURSOR_2 и SAMPLES\BASIC\WindowBackground_2 - но они маленькие... Помогите пожалуйста ! Или нельзя в своей программе увеличить курсор мышки ? Пробовал через Настройку - размер увеличивается на все программы.
| |
|
|
| постоянный участник
|
Пост N: 7320
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.03.23 16:03. Заголовок: А как ресурс с кнопк..
А как ресурс (иконка - ассоциация файла) можно записать в поле базы в формате png или bmp ?
| |
|
|
| постоянный участник
|
Пост N: 7356
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.04.23 19:00. Заголовок: А иконку в контекстн..
А иконку в контекстное меню можно сразу выводить ? gfilatov2002 пишет: Посмотрел. Классно ! Только иконка на белом фоне. Можно его (фон иконки) как исправить, чтобы сливался с фоном меню ?
| |
|
|
| moderator
|
Пост N: 2125
Зарегистрирован: 11.02.10
|
|
Отправлено: 05.04.23 21:41. Заголовок: Andrey пишет: ак ис..
Andrey пишет: цитата: | ак исправить, чтобы сливался с фоном меню ? |
| Сделал, чтобы убрать белый фон, как было максимально возможно.
| |
|
|
| постоянный участник
|
Пост N: 7357
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.04.23 23:42. Заголовок: Достаточно ! Спасибо..
Достаточно ! Спасибо ! А почему у формы программы МиниГуи углы закруглены ? Это как можно сделать ? Хочу такие же скруглённые формы у себя в программе....
| |
|
|
| постоянный участник
|
Пост N: 7358
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.04.23 08:04. Заголовок: MENUITEM 'Menu-1..
MENUITEM 'Menu-1' FONT hFont IMAGE "bDel.bmp" ACTION.... MENUITEM "Exit" FONT hFont ICON "iExit32.ico" ACTION... Имею уже готовые хендлы иконок для ТСБ и отображаю их. aContMenu := {} // хендл картинки AADD( aContMenu, { 1 , "Menu-XXX", GETICONFROMRES("iRun32not") } ) AADD( aContMenu, { 2 , "Menu-XXX", GETICONFROMRES("iRun32intr") } ) Нужно делать контекстное меню по колонке ТСБ с этими хендлами Можно это сделать, или нужны только имена для контекстного меню ?
| |
|
|
| постоянный участник
|
Пост N: 7407
Зарегистрирован: 12.09.06
|
|
Отправлено: 10.06.23 22:11. Заголовок: Можно ли как то сдел..
Можно ли как то сделать кнопку - мигающей, или gif-ку туда за бабахать ? Юзера просто тупо не замечают красную кнопку появившуюся на форме. Блин и как с ними бороться...
| |
|
|
| постоянный участник
|
Пост N: 4294
Зарегистрирован: 17.02.12
|
|
Отправлено: 10.06.23 22:39. Заголовок: Andrey пишет Блин и ..
Andrey пишет цитата: | Блин и как с ними бороться... |
| Если смена BackColor не устраивает, то делаешь мамнадцать кнопок в одних координатах (разные цвета, image ...), только одна видимая, остальные hide и крути их в цикле по очереди hide\show, можешь и Label с кликом так же делать цитата: | Юзера просто тупо не замечают красную кнопку появившуюся на форме |
| А ты оставь только красную кнопку , остальные контролы убери в hide может заметят !? PS Windows update, если не делать, отказываться, через какое то время выключает мышку, клавиатуру ... и пока не начнешь делать перезагрузку (сразу цепляется update) ничего делать не получается.
| |
|
|
|
| постоянный участник
|
Пост N: 7408
Зарегистрирован: 12.09.06
|
|
Отправлено: 11.06.23 20:16. Заголовок: SergKis пишет: А ты..
SergKis пишет: цитата: | А ты оставь только красную кнопку , остальные контролы убери в hide |
| Да это лучшее решение, не подумал об этом. Спасибо !
| |
|
|
| постоянный участник
|
Пост N: 7409
Зарегистрирован: 12.09.06
|
|
Отправлено: 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 ) Григорий, можно это сделать ? Очень хочется... Синтаксис можно поменять, это просто моё видение синтаксиса.
| |
|
|
| постоянный участник
|
Пост N: 4296
Зарегистрирован: 17.02.12
|
|
Отправлено: 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
| |
|
|
| постоянный участник
|
Пост N: 7410
Зарегистрирован: 12.09.06
|
|
Отправлено: 11.06.23 20:58. Заголовок: SergKis пишет: У те..
SergKis пишет: цитата: | У тебя есть bInit во всех ф-ях |
| Хочется ГОТОВУЮ и практичную функцию в составе МиниГуи (из коробки), а не заниматься дописыванием уже имеющих функций. И самое ГЛАВНОЕ, я отказался ВЕЗДЕ от правки bInit в своих функциях. Большая прога тупо вылетает на них !!! Я тебе давал логи вылета и так не смог победить эти вылеты. Убрал код в bInit и вылеты прекратились. Так что этим bInit - нельзя пользоваться в БОЛЬШИХ программах, в маленьких работают.
| |
|
|
| постоянный участник
|
Пост N: 4297
Зарегистрирован: 17.02.12
|
|
Отправлено: 11.06.23 21:38. Заголовок: Andrey пишет Я тебе ..
Andrey пишет цитата: | Я тебе давал логи вылета и так не смог победить эти вылеты. |
| Так стиль написания такой, что проще заменить, причем весь код, я тебе про это говорил и писал. цитата: | Так что этим bInit - нельзя пользоваться в БОЛЬШИХ программах, в маленьких работают |
| Вся hmg на блоках кода, события окон, контролов и ... А bInit простой код в теле окна и заменить BUTTON, на BUTTONEX в тех же или немного др. координатах + изменить размер окна снизу - это оч. простые действия, ты их постоянно делаешь добавляя ф-ии (список целый) после DEFINE TBROWSE ... до END TBROWSE и все это находится в блоке кода события окна\кнопки ...
| |
|
|
| постоянный участник
|
Пост N: 4298
Зарегистрирован: 17.02.12
|
|
Отправлено: 12.06.23 09:04. Заголовок: Andrey пишет Хочется..
Andrey пишет цитата: | Хочется ГОТОВУЮ и практичную функцию |
| Можно попробовать вариант задания aBtnColors, для BUTTONEXT, каждый элемент массива задавать объектом THmgData. Тогда код может быть такой ... aBtnColors[ n ] := oHmgData() aBtnColors[ n ]:cIcon := "..." aBtnColors[ n ]:aGrFill := { { 0.5, CLR_HRED , CLR_WHITE }, { 0.5, CLR_WHITE , CLR_HRED } } aBtnColors[ n ]:aGrOver := { { 0.5, CLR_RED , CLR_HRED }, { 0.5, CLR_HRED , CLR_RED } } или aBtnColors[ n ]:cIconName := "..." aBtnColors[ n ]:aGradientFill := { { 0.5, CLR_HRED , CLR_WHITE }, { 0.5, CLR_WHITE , CLR_HRED } } aBtnColors[ n ]:aGradientOver := { { 0.5, CLR_RED , CLR_HRED }, { 0.5, CLR_HRED , CLR_RED } } ... *-----------------------------------------------------------------------------* STATIC FUNCTION FillDlg( cMsg, aOptions, nLineas, cIcoFile, nIcoSize, aBtnColors, bBlock, lClosable, cFont, nMaxLen ) *-----------------------------------------------------------------------------* ... FOR n := 1 TO nLenaOp cBtnName := "Btn_" + StrZero( n, 2 ) AAdd( aBut, cBtnName ) IF lExt IF Valtype( aBtnColors[ n ] ) == "O" // контейнер THmgData cIcon := aBtnColors[ n ]:cIcon aBthColor := aBtnColors[ n ]:aGrOver aGrFill := aBtnColors[ n ]:aGrFill Default cIcon := aBtnColors[ n ]:cIconName Default aBthColor := aBtnColors[ n ]:aGradientOver Default aGrFill := aBtnColors[ n ]:aGradientFill bGotFocus := aBtnColors[ n ]:bMouseHover bLostFocus := aBtnColors[ n ]:bMouseLeave Default bGotFocus := aBtnColors[ n ]:bGotFocus Default bLostFocus := aBtnColors[ n ]:bLostFocus ELSE cIcon := NIL aBthColor := aBtnColors[ n ] aGrFill := NIL bGotFocus := NIL bLostFocus := NIL ENDIF @ 0, 0 BUTTONEX ( cBtnName ) OF ( cForm ) CAPTION aOptions[ n ] ICON cIcon ; FONTCOLOR aFontColor BACKCOLOR aBtnColor GRADIENTFILL aGrFill NOXPSTYLE HANDCURSOR ; FONT cFont WIDTH nMaxBoton HEIGHT nVMARGIN_BUTTON + nChrHeight + nVMARGIN_BUTTON ; ACTION ( _HMG_ModalDialogReturn := This.Cargo, _SetGetGlobal( "_HMG_PressButton", .T. ), ThisWindow.Release() ) IF Valtype( bGotFocus ) == "B" ; SetProperty( cForm, cBtnName, "GOTFOCUS", bGotFocus ) ENDIF IF Valtype( bLostFocus ) == "B" ; SetProperty( cForm, cBtnName, "LOSTFOCUS", bLostFocus ) ENDIF ELSE ... Задаем значения: aBtnText := {" &Продолжить "} aBtnText := {" &Да "," &Нет "} aBtnClr := { oHmgData(), oHmgData() } aBtnClr[1]:cIcon := "..." aBtnClr[1]:aGrFill := { { 0.5, CLR_HRED , CLR_WHITE }, { 0.5, CLR_WHITE , CLR_HRED } } aBtnClr[1]:aGrOver := { { 0.5, CLR_RED , CLR_HRED }, { 0.5, CLR_HRED , CLR_RED } } aBtnClr[2]:cIcon := "..." aBtnClr[2]:aGrFill := { { 0.5, CLR_HRED , CLR_WHITE }, { 0.5, CLR_WHITE , CLR_HRED } } aBtnClr[2]:aGrOver := { { 0.5, CLR_RED , CLR_HRED }, { 0.5, CLR_HRED , CLR_RED } } ... AlertStop( cMsg, cTitle, cIco, 64, aBtnClr, .T., bInit, lNoSound )
| |
|
|
| постоянный участник
|
Пост N: 4299
Зарегистрирован: 17.02.12
|
|
Отправлено: 12.06.23 21:30. Заголовок: Andrey пишет Хочется..
Andrey пишет цитата: | Хочется ГОТОВУЮ и практичную функцию в составе МиниГуи (из коробки) |
| "Их есть у меня" (c) Ставим градиент на кнопку[и]. Пример тут https://TransFiles.ru/5n3ae Запуск: demo.exe 1 demo.exe 2 demo.exe 3 demo.exe
| |
|
|
| постоянный участник
|
Пост N: 7412
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.06.23 23:11. Заголовок: Спасибо БОЛЬШОЕ ! :..
Спасибо БОЛЬШОЕ !
| |
|
|
| постоянный участник
|
Пост N: 7645
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.12.23 14:43. Заголовок: Сейчас на mail.ru сд..
Сейчас на mail.ru сделано красиво - снежинки падают. Можно так же сделать на МиниГуи ?
| |
|
Ответов - 201
, стр:
1
2
3
4
5
6
7
8
9
10
11
All
[только новые]
|
|
|