Форум » GUI » Чего мне не хватает в МиниГуи.... » Ответить

Чего мне не хватает в МиниГуи....

Andrey: Всех с праздниками !!! Предлагаю тем кто использует МиниГуи высказать свои предложения по улучшению данного продукта, да и в какую сторону двигаться дальше.... Вот то что мне не хватает (я имею в виду примеров): 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. Как вывести на форму (не на кнопку) иконку заданного размера ? Вот пока часть чего хочется... Может на Рождество желания сбудутся ?

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

Andrey: Петр пишет: Нет. Но не трудно, наверное, написать. Мне трудно... Я в С вообще никак... Петр пишет: Ну раз вы стали первопроходцем, то можете "переделать" исхоники MiniGUI (хотя бы для BCC ) А в чём я стал первопроходцем ?

Петр: Andrey пишет: А в чём я стал первопроходцем ? Петр пишет: Просто никому не приходила в голову такая фигня: "Есть ряд иконок одного размера. Собираю в один файл иконок (директорию/контейнер)" Автор примеров Basic\Icons советует время от времени что-то читать, даже ссылки дает * A Quick & Easy guide to Microsoft Windows Icon Size * https://www.creativefreedom.co.uk/icon-designers-blog/windows-7-icon-sizes/ конечно - это не документация от MS, но какое элементарное понятие получить можно "about by the flexibility of the ICO format and its ability to ‘contain’ many image sizes and colour depths"

Andrey: В англоязычной документации встречал понятие директория иконок. Дима где то здесь на форуме мне указывал, что не иконка а контейнер иконок. Из за этого и так написал - (директорию/контейнер). ссылка = h t t p s ://en.m.wikipedia.org/wiki/ICO_(file_format) Icon resource structure An ICO or CUR file is made up of an ICONDIR ("Icon directory") structure, containing an ICONDIRENTRY structure for each image in the file, followed by a contiguous block of all image bitmap data (which may be in either Windows BMP format, .... и т.д.....[/pre2] Не важно как назовешь - лишь бы в печку не поставили !


Петр: Andrey пишет: Не важно как назовешь - лишь бы в печку не поставили ! Как правило, в ICO содержится картинка одного и того же обьекта разных (тем не менее стандарных) размеров и с разными разрешениями. То, что вы пытаетесь сделать - более свойственно для формата ICL, а поскольку этот формат устарел, более естественно для Windows хранить ресурсы в dll (насколько я припоминаю - icl файл по своей сути 16 битная dll). Не умеете хранить в dll, храните в dbf. Я уже писал - делайте так как умеете, желательно используя стандартные решения.

Andrey: Всем привет ! Очень хочется иметь 2 функции для работы с окнами, типа: 1) aObjColor := FormColorSave(aBackColor,aFontColor) - сохранение фона и цвета ВСЕХ объектов на форме и изменение их на новые - (aBackColor,aFontColor) . 2) FormColorRestore(aObjColor) - восстановить первоначальные цвета/фон для ВСЕХ объектов на форме. Хочется затенять форму, когда делаешь выбор на ней, чтобы юзер видел только ТЕКУЩИЙ выбор - активную форму.

SergKis: Andrey пишет Очень хочется иметь 2 функции для работы с окнами, типа: Что мешает сделать их. Обход всех контролов окна ты знаешь как делать Функции такие тоже :[pre2] RetVal := GetProperty(cForm, 'BACKCOLOR') SetProperty(cForm, 'BACKCOLOR', Value) RetVal := GetProperty(cForm, cControl, 'BACKCOLOR') SetProperty(cForm, cControl, 'BACKCOLOR', Value) RetVal := GetProperty(cForm, cControl, 'FONTCOLOR') SetProperty(cForm, cControl, 'FONTCOLOR', Value) [/pre2] Бери руки в ноги и вперед

SergKis: PS сделанным можешь поделиться

alex_II: Было бы полезно иметь на ToolBar элемент Label аналогичный Button, для более наглядного показа важной информации. StatusBar для этого не подходит из-за своего ограниченного размера.

Dima: Andrey пишет: Хочется затенять форму, когда делаешь выбор на ней уже обсуждали да и решение есть

SergKis: alex_II пишет Было бы полезно иметь на ToolBar элемент Label аналогичный Button, для более наглядного показа важной информации. Поиск в MiniGui\Include по *.ch key = SPLITBOX VERSION дал результат i_combobox.ch i_editbox.ch i_grid.ch i_listbox.ch i_richeditbox.ch i_tree.ch ToolBar на SplitBox + выше указанные контролы должны работать.

Andrey: Dima пишет: уже обсуждали да и решение есть Пропустил это. Какое решение уже есть ?

Dima: Andrey в этой теме копай

SergKis: alex_II BASIC\TOOLBAR_1\demo.prg правим чуток [pre2] /* * MINIGUI - Harbour Win32 GUI library Demo * * Copyright 2002-2008 Roberto Lopez <harbourminigui@gmail.com> * http://harbourminigui.googlepages.com/ */ #include "minigui.ch" Function Main Local aRows := {} AEval({ ; {'Simpson','Homer','555-5555'} , ; {'Mulder','Fox','324-6432'} , ; {'Smart','Max','432-5892'} , ; {'Grillo','Pepe','894-2332'} , ; {'Kirk','James','346-9873'} , ; {'Barriga','Carlos','394-9654'} , ; {'Flanders','Ned','435-3211'} , ; {'Smith','John','123-1234'} , ; {'Pedemonti','Flavio','000-0000'} , ; {'Gomez','Juan','583-4832'} , ; {'Fernandez','Raul','321-4332'} , ; {'Borges','Javier','326-9430'} , ; {'Alvarez','Alberto','543-7898'} , ; {'Gonzalez','Ambo','437-8473'} , ; {'Batistuta','Gol','485-2843'} , ; {'Vinazzi','Amigo','394-5983'} , ; {'Pedemonti','Flavio','534-7984'} , ; {'Samarbide','Armando','854-7873'} , ; {'Pradon','Alejandra','???-????'} , ; {'Reyes','Monica','432-5836'} ; } , {|a| AAdd(aRows, { a[1], a[2] }) }) DEFINE WINDOW Form_1 ; AT 0,0 ; WIDTH 640 HEIGHT 480 ; TITLE 'MiniGUI ToolBar Demo' ; ICON 'DEMO.ICO' ; MAIN ; FONT 'Arial' SIZE 10 DEFINE STATUSBAR STATUSITEM 'HMG Power Ready!' END STATUSBAR DEFINE MAIN MENU POPUP '&File' ITEM 'Get ToolBar_3 Button_1' ACTION MsgInfo ( if ( Form_1.Button_1c.Value , '.T.' , '.F.' ) , 'Button_1c' ) ITEM 'Get ToolBar_3 Button_2' ACTION MsgInfo ( if ( Form_1.Button_2c.Value , '.T.' , '.F.' ) , 'Button_2c' ) ITEM 'Get ToolBar_3 Button_3' ACTION MsgInfo ( if ( Form_1.Button_3c.Value , '.T.' , '.F.' ) , 'Button_3c' ) ITEM 'Get ToolBar_3 Button_4' ACTION MsgInfo ( if ( Form_1.Button_4c.Value , '.T.' , '.F.' ) , 'Button_4c' ) SEPARATOR ITEM 'Set ToolBar_3 Button_1' ACTION Form_1.Button_1c.Value := .T. ITEM 'Set ToolBar_3 Button_2' ACTION Form_1.Button_2c.Value := .T. ITEM 'Set ToolBar_3 Button_3' ACTION Form_1.Button_3c.Value := .T. ITEM 'Set ToolBar_3 Button_4' ACTION Form_1.Button_4c.Value := .T. SEPARATOR ITEM '&Exit' ACTION Form_1.Release END POPUP POPUP '&Help' ITEM '&About' ACTION MsgInfo ("MiniGUI ToolBar demo") END POPUP END MENU DEFINE SPLITBOX GRID Grid_2 ; WIDTH 400 ; HEIGHT 70 ; HEADERS {'Last Name','First Name'} ; WIDTHS { 90, 90}; ITEMS aRows ; VALUE 1 ; JUSTIFY { BROWSE_JTFY_LEFT,BROWSE_JTFY_CENTER } DEFINE TOOLBAR ToolBar_a BUTTONSIZE 45,40 FONT 'Arial' SIZE 8 FLAT BUTTON Button_1a ; CAPTION '&Undo' ; PICTURE 'button4.bmp' ; ACTION MsgInfo('Click! 1') BUTTON Button_2a ; CAPTION '&Save' ; PICTURE 'button5.bmp' ; WHOLEDROPDOWN DEFINE DROPDOWN MENU BUTTON Button_2a ITEM 'Exit' ACTION Form_1.Release POPUP 'More' ITEM 'Disable ToolBar 1 Button 1' ACTION Form_1.Button_1a.Enabled := .F. ITEM 'Enable ToolBar 1 Button 1' ACTION Form_1.Button_1a.Enabled := .T. END POPUP ITEM 'About' ACTION MsgInfo ("MiniGUI ToolBar Demo") END MENU BUTTON Button_3a ; CAPTION '&Close' ; PICTURE 'button6.bmp' ; ACTION MsgInfo('Click! 3') ; DROPDOWN DEFINE DROPDOWN MENU BUTTON Button_3a ITEM 'Disable ToolBar 1 Button 1' ACTION Form_1.Button_1a.Enabled := .F. ITEM 'Enable ToolBar 1 Button 1' ACTION Form_1.Button_1a.Enabled := .T. END MENU END TOOLBAR DEFINE TOOLBAR ToolBar_b BUTTONSIZE 45,40 FONT 'ARIAL' SIZE 8 FLAT BUTTON Button_1b ; CAPTION 'More ToolBars...' ; PICTURE 'button7.bmp' ; ACTION MsgInfo('Click! 1'); BUTTON Button_2b ; CAPTION 'Button 2' ; PICTURE 'button8.bmp' ; ACTION MsgInfo('Click! 2'); SEPARATOR BUTTON Button_3b ; CAPTION 'Button 3' ; PICTURE 'button7.bmp' ; ACTION MsgInfo('Click! 3') END TOOLBAR DEFINE TOOLBAR ToolBar_c BUTTONSIZE 45,40 FONT 'Arial' SIZE 8 CAPTION 'ToolBar 3' FLAT BUTTON Button_1c ; CAPTION 'Check 1' ; PICTURE 'button4.bmp' ; ACTION MsgInfo('Hey!'); CHECK GROUP BUTTON Button_2c ; CAPTION 'Check 2' ; PICTURE 'button5.bmp' ; ACTION MsgInfo('Hey!') ; CHECK GROUP BUTTON Button_3c ; CAPTION 'Check 3' ; PICTURE 'button6.bmp' ; ACTION MsgInfo('Hey!') ; SEPARATOR; CHECK GROUP BUTTON Button_4c ; CAPTION 'Help Check' ; PICTURE 'button9.bmp' ; ACTION MsgInfo('Hey!') ; CHECK END TOOLBAR COMBOBOX Combo_1 ; WIDTH 100 ; ITEMS { '1 | Uno' , '2 | Dos' , '3 | tres' } ; VALUE 1 ; ON ENTER MsgInfo ( Form_1.Combo_1.ITEMHEIGHT ) ; UPPERCASE ; ITEMHEIGHT 21 ; FONT 'Courier' SIZE 12 EDITBOX Edit_1 ; WIDTH 100 ; HEIGHT 40 ; VALUE '12345'+CRLF+'67890' ; READONLY ; NOVSCROLL NOHSCROLL END SPLITBOX END WINDOW CENTER WINDOW Form_1 ACTIVATE WINDOW Form_1 Return Nil [/pre2] работает

Andrey: SergKis пишет: сделанным можешь поделиться Делаю. Потом поделюсь.

alex_II: SergKis пишет: Поиск в MiniGui\Include по *.ch key = SPLITBOX VERSION дал результат i_combobox.ch i_editbox.ch i_grid.ch i_listbox.ch i_richeditbox.ch i_tree.ch ToolBar на SplitBox + выше указанные контролы должны работать. Прошу прощения, но я писал про Label

SergKis: alex_II пишет Прошу прощения, но я писал про Label Любой из использованных в примере контролов прекрасно заменяет label: - grid убираем header и оставляем одну строку - editbox - многострочный вариант или одна строка + readonly - combobox однострочный идет

Andrey: SergKis пишет: сделанным можешь поделиться Сделал (СПАСИБО за помощь !), опять непонятки.... Я сделал задание цветов универсальным, можно любой цвет задать... Вот так выглядит под Win 8.1 При нажатие на кнопке, меню лист и в бровсе: После закрытия MsgDebug() все цвета возвращаются в норму ! Отлично, то что хотелось. Вот так выглядит под Win 7 Поелозим MsgDebug() на форме и все цвета бровса возвращаются.... После закрытия MsgDebug() выглядит так: Стрелки кто-то отгрыз ! Если мышкой поелозить по скролингу, стрелки появляются... Для блокировки таблицы делаю вот так:[pre2] ELSEIF cCtrlType == "TBROWSE" oBrw := TsbObj( cCtrlName, cFormName ) oBrw:lEnabled := .F. // блокировать область таблицы (Строки не отображаются)[/pre2] Для разблокировки делаю так: [pre2] ELSEIF cCtrlType == "TBROWSE" oBrw := TsbObj( cCtrlName, cFormName ) oBrw:lEnabled := .T. // разблокировать область таблицы (Строки отображаются) // обязательно перечитать состояние вертикального скролинга oBrw:ResetVScroll( .T. ) oBrw:oHScroll:SetRange( 0, 0 ) oBrw:Refresh(.T., .T.) [/pre2] Что сделать ещё нужно, для одинаковой работы ?

rvu: А есть ли в Минигуи свой браузер? Хочется открыть в окошке файл .html и управлять параметрами этого окошка. А если бы можно было туда добавлять свои кнопки, типа печати, было бы совсем здорово. Может быть такое уже есть? Я сейчас копаюсь в примерах, пока ничего не нашел.

Dima: rvu Поиск по примерам shell.explorer

rvu: Dima Огромное спасибо!



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