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

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

Vlad04: Мечты, мечты ..... Я хотел -бы чтобы работа в Ide МиниГуи была похожа на работу в дизайнере Делфи или V.Basic, чтобы поддерживались основные необходимые компоненты и их свойства( позиционирование, контейнера и т.д.). а программирование поддерживало все приемы ОПП, без псевдо GetProperty, SetProperty..

gfilatov2002: Vlad04 пишет: чтобы работа в Ide МиниГуи была похожа на работу в дизайнере Делфи или V.Basic Ide МиниГуи имеет открытые исходники - Вы можете добавлять недостающий функционал самостоятельно Vlad04 пишет: программирование поддерживало все приемы ОПП Существует незавершенный открытый проект от автора Minigui, датированный 2010 годом, под названием HMG OBJECTS, который поддерживает полноценное ОПП Пример использования: [pre2]/* HMG Nice OOP! Demo(Full OOP syntax) (c) 2010 Roberto Lopez <mail.box.hmg@gmail.com> - HMG OBJECTS is designed to give to the programmers a similar experience as one using Clipper's predefined classes - Windows and its controls are created at window activation unless 'Create()' method is invoked. - Create() method is available for windows and controls. - Control's 'Parent' property is optional. If not specified, the last window defined is its default value. - xBase and alternate syntax can be used. - Control's 'Name' property (optional): At control creation, an instance variable is dynamically added to its parent window object. The name of this instance variable, is the control's name and its content is the control object. So, you could access a particular control (ie) in the following way: oWindow:Frame_1:Caption := 'New Caption' MsgInfo ( oWindow:Frame_1:Caption ) Look at \samples\button for working samples. */ #include "..\..\include\objects.ch" Set Procedure To ..\..\source\objects Function Main Local oWindow , oButton1 With Object oWindow := Window():New() :Row := 10 :Col := 10 :Width := 400 :Height := 400 :Title := 'Nice OOP Demo!!!' :Type := WND_MAIN :OnInit := { || oWindow:Center() } With Object oButton1 := Button():New() :Row := 40 :Col := 40 :Caption := 'OOP Button!!!' :OnClick := { || Button1Click() } End With End With oWindow:Activate() Return Procedure Button1Click() Local oStandard With Object oStandard := Window():New() :Row := 10 :Col := 10 :Width := 600 :Height := 300 :Title := 'Nice OOP Standard Window!!!' :Type := WND_STANDARD :OnInit := { || ( oStandard:Center() ) } End With oStandard:Activate() Return [/pre2]

SergKis: Andrey пишет: Как собирать свои ресурсы к программе в отдельную dll-ку пример создания dll: http://tempfile.ru/file/3102753

SergKis: Vlad04 пишет:программирование поддерживало все приемы ОПП сам напиши классы, обвесив функции окон, контролов MiniGui - не так и сложно

Dima: Andrey пишет: 2.2. Как из shell32.dll (она содержит все размеры иконок) можно выбрать и показать иконку отличную от размера 32х32 ? Вероятно надо глянуть пример MiniGUI\SAMPLES\BASIC\ExtractIcon\demo2.prg + MiniGUI\SAMPLES\Advanced\IconView\IcoView.prg а в нем параметры передаваемые функции EXTRACTICONEX (EXTRACTICON) PS Если есть непонятки спросить у gfilatov

Dima: Dima пишет: EXTRACTICONEX возможно вместо нее нужно использовать SHGetFileInfo , так как у EXTRACTICONEX только 2 варианта или маленькая иконка или большая. PS Просто погуглил

Andrey: Dima пишет: возможно вместо нее нужно использовать SHGetFileInfo Вот я и об этом и пишу, что нет функций в МиниГуи для работы с иконками... Если была, то я бы закатал все ресурсы в отдельную DLL (уж больно большим мой ехе-ник стал) и выводил на кнопку или форму нужные мне/ВСЕМ иконки (заданного размера). Вот единственный пример с функцией SHGetFileInfo который помог мне сделать Григорий. А SergKis переделал под универсальную форму просмотра. Прикольный получился пример. Жалко, что нет его в библиотеке... Но эта функция используется для других целей. Вот пример IconAssociatedFile_4.7z - https://cloud.mail.ru/public/56155cb9fec5/MiniGui-Sample

XVar: В принципе можно строить отличный интерфейс, но возможнось таскать панели и невозможность указать минимальный (максимальный) размер удручает.

Andrey: Как в Минигуи сделать МойПроект.hbp для сборки нескольких .prg в МояБиблиотека.lib, чтобы потом прилинковывать к своему проекту ?

SergKis: Andrey пишет:Как в Минигуи сделать МойПроект.hbp для сборки нескольких .prg в МояБиблиотека.lib, чтобы потом прилинковывать к своему проекту ? Ты уверен, что при каждой компиляции, надо собирать lib ? Проект еще не отлажен, lib для работы не годится. Когда довел до ума, тогда и собирай ((пополняй lib), т.е. запустил bat\cmd и собрал new версию lib : [pre2] SET HB_INS_BCC=<путь к BCC> SET HBMK2_OBJ=<путь к объектникам проекта, создаваемых hbmk2> SET MYLIB_OUT=<путь и имя своей библиотеки> if not exist %MYLIB_OUT% goto Crt :Upd for %%i in ( %HBMK2_OBJ%\*.obj ) Do %HB_INS_BCC%\bin\tlib.exe %MYLIB_OUT -+%%i > nul goto e :Crt for %%i in ( %HBMK2_OBJ%\*.obj ) Do %HB_INS_BCC%\bin\tlib.exe %MYLIB_OUT %%i > nul :e [/pre2]

Andrey: SergKis пишет: Ты уверен, что при каждой компиляции, надо собирать lib ? Проект еще не отлажен, lib для работы не годится. Да я понимаю, что не нужно при каждой компиляции собирать свою lib. Просто хочу собрать уже свои отлаженные модули в lib. Вот и вопрос возник: Как в Минигуи сделать МойПроект.hbp для сборки нескольких .prg в МояБиблиотека.lib ?

gfilatov2002: Andrey пишет: Как в Минигуи сделать МойПроект.hbp для сборки нескольких .prg в МояБиблиотека.lib ? Посмотри мой проект, которым я сейчас собираю библиотеку: [pre2] # # hmg.hbp # -hblib -inc -o../lib/minigui -I../include -w3 -es2 -ko -q0 -hbx=../include/hmg.hbx -cflag=-DWIN32_LEAN_AND_MEAN c_bitmap.c c_browse.c c_btntextbox.c c_button.c c_checkbox.c c_chklabel.c c_chklistbox.c c_combo.c c_controlmisc.c c_crypt.c c_cursor.c c_datepicker.c c_dialog.c c_dialogs.c c_editbox.c c_folder.c c_font.c c_frame.c c_getbox.c c_graph.c c_grid.c c_help.c c_hotkey.c c_hotkeybox.c c_image.c c_imagelist.c c_ini.c c_ipaddress.c c_label.c c_listbox.c c_media.c c_menu.c c_monthcal.c c_msgbox.c c_pager.c c_progressbar.c c_radio.c c_registry.c c_resource.c c_richeditbox.c c_scrsaver.c c_slider.c c_spinner.c c_status.c c_tab.c c_textbox.c c_timer.c c_toolbar.c c_tree.c c_winapimisc.c c_windows.c c_windowsMDI.c c_winprop.c c_winxp.c ErrorSys.prg h_activex.prg h_browse.prg h_btntextbox.prg h_button.prg h_checkbox.prg h_chklabel.prg h_chklistbox.prg h_combo.prg h_controlmisc.prg h_crypt.prg h_datepicker.prg h_dialog.prg h_dialogs.prg h_draw.prg h_edit.prg h_edit_ex.prg h_editbox.prg h_error.prg h_events.prg h_folder.prg h_font.prg h_frame.prg h_getbox.prg h_gradient.prg h_graph.prg h_grid.prg h_help.prg h_hotkey.prg h_hotkeybox.prg h_hyperlink.prg h_image.prg h_imagelist.prg h_ini.prg h_init.prg h_ipaddress.prg h_label.prg h_listbox.prg h_media.prg h_menu.prg h_monthcal.prg h_mru.prg h_msgbox.prg h_pager.prg h_progressbar.prg h_radio.prg h_registry.prg h_report.prg h_richeditbox.prg h_scrsaver.prg h_slider.prg h_socket.prg h_spinner.prg h_status.prg h_tab.prg h_textbox.prg h_timer.prg h_toolbar.prg h_tree.prg h_wbrush.prg h_winapimisc.prg h_windows.prg h_windowsMDI.prg h_winprop.prg [/pre2]

Andrey: gfilatov2002 пишет: Посмотри мой проект, которым я сейчас собираю библиотеку: Спасибо БОЛЬШОЕ ! И поясни пожалуйста вот про эти 2 флага: -hbx=../include/hmg.hbx -cflag=-DWIN32_LEAN_AND_MEAN

Andrey: Поиск в гугле по: hmg.hbx выдаёт: HBX- бризантные высоковзрывчатые вещества. HE- фугасный снаряд. ... головной частью. HMG- тяжелый(станковый крупнокалиберный) пулемет.

gfilatov2002: Andrey пишет: поясни пожалуйста вот про эти 2 флага: -hbx=../include/hmg.hbx -cflag=-DWIN32_LEAN_AND_MEAN Ключ -hbx указывает утилите hbmk2 путь к файлу .HBX, который нужен для декларации всех функций библиотеки как EXTERNAL. Примечание. Используется в заголовке minigui\include\mgextern.ch Ключ -cflag указывает Си-компилятору дополнительный пользовательский переключатель. В данном случае это позволяет генерировать .OBJ модули меньшего размера. Если в твоей библиотеке НЕТ сишных модулей, то он НЕ нужен

Andrey: Спасибо !

Vlad04: gfilatov2002 цитата: программирование поддерживало все приемы ОПП Существует незавершенный открытый проект от автора Minigui, датированный 2010 годом, под названием HMG OBJECTS, который поддерживает полноценное ОПП Это , наверно было очень давно. В версиях hmg.3.4.1 и предыдущих нет следов HMG OBJECTS. Или я плохо искал ?

Vlad04: SergKis цитата: программирование поддерживало все приемы ОПП сам напиши классы, обвесив функции окон, контролов MiniGui - не так и сложно А примерчик небольшой можно? Окно с Бровсом и кнопочками

Dima: Vlad04 Да вот оно вроде http://sourceforge.net/projects/oohg/

SergKis: Vlad04 лови test

Vlad04: Да....Совсем не просто!

SergKis: Vlad04 пишет:Совсем не просто! В чем затруднения ? Знать классы в рамках описания от А. Кресина надо, понимания MiniGui тоже, это минимум от которого плясать. В примере еще много мусора (пробы разные), а так до PVN*.PRG - это базовые (абстрактные) заготовки классов, а PVN*.PRG - уже наследование и сама задача, там 2-окна (mdi main и mdi child) и 3-и browse в child, отображаемые по одному в зависимости от режима.

digikv: есть ли onKeyDown в TSBrowse?

Haz: digikv пишет: есть ли onKeyDown в TSBrowse в исходнике ... METHOD KeyChar( nKey, nFlags ) METHOD KeyDown( nKey, nFlags ) METHOD KeyUp( nKey, nFlags )

digikv: Я ищу event onKeyDown в TSBrowse нет Method

Haz: digikv пишет: Я ищу event onKeyDown в TSBrowse В TSBrowse есть method KeyDown , в этом методе есть обработка ::bUserKeys. event onKeyDown можно отловить через ::bUserKeys. Использование ::bUserKeys есть в примерах по TSBrowse Примерно так : где xRet - это или код клавиши которую обработает метод ::KeyDown() или логическое значение ( см обработку в исходнике ::KeyDown() ) [pre2] oBrw:bUserKeys := { || onKeyDown(nKey, nFlag, oBrw) } FUNCTION onKeyDown( nKey, nFlag, oBrw ) local xRet DO CASE CASE nKey == ... END RETURN xRet [/pre2]

digikv: благодарю вас

digikv: Почему nRecNo всегда 0 в LOCAL nRecNo := GetProperty( "oDlg", 'oBrw', 'VALUE' ) #include "minigui.ch" #include "tsbrowse.ch" STATIC oDlg, oFind, nOrd, nRet FUNCTION dbChoice( cAlias, bBlock, cTitle, bWork, cOrder ) Local oFont nOrd := (cAlias)->( ordSetFocus( cOrder ) ) DEFINE WINDOW oDlg AT 0,0 WIDTH 410 HEIGHT 510 TITLE cTitle ICON "KASA" CHILD DEFINE LABEL oFind ROW 0 COL 0 WIDTH 410 HEIGHT 24 FONTNAME 'Times New Roman' FONTSIZE 14 VALUE "" END LABEL @ 25,0 TBROWSE oBrw ALIAS cAlias; OF oDlg ; WIDTH 380; HEIGHT 400 ; HEADERS "" ; WIDTHS 400; FIELDS (cAlias)->Naziv; FONT 'Times New Roman' SIZE 12 oBrw:bUserKeys := { |nKey, nFlag| onKeyDown(nKey, nFlag, cAlias ) } END WINDOW oDlg.Center ACTIVATE WINDOW oDlg RETURN nRet FUNCTION onKeyDown( nKey, nFlag, cAlias ) LOCAL cFind := GetProperty( "oDlg", 'oFind', 'VALUE' ) LOCAL nRecNo := GetProperty( "oDlg", 'oBrw', 'VALUE' ) IF nKey==VK_RETURN (cAlias)->(dbGoTo(nRecNo)) nRet := (cAlias)->Sifra msginfo('nRet='+STR(nRet)+' RecNo()='+STR(nRecNo) ) (cAlias)->(ordScope( 0, )) (cAlias)->(ordScope( 1, )) (cAlias)->( ordSetFocus( nOrd ) ) RELEASE WINDOW oDlg ELSEIF nKey==VK_ESCAPE nRet:=0 (cAlias)->(ordScope( 0, )) (cAlias)->(ordScope( 1, )) (cAlias)->( ordSetFocus( nOrd ) ) RELEASE WINDOW oDlg ELSEIF nKey == VK_UP ELSEIF nKey == VK_LEFT ELSEIF nKey == VK_RIGHT ELSEIF nKey == VK_DOWN ELSEIF nKey == VK_NEXT ELSEIF nKey == VK_PRIOR ELSEIF nKey == VK_END ELSEIF nKey == VK_HOME ELSEIF nKey == VK_INSERT ELSEIF nKey == VK_BACK SetProperty( "oDlg", 'oFind', 'VALUE', LEFT( cFind, LEN( cFind ) - 1) ) oDlg.oFind.REFRESH() cFind := GetProperty( "oDlg", 'oFind', 'VALUE' ) (cAlias)->(ordScope( 0, cFind )) (cAlias)->(ordScope( 1, cFind )) oDlg.oBrw.REFRESH() ELSEIF nKey >= 32 .AND. nKey <= 255 SetProperty( "oDlg", 'oFind', 'VALUE', cFind+UPPER(CHR( nKey )) ) oDlg.oFind.REFRESH() cFind := GetProperty( "oDlg", 'oFind', 'VALUE' ) (cAlias)->(ordScope( 0, cFind )) (cAlias)->(ordScope( 1, cFind )) oDlg.oBrw.REFRESH() ENDIF RETURN .T.

Haz: digikv пишет: Почему nRecNo всегда 0 в TS нет Value == Recno() Попробуйте так nRecNo := (oBrw:cAlias)->(RecNo()) PS dbGoTo(nRecNo) - не приведет к установке бровса на нужную запись, для этого там есть метод :GotoRecNo()

digikv: Я читал в MiniGui.chm PROPERTIES: · Value Set / Gets browse value - selected record number Теперь все работает правильно. Еще раз спасибо за вашу помощь.

Haz: digikv пишет: Я читал в MiniGui.chm PROPERTIES: · Value Set / Gets browse value - selected record number Это правильно для BROWSE , а не для TSBROWSE

Andrey: Григорий ! Возвращаюсь к вопросу по иконкам. Будут ли какие то улучшения в библиотеке для иконок ? Можно примерно так: Для любой иконки содержащиеся в своих ресурсах @ 10,10 ICON Icon_1 PICTURE "Calc64x1" WIDTH 64 HEIGHT 64 RESTYPE INTERNAL Для любой иконки содержащиеся в чужих ресурсах cFile := System.SystemFolder + "\shell32.dll" @ 10,10 ICON Icon_1 PICTURE "Icon_164" WIDTH 128 HEIGHT 128 RESTYPE EXTERNAL FILE cFile Можно и короче (WIDTH 128 HEIGHT 128) -> (SIZE 128) Народ, кто что думает по этому вопросу ? Кому не хватает простого вывода иконки на ЦВЕТНУЮ форму ?

krutoff: SergKis пишет: лови test Тоже хотел посмотреть, но ссылка битая. Файлообменник уже удалил... Andrey пишет: Кому не хватает простого вывода иконки на ЦВЕТНУЮ форму ? Я бы от такого тоже не отказался, поддерживаю.

SergKis: krutoff пишет: Тоже хотел посмотреть тут click here

gfilatov2002: Andrey пишет: Будут ли какие то улучшения в библиотеке для иконок ? Мечты сбываются Прямо сейчас прорабатываю новую команду с таким синтаксисом #xcommand DRAW ICON IN WINDOW <windowname> AT <row>,<col> ; PICTURE <filename> ; [ WIDTH <w> ] ; [ HEIGHT <h> ] ; [ COLOR <rgb> ] ; [ <transparent: TRANSPARENT> ] ; => ; drawicon(<"windowname">,<filename>,<row>,<col>,[<w>],[<h>],[<rgb>],<.transparent.>) где filename - это имя файла на диске или внутреннего ресурса программы Примечание. Вскрытие показало, что WinAPI-функция ExtractIcon() возвращает иконки только стандартного размера 32х32

Andrey: gfilatov2002 пишет: Прямо сейчас прорабатываю новую команду с таким синтаксисом Ура !

Andrey: gfilatov2002 пишет: DRAW ICON IN WINDOW <windowname> AT <row>,<col> ; PICTURE <filename> ; [ WIDTH <w> ] ; [ HEIGHT <h> ] ; [ COLOR <rgb> ] ; [ <transparent: TRANSPARENT> ] ; Что то не пашет, если на форме лежит ещё цветной LABEL ! Пример отправил на почту... И ещё одно - синтаксис урезать можно ? Сделать без "IN WINDOW Forma_1" и с ним ?

Vlad04: Похоже MiniGui достиг своего Эльбруса (вершины). Идет неспешное причесывание небольшой лохматости.

gfilatov2002: Vlad04 пишет: MiniGui достиг своего Эльбруса Это невозможно, поскольку WinAPI продолжает развиваться (особенно, с выходом Win10) Например, в библиотеке напрочь отсутствует поддержка toast-сообщений, основанных на вызове WinRT методов

Andrey: gfilatov2002 пишет: оддержка toast-сообщений, основанных на вызове WinRT методов Это для чего ? Нам инструмент нужен для создания полноценных приложений для бухов и т.д. Чего не хватает: 1) Редактора форм (то что есть уж очень негибкие), посмотрет тот же хХарбор - там редактор форм получше. 2) Работа с Png - чтобы картинки на форме не выглядели обгрызано !!! И можно тогда отказаться от иконок (.ico) 3) Работа с Png в Tsbrowse. Там вообще с png-непонятно... 4) Раздела (доки или примеров) работы с DLL. 4) Ну наверное в хелпер нужно дать короткое описание примеров, кто зачем и почему.

Петр: Andrey пишет: Чего не хватает: И что вы можете предложить из указанного списка?

Andrey: Петр пишет: И что вы можете предложить из указанного списка? Так я и написал, с чем не могу разобраться. Уже давно. А с чем я разбираюсь, то примеры посылаю Григорию. Чем могу, отвечаю на форуме. Но всё равно - первоисточник это библиотека Григория.

ММК: Andrey пишет: 1) Редактора форм (то что есть уж очень негибкие), посмотрет тот же хХарбор - там редактор форм получше. Извините , не понял. Что это за редактор форм для Харбора?

Vlad04: ММК Что это за редактор форм для Харбора? Прикалываешься? Дизайнер форм. В FW вас и таким не балуют? Сразу Ms Студию подавай.

Andrey: Петр пишет: И что вы можете предложить из указанного списка? Из списка не могу, но с чем разобрался, то отдаю в общую копилку. Вот для новичков и другим - http://hmgextended.com/applications.html

ММК: Vlad04 пишет: Прикалываешься? Дизайнер форм. Нет. Не знал ,что такое есть Vlad04 пишет: В FW вас и таким не балуют? Да о чем Вы говорите!Так. По мелочи ... Для народа с традиционной направленностью - Ms студия,UEStudio. Любителям легкого экстрима VISUAL или http://forums.fivetechsupport.com/viewtopic.php?f=3&t=29991&start=240

ZAlex: ММК пишет: Да о чем Вы говорите!Так. По мелочи ... Ну да. Вот для заготовок: https://bitbucket.org/fivetech/fivewin-contributions/downloads/design.zip

Vlad04: UEStudio Это что продукт ?

Dima: Vlad04 Тут

ММК: ZAlex пишет: Ну да. Вот для заготовок: https://bitbucket.org/fivetech/fivewin-contributions/downloads/design.zip Ну что Вы :)) Это просто примерчик работы с design. А "по жизни" все ,что есть на экране делает любой ресурс редактор. Например WorkShop или ResHacker

ММК: Dima пишет: Vlad04 Тут Да, это универсальное IDE . В FW под него сделан файл настроек. Вы можете сделать такой же и для минигуи :)

Andrey: ММК пишет: А "по жизни" все ,что есть на экране делает любой ресурс редактор. Например WorkShop или ResHacker А обвязки для МиниГуи нет !

Dima: Andrey пишет: А обвязки для МиниГуи нет ! ММК Михаил дай Андрею обвязку :)

Andrey: Dima пишет: Михаил дай Андрею обвязку :) Ага... Вокруг шеи... Можно заодно обвалку, обсыпку, и т.д.

Andrey: Всем привет ! Вот из ранее описанных "хотелок", Григорий добавил пример в свою библиотеку MiniGUI\SAMPLES\BASIC\Icons\demo2.prg Пример показа иконок из внешней myicons.dll А как самому собрать свою DLL-ку с иконками и картинками ? Раньше пытался это сделать, но так и не смог... Сейчас проект вообще раздулся и очень много пересекающихся ресурсов, наверное их лучше держать в отдельной dll-ке. И еще как показывать картинки из своих/чужих внешних DLL ?

Петр: Andrey пишет: Вот из ранее описанных "хотелок", Григорий добавил пример в свою библиотеку MiniGUI\SAMPLES\BASIC\Icons\demo2.prg Пример показа иконок из внешней myicons.dll А как самому собрать свою DLL-ку с иконками и картинками ? В папку MyIcons глянуть не судьба? Сборка myicons.dll с помощью hbmk2 и ResourceHacker.

Andrey: Петр пишет: В папку MyIcons глянуть не судьба? Глянул. Хороший пример ! Уже сделал сборку своей dll-ки. Обошёлся без внешних утилит, один BCC. Собирать можно только на нём, только с ключами сборки помучился... Свой пример передам Григорию, пускай включает для всех ! И ещё один вопрос по примеру SAMPLES\BASIC\Icons\demo.prg Там считывание иконки по размеру иконки: [pre2] hIcon := LoadIconByName( cIcon, 128, 128 ) [/pre2] А как считать иконки по порядку следования в директории/контейнере иконок ?

Петр: Andrey пишет: Уже сделал сборку своей dll-ки. Обошёлся без внешних утилит, один BCC. Собирать можно только на нём, только с ключами сборки помучился... Свой пример передам Григорию, пускай включает для всех ! И шо с этим примером будут делать пользователи mingw? А как считать иконки по порядку следования в директории/контейнере иконок ? А это вам зачем, стесняюсь спросить?

Andrey: Петр пишет: И шо с этим примером будут делать пользователи mingw? Ну пускай переделывают скрип сборки под mingw. У Григория же сборка под BCC, а там нормально батник отрабатывает. Петр пишет: А это вам зачем, стесняюсь спросить? Есть ряд иконок одного размера. Собираю в один файл иконок (директорию/контейнер). А как их выводить ? Размер же одинаков. Функцией hIcon := LoadIconByName( cIcon, 128, 128 ) обойтись же нельзя ! Есть функция по считыванию иконки по номеру иконки в контейнере иконок ? Для использования показа иконок как в примерах SAMPLES\BASIC\WAIT_WINDOW_2

Петр: Andrey пишет: Ну пускай переделывают скрип сборки под mingw. У Григория же сборка под BCC, а там нормально батник отрабатывает. аргумент железный.. Есть функция по считыванию иконки по номеру иконки в контейнере иконок ? Нет. Но не трудно, наверное, написать. Просто никому не приходила в голову такая фигня Есть ряд иконок одного размера. Собираю в один файл иконок (директорию/контейнер) Ну раз вы стали первопроходцем, то можете "переделать" исхоДники MiniGUI (хотя бы для BCC )

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. Я уже писал - делайте так как умеете, желательно используя стандартные решения.



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