On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение
постоянный участник




Пост 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. Как вывести на форму (не на кнопку) иконку заданного размера ?

Вот пока часть чего хочется... Может на Рождество желания сбудутся ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 201 , стр: 1 2 3 4 5 6 7 8 9 10 11 All [только новые]


постоянный участник


Пост N: 471
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 07.01.15 21:04. Заголовок: Мечты, мечты ..... Я..


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

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 705
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 07.01.15 21:21. Заголовок: Vlad04 пишет: чтобы..


Vlad04 пишет:

 цитата:
чтобы работа в Ide МиниГуи была похожа на работу в дизайнере Делфи или V.Basic


Ide МиниГуи имеет открытые исходники - Вы можете добавлять недостающий функционал самостоятельно

Vlad04 пишет:

 цитата:
программирование поддерживало все приемы ОПП


Существует незавершенный открытый проект от автора Minigui, датированный 2010 годом, под названием HMG OBJECTS, который поддерживает полноценное ОПП

Пример использования:

/* 

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


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 452
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.01.15 22:04. Заголовок: Andrey пишет: Как с..


Andrey пишет:

 цитата:
Как собирать свои ресурсы к программе в отдельную dll-ку



пример создания dll: http://tempfile.ru/file/3102753

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 453
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.01.15 22:08. Заголовок: Vlad04 пишет:програм..


Vlad04 пишет:
 цитата:
программирование поддерживало все приемы ОПП


сам напиши классы, обвесив функции окон, контролов MiniGui - не так и сложно

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4396
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.01.15 18:04. Заголовок: Andrey пишет: 2.2. ..


Andrey пишет:

 цитата:
2.2. Как из shell32.dll (она содержит все размеры иконок) можно выбрать и показать иконку отличную от размера 32х32 ?


Вероятно надо глянуть пример MiniGUI\SAMPLES\BASIC\ExtractIcon\demo2.prg
+
MiniGUI\SAMPLES\Advanced\IconView\IcoView.prg а в нем параметры передаваемые функции EXTRACTICONEX (EXTRACTICON)

PS
Если есть непонятки спросить у gfilatov

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4397
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.01.15 18:22. Заголовок: Dima пишет: EXTRACT..


Dima пишет:

 цитата:
EXTRACTICONEX


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

PS
Просто погуглил

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3888
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.01.15 20:42. Заголовок: Dima пишет: возможн..


Dima пишет:

 цитата:
возможно вместо нее нужно использовать SHGetFileInfo


Вот я и об этом и пишу, что нет функций в МиниГуи для работы с иконками...
Если была, то я бы закатал все ресурсы в отдельную DLL (уж больно большим мой ехе-ник стал) и выводил на кнопку или форму нужные мне/ВСЕМ иконки (заданного размера).

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

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 10
Зарегистрирован: 14.10.08
ссылка на сообщение  Отправлено: 03.02.15 14:59. Заголовок: хотелось бы увеличить функциональность SplitBox


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



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4458
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.08.15 10:33. Заголовок: Как в Минигуи сделат..


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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 796
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.08.15 11:44. Заголовок: Andrey пишет:Как в М..


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


Ты уверен, что при каждой компиляции, надо собирать lib ? Проект еще не отлажен, lib для работы не годится. Когда довел до ума, тогда и собирай ((пополняй lib), т.е. запустил bat\cmd и собрал new версию lib :
 
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


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4459
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.08.15 12:19. Заголовок: SergKis пишет: Ты у..


SergKis пишет:

 цитата:
Ты уверен, что при каждой компиляции, надо собирать lib ? Проект еще не отлажен, lib для работы не годится.


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

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 817
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 20.08.15 13:30. Заголовок: Andrey пишет: Как в..


Andrey пишет:

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


Посмотри мой проект, которым я сейчас собираю библиотеку:
Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4460
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.08.15 13:37. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Посмотри мой проект, которым я сейчас собираю библиотеку:


Спасибо БОЛЬШОЕ !

И поясни пожалуйста вот про эти 2 флага:
-hbx=../include/hmg.hbx
-cflag=-DWIN32_LEAN_AND_MEAN


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4461
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.08.15 14:00. Заголовок: Поиск в гугле по: hb..


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



Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 818
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 20.08.15 14:17. Заголовок: Andrey пишет: поясн..


Andrey пишет:

 цитата:
поясни пожалуйста вот про эти 2 флага:
-hbx=../include/hmg.hbx
-cflag=-DWIN32_LEAN_AND_MEAN


Ключ -hbx указывает утилите hbmk2 путь к файлу .HBX, который нужен для декларации всех функций библиотеки как EXTERNAL.
Примечание. Используется в заголовке minigui\include\mgextern.ch

Ключ -cflag указывает Си-компилятору дополнительный пользовательский переключатель. В данном случае это позволяет генерировать .OBJ модули меньшего размера. Если в твоей библиотеке НЕТ сишных модулей, то он НЕ нужен

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4463
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.08.15 14:24. Заголовок: Спасибо ! :sm36: ..


Спасибо !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 498
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 03.09.15 12:06. Заголовок: gfilatov2002 цитат..


gfilatov2002


 цитата:
цитата:
программирование поддерживало все приемы ОПП
Существует незавершенный открытый проект от автора Minigui, датированный 2010 годом, под названием HMG OBJECTS, который поддерживает полноценное ОПП


Это , наверно было очень давно. В версиях hmg.3.4.1 и предыдущих нет следов HMG OBJECTS. Или я плохо искал ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 499
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 03.09.15 12:10. Заголовок: SergKis цитата: пр..


SergKis


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



А примерчик небольшой можно? Окно с Бровсом и кнопочками


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5268
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 03.09.15 12:11. Заголовок: Vlad04 Да вот оно в..


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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 814
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.09.15 13:01. Заголовок: Vlad04 лови test ..


Vlad04
лови test

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 500
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 04.09.15 07:16. Заголовок: Да....Совсем не прос..


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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 819
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.09.15 07:43. Заголовок: Vlad04 пишет:Совсем ..


Vlad04 пишет:
 цитата:
Совсем не просто!


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

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 6
Зарегистрирован: 10.01.15
ссылка на сообщение  Отправлено: 27.09.15 10:23. Заголовок: есть ли onKeyDown в ..


есть ли onKeyDown в TSBrowse?


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 667
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 27.09.15 12:56. Заголовок: digikv пишет: есть ..


digikv пишет:

 цитата:
есть ли onKeyDown в TSBrowse


в исходнике ...
METHOD KeyChar( nKey, nFlags )
METHOD KeyDown( nKey, nFlags )
METHOD KeyUp( nKey, nFlags )


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 7
Зарегистрирован: 10.01.15
ссылка на сообщение  Отправлено: 27.09.15 13:08. Заголовок: Я ищу event onKeyDow..


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

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 668
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 27.09.15 13:51. Заголовок: digikv пишет: Я ищу..


digikv пишет:

 цитата:
Я ищу event onKeyDown в TSBrowse


В TSBrowse есть method KeyDown , в этом методе есть обработка ::bUserKeys.
event onKeyDown можно отловить через ::bUserKeys. Использование ::bUserKeys есть в примерах по TSBrowse
Примерно так :
где xRet - это или код клавиши которую обработает метод ::KeyDown() или логическое значение ( см обработку в исходнике ::KeyDown() )
 
oBrw:bUserKeys := { || onKeyDown(nKey, nFlag, oBrw) }


FUNCTION onKeyDown( nKey, nFlag, oBrw )
local xRet

DO CASE
CASE nKey ==
...
END


RETURN xRet



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 8
Зарегистрирован: 10.01.15
ссылка на сообщение  Отправлено: 27.09.15 15:55. Заголовок: благодарю вас..


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

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 9
Зарегистрирован: 10.01.15
ссылка на сообщение  Отправлено: 27.09.15 17:20. Заголовок: Почему nRecNo всегда..


Почему 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.


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 669
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 27.09.15 18:04. Заголовок: digikv пишет: Почем..


digikv пишет:

 цитата:
Почему nRecNo всегда 0


в TS нет Value == Recno()
Попробуйте так
nRecNo := (oBrw:cAlias)->(RecNo())

PS dbGoTo(nRecNo) - не приведет к установке бровса на нужную запись, для этого там есть метод :GotoRecNo()

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 10
Зарегистрирован: 10.01.15
ссылка на сообщение  Отправлено: 27.09.15 18:19. Заголовок: Я читал в MiniGui.ch..


Я читал в MiniGui.chm
PROPERTIES:
· Value Set / Gets browse value - selected record number

Теперь все работает правильно.
Еще раз спасибо за вашу помощь.


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 670
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 27.09.15 18:28. Заголовок: digikv пишет: Я чит..


digikv пишет:

 цитата:
Я читал в MiniGui.chm
PROPERTIES:
· Value Set / Gets browse value - selected record number



Это правильно для BROWSE , а не для TSBROWSE

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4572
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.11.15 20:52. Заголовок: Григорий ! Возвраща..


Григорий !
Возвращаюсь к вопросу по иконкам. Будут ли какие то улучшения в библиотеке для иконок ?

Можно примерно так:
Для любой иконки содержащиеся в своих ресурсах
@ 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)

Народ, кто что думает по этому вопросу ? Кому не хватает простого вывода иконки на ЦВЕТНУЮ форму ?

Спасибо: 1 
ПрофильЦитата Ответить





Пост N: 177
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 13.11.15 15:17. Заголовок: SergKis пишет: лови..


SergKis пишет:

 цитата:
лови test


Тоже хотел посмотреть, но ссылка битая. Файлообменник уже удалил...

Andrey пишет:

 цитата:
Кому не хватает простого вывода иконки на ЦВЕТНУЮ форму ?


Я бы от такого тоже не отказался, поддерживаю.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 837
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.11.15 16:24. Заголовок: krutoff пишет: Тоже ..


krutoff пишет:
 цитата:
Тоже хотел посмотреть


тут click here

Спасибо: 1 
ПрофильЦитата Ответить
moderator




Пост N: 852
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 15.11.15 15:52. Заголовок: Andrey пишет: Будут..


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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4573
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.11.15 17:12. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Прямо сейчас прорабатываю новую команду с таким синтаксисом


Ура !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4588
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.11.15 00:42. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
DRAW ICON IN WINDOW <windowname> AT <row>,<col> ;
PICTURE <filename> ;
[ WIDTH <w> ] ;
[ HEIGHT <h> ] ;
[ COLOR <rgb> ] ;
[ <transparent: TRANSPARENT> ] ;


Что то не пашет, если на форме лежит ещё цветной LABEL !
Пример отправил на почту...

И ещё одно - синтаксис урезать можно ?
Сделать без "IN WINDOW Forma_1" и с ним ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 633
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 07.12.16 08:58. Заголовок: Похоже MiniGui дост..


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

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 1052
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 07.12.16 12:34. Заголовок: Vlad04 пишет: MiniG..


Vlad04 пишет:

 цитата:
MiniGui достиг своего Эльбруса


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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5234
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.12.16 14:17. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
оддержка toast-сообщений, основанных на вызове WinRT методов


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


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1368
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 07.12.16 21:08. Заголовок: Andrey пишет: Чего ..


Andrey пишет:

 цитата:
Чего не хватает:



И что вы можете предложить из указанного списка?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5236
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.12.16 01:35. Заголовок: Петр пишет: И что в..


Петр пишет:

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


Так я и написал, с чем не могу разобраться. Уже давно.
А с чем я разбираюсь, то примеры посылаю Григорию.
Чем могу, отвечаю на форуме.

Но всё равно - первоисточник это библиотека Григория.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 253
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 08.12.16 10:52. Заголовок: Andrey пишет: 1) Ре..


Andrey пишет:

 цитата:
1) Редактора форм (то что есть уж очень негибкие), посмотрет тот же хХарбор - там редактор форм получше.



Извините , не понял. Что это за редактор форм для Харбора?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 634
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 08.12.16 11:40. Заголовок: ММК Что это за реда..


ММК

 цитата:
Что это за редактор форм для Харбора?


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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5238
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.12.16 18:44. Заголовок: Петр пишет: И что ..


Петр пишет:

 цитата:

И что вы можете предложить из указанного списка?



Из списка не могу, но с чем разобрался, то отдаю в общую копилку.

Вот для новичков и другим - http://hmgextended.com/applications.html


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 255
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 09.12.16 10:55. Заголовок: Vlad04 пишет: Прика..


Vlad04 пишет:

 цитата:
Прикалываешься? Дизайнер форм.


Нет. Не знал ,что такое есть
Vlad04 пишет:

 цитата:
В FW вас и таким не балуют?


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


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 25
Зарегистрирован: 22.01.14
ссылка на сообщение  Отправлено: 09.12.16 13:09. Заголовок: ММК пишет: Да о чем..


ММК пишет:

 цитата:
Да о чем Вы говорите!Так. По мелочи ...


Ну да. Вот для заготовок:
https://bitbucket.org/fivetech/fivewin-contributions/downloads/design.zip

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 635
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 09.12.16 14:55. Заголовок: UEStudio Это что про..



 цитата:
UEStudio


Это что продукт ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 6186
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.12.16 15:02. Заголовок: Vlad04 Тут..


Vlad04
Тут

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 256
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 09.12.16 18:27. Заголовок: ZAlex пишет: Ну да...


ZAlex пишет:

 цитата:
Ну да. Вот для заготовок:
https://bitbucket.org/fivetech/fivewin-contributions/downloads/design.zip


Ну что Вы :)) Это просто примерчик работы с design. А "по жизни" все ,что есть на экране делает любой ресурс редактор. Например WorkShop или
ResHacker

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 257
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 09.12.16 18:29. Заголовок: Dima пишет: Vlad04 ..


Dima пишет:

 цитата:
Vlad04
Тут


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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5239
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.12.16 22:32. Заголовок: ММК пишет: А "п..


ММК пишет:

 цитата:
А "по жизни" все ,что есть на экране делает любой ресурс редактор. Например WorkShop или
ResHacker


А обвязки для МиниГуи нет !

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 6188
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.12.16 22:38. Заголовок: Andrey пишет: А обв..


Andrey пишет:

 цитата:
А обвязки для МиниГуи нет !


ММК
Михаил дай Андрею обвязку :)

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5241
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.12.16 22:42. Заголовок: Dima пишет: Михаил ..


Dima пишет:

 цитата:
Михаил дай Андрею обвязку :)



Ага... Вокруг шеи...
Можно заодно обвалку, обсыпку, и т.д.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5559
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.10.17 17:26. Заголовок: Всем привет ! Вот из..


Всем привет !
Вот из ранее описанных "хотелок", Григорий добавил пример в свою библиотеку MiniGUI\SAMPLES\BASIC\Icons\demo2.prg
Пример показа иконок из внешней myicons.dll

А как самому собрать свою DLL-ку с иконками и картинками ?
Раньше пытался это сделать, но так и не смог...
Сейчас проект вообще раздулся и очень много пересекающихся ресурсов, наверное их лучше держать в отдельной dll-ке.

И еще как показывать картинки из своих/чужих внешних DLL ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1563
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 15.10.17 17:31. Заголовок: Andrey пишет: Вот и..


Andrey пишет:

 цитата:
Вот из ранее описанных "хотелок", Григорий добавил пример в свою библиотеку MiniGUI\SAMPLES\BASIC\Icons\demo2.prg
Пример показа иконок из внешней myicons.dll

А как самому собрать свою DLL-ку с иконками и картинками ?



В папку MyIcons глянуть не судьба?

Сборка myicons.dll с помощью hbmk2 и ResourceHacker.


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5570
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.10.17 14:07. Заголовок: Петр пишет: В папку..


Петр пишет:

 цитата:
В папку MyIcons глянуть не судьба?



Глянул. Хороший пример !
Уже сделал сборку своей dll-ки.
Обошёлся без внешних утилит, один BCC.
Собирать можно только на нём, только с ключами сборки помучился...
Свой пример передам Григорию, пускай включает для всех !

И ещё один вопрос по примеру SAMPLES\BASIC\Icons\demo.prg
Там считывание иконки по размеру иконки:
      hIcon := LoadIconByName( cIcon, 128, 128 ) 

А как считать иконки по порядку следования в директории/контейнере иконок ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1564
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 16.10.17 15:34. Заголовок: Andrey пишет: Уже с..


Andrey пишет:

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



И шо с этим примером будут делать пользователи mingw?


 цитата:
А как считать иконки по порядку следования в директории/контейнере иконок ?


А это вам зачем, стесняюсь спросить?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5571
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.10.17 16:13. Заголовок: Петр пишет: И шо с ..


Петр пишет:

 цитата:
И шо с этим примером будут делать пользователи mingw?


Ну пускай переделывают скрип сборки под mingw.
У Григория же сборка под BCC, а там нормально батник отрабатывает.

Петр пишет:

 цитата:
А это вам зачем, стесняюсь спросить?


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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1565
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 16.10.17 16:37. Заголовок: Andrey пишет: Ну пу..


Andrey пишет:

 цитата:
Ну пускай переделывают скрип сборки под mingw.
У Григория же сборка под BCC, а там нормально батник отрабатывает.


аргумент железный..


 цитата:
Есть функция по считыванию иконки по номеру иконки в контейнере иконок ?


Нет. Но не трудно, наверное, написать.
Просто никому не приходила в голову такая фигня

 цитата:
Есть ряд иконок одного размера. Собираю в один файл иконок (директорию/контейнер)



Ну раз вы стали первопроходцем, то можете "переделать" исхоДники MiniGUI (хотя бы для BCC )


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5572
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.10.17 16:42. Заголовок: Петр пишет: Нет. Но..


Петр пишет:

 цитата:
Нет. Но не трудно, наверное, написать.


Мне трудно... Я в С вообще никак...

Петр пишет:

 цитата:
Ну раз вы стали первопроходцем, то можете "переделать" исхоники MiniGUI (хотя бы для BCC )


А в чём я стал первопроходцем ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1566
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 16.10.17 19:29. Заголовок: Andrey пишет: А в ч..


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"

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5573
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.10.17 20:05. Заголовок: В англоязычной докум..


В англоязычной документации встречал понятие директория иконок.
Дима где то здесь на форуме мне указывал, что не иконка а контейнер иконок.
Из за этого и так написал - (директорию/контейнер).

ссылка = 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, ....
и т.д.....`

Не важно как назовешь - лишь бы в печку не поставили !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1567
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 16.10.17 20:38. Заголовок: Andrey пишет: Не ва..


Andrey пишет:

 цитата:
Не важно как назовешь - лишь бы в печку не поставили !




Как правило, в ICO содержится картинка одного и того же обьекта разных (тем не менее стандарных) размеров и с разными разрешениями.

То, что вы пытаетесь сделать - более свойственно для формата ICL, а поскольку этот формат устарел, более естественно для Windows хранить ресурсы в dll (насколько я припоминаю - icl файл по своей сути 16 битная dll).

Не умеете хранить в dll, храните в dbf.
Я уже писал - делайте так как умеете, желательно используя стандартные решения.


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6175
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.02.19 16:52. Заголовок: Всем привет ! Очень ..


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

Хочется затенять форму, когда делаешь выбор на ней,
чтобы юзер видел только ТЕКУЩИЙ выбор - активную форму.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2209
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.02.19 17:17. Заголовок: Andrey пишет Очень х..


Andrey пишет
 цитата:
Очень хочется иметь 2 функции для работы с окнами, типа:


Что мешает сделать их. Обход всех контролов окна ты знаешь как делать
Функции такие тоже :
 
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)

Бери руки в ноги и вперед

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2211
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.02.19 17:35. Заголовок: PS сделанным можешь ..


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

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 145
Зарегистрирован: 12.07.06
ссылка на сообщение  Отправлено: 10.02.19 04:56. Заголовок: Хотелка


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

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7016
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.02.19 11:31. Заголовок: Andrey пишет: Хочет..


Andrey пишет:

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


уже обсуждали да и решение есть

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2219
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.02.19 12:33. Заголовок: alex_II пишет Было б..


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 + выше указанные контролы должны работать.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6176
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.02.19 14:19. Заголовок: Dima пишет: уже обс..


Dima пишет:

 цитата:
уже обсуждали да и решение есть


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

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7017
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.02.19 17:44. Заголовок: Andrey в этой теме ..

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2220
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.02.19 20:18. Заголовок: alex_II BASIC\T..


alex_II
BASIC\TOOLBAR_1\demo.prg правим чуток Скрытый текст

работает

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6177
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.02.19 23:05. Заголовок: SergKis пишет: сдел..


SergKis пишет:

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


Делаю. Потом поделюсь.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 146
Зарегистрирован: 12.07.06
ссылка на сообщение  Отправлено: 11.02.19 05:14. Заголовок: SergKis пишет: Поис..


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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2222
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.02.19 05:23. Заголовок: alex_II пишет Прошу ..


alex_II пишет
 цитата:
Прошу прощения, но я писал про Label


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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6178
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.02.19 23:59. Заголовок: SergKis пишет: сдел..


SergKis пишет:

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



Сделал (СПАСИБО за помощь !), опять непонятки....
Я сделал задание цветов универсальным, можно любой цвет задать...

Вот так выглядит под Win 8.1


При нажатие на кнопке, меню лист и в бровсе:


После закрытия MsgDebug() все цвета возвращаются в норму ! Отлично, то что хотелось.

Вот так выглядит под Win 7


Поелозим MsgDebug() на форме и все цвета бровса возвращаются....

После закрытия MsgDebug() выглядит так:


Стрелки кто-то отгрыз ! Если мышкой поелозить по скролингу, стрелки появляются...

Для блокировки таблицы делаю вот так:
 
ELSEIF cCtrlType == "TBROWSE"
oBrw := TsbObj( cCtrlName, cFormName )
oBrw:lEnabled := .F. // блокировать область таблицы (Строки не отображаются)


Для разблокировки делаю так:
                ELSEIF cCtrlType == "TBROWSE" 
oBrw := TsbObj( cCtrlName, cFormName )
oBrw:lEnabled := .T. // разблокировать область таблицы (Строки отображаются)
// обязательно перечитать состояние вертикального скролинга
oBrw:ResetVScroll( .T. )
oBrw:oHScroll:SetRange( 0, 0 )
oBrw:Refresh(.T., .T.)


Что сделать ещё нужно, для одинаковой работы ?

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 150
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 14.02.19 15:11. Заголовок: А есть ли в Минигуи ..


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

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7020
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.02.19 15:54. Заголовок: rvu Поиск по сырцам..


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

Спасибо: 1 
ПрофильЦитата Ответить





Пост N: 151
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 15.02.19 15:02. Заголовок: Dima Огромное спаси..


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

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7021
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.02.19 16:08. Заголовок: rvu Для IE не забыв..


rvu
Для IE не забываем oActiveX:Silent := 1

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 152
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 22.02.19 11:53. Заголовок: Есть несколько фрейм..


В html есть несколько фреймов. А как программным путем сделать конкретный фрейм активным? Хочу сделать кнопки печати сверху браузера, но чтобы они с разными фреймами работали.

Или как вариант - узнать имя файла открытого именно в этом фрейме в данный момент времени. Это можно?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2250
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.02.19 15:15. Заголовок: rvu пишет А как прог..


rvu пишет
 цитата:
А как программным путем сделать конкретный фрейм активным?


на hb это не делал, пробовал на AoutoIt, думается суть работы должна быть похожа Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 153
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 23.02.19 10:20. Заголовок: Засада оказалось в д..


Засада оказалось в другом месте. Печать работает только для всех фреймов сразу. Как ее сделать для одного фрейма не понял. Пока что повесил кнопку прямо во фрейме, в html, хотя мне это и не нравится.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2251
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.02.19 13:08. Заголовок: rvu Может якорь бел..


rvu
Может якорь белый текст на белом фоне вместо кнопки и его исполнять

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6269
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.04.19 17:22. Заголовок: Чем отличается работ..


Чем отличается работа МиниГуи в Win7 от Win8.1 ?

Сам пишу программу под Win8.1, ошибок нет, всё прекрасно работает.
Под Win7 при показе вылетает и всё тут.
Пытаюсь повторить эту ошибку у себя - нет ошибки. Совсем нет.
Пример:



Как поймать эти ошибки ?
Сделать запись в текстовый лог всех нажатий мышки на формах ? А как ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1485
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 24.04.19 18:16. Заголовок: Andrey пишет: Чем о..


Andrey пишет:

 цитата:
Чем отличается работа МиниГуи в Win7 от Win8.1 ?


Как минимум разные версии виндовс могут в разном порядке обрабатывать события. Сталкивался на W7 и Server2003



 цитата:
Как поймать эти ошибки ?


Установить себе W7

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7034
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.04.19 21:00. Заголовок: Andrey пишет: Сам п..


Andrey пишет:

 цитата:
Сам пишу программу под Win8.1


А на ней кто то работает еще ?
Народ в основном юзает XP(почти уходит на нет) ,7(как правило эту ось юзают) или 10(таких не много)

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6270
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.04.19 00:32. Заголовок: Dima пишет: А на не..


Dima пишет:

 цитата:
А на ней кто то работает еще ?


Да нет, под Win8.1 мало кто сидит. В основном народ уже уходит на 10-ку.
Просто Win8.1 как и 10-ка меньше проблем, МиниГуи - рулит !
На них прога работает отлично, под Windows Server 2008/2012 тоже проблем нет,
а вот под 7-кой начинает вылетать моя прога.
В самых неожиданных местах.
Принудительно клиента перевести не могу.
Видно придётся ждать, пока клиент созреет сам перейти на 10-ку.

Спасибо: 1 
ПрофильЦитата Ответить
администратор




Пост N: 1486
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 25.04.19 08:07. Заголовок: Andrey пишет: вот п..


Andrey пишет:

 цитата:
вот под 7-кой начинает вылетать моя прога


На работе 7ка и server2003 дома 10ка…
Нигде ни чего не вылетает. Вернее все вылеты устранены.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 841
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 06.10.20 10:09. Заголовок: Уважаемые коллеги! П..


Уважаемые коллеги! Пора двигаться вперед с Харбором, подтягивать программу к интернету. А то точно останемся на обочине. Всё чиним, чиним, деревянные колеса в своей телеге, когда все уже давно пересели на машины.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6833
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.10.20 17:11. Заголовок: Vlad04 пишет: Пора ..


Vlad04 пишет:

 цитата:
Пора двигаться вперед с Харбором, подтягивать программу к интернету. А то точно останемся на обочине.


Не понятное предложение, очень расплывчатое.
Более подробнее опишите что нужно.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7167
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.12.21 13:36. Заголовок: Григорий давал такой..


Григорий давал такой код для показа иконок на форме:
   DEFINE WINDOW Form_Main ... 
....
ON GOTFOCUS RefreshWin( ThisWindow.Handle ) ;
....
DRAW ICON IN WINDOW Form_Main AT ....
...

и функцию эту
// перересовка объектов на форме 
#define WM_PAINT 15
*--------------------------------------------------------*
Static Procedure RefreshWin( hWnd )
*--------------------------------------------------------*
SendMessage( hWnd, WM_PAINT, 0, 0 )
Do Events
Return

Надоело таскать это из проекта в другие проекты.
Можно вставить эту функцию в МиниГуи ?
Или можно по другому уже делать ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7168
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.12.21 17:21. Заголовок: SergKis пишет: А Re..


SergKis пишет:

 цитата:
А RefreshWnd(hWnd), попробуй сделать в свой ch или prg
#xtranslate RefreshWnd( <hWnd> ) => SendMessage( <hWnd> , 15 , 0 , 0 ) ; DoEvents() // WM_PAINT 15



Нет, не компилируется... Вот такая ошибка:
Harbour 3.2.0dev (r2104281802) 
Copyright (c) 1999-2021, https://harbour.github.io/

test-tsbview.prg(51) Error E0030 Syntax error "syntax error at 'ON'"
1 error
No code generated.

Исходник такой:
   DEFINE WINDOW Form_Main WIDTH nW HEIGHT nH TITLE cTtl      ; 
MAIN NOMAXIMIZE NOSIZE TOPMOST BACKCOLOR aBClr ;
ON GOTFOCUS RefreshWin( ThisWindow.Handle ) ;
ON INIT {|| This.TopMost := .F., This.Minimize ,;
DoEvents(), _wPost(nEvent) /*, _wPost(99)*/ }


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4007
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.12.21 17:50. Заголовок: Andrey пишет Ты под..


Andrey пишет
 цитата:
Нет, не компилируется... Вот такая ошибка


Ты подумал , что получилось после подстановки или посмотрел файл после препроцессора, параметр -p... ?
добавь скобки тут
#xtranslate RefreshWnd( <hWnd> ) => ( SendMessage( <hWnd> , 15 , 0 , 0 ) ; DoEvents() )
или в ON GOTFOCUS ( ... ) или {|| ... }

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7169
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.12.21 17:54. Заголовок: SergKis пишет: Ты п..


SergKis пишет:

 цитата:
Ты подумал , что получилось после подстановки или посмотрел файл после препроцессора, параметр -p... ?
добавь скобки тут


Да я думал, что уже готовое решение ...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7223
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.02.22 12:26. Заголовок: DRAW ICON IN WINDOW ..


DRAW ICON IN WINDOW ....

Можно ли добавить к этой программе возможности смены курсора на этом объекте и обработку клика мышки на этой иконке ?

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2019
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 18.02.22 22:34. Заголовок: Andrey пишет: возмо..


Andrey пишет:

 цитата:
возможности смены курсора на этом объекте и обработку клика мышки


Да, это можно сделать

Посмотри, как это работает в примере ниже (доработан пример из папки samples\Basic\Icons):

/* 
* Author: P.Chornyj <myorg63@mail.ru>
*
* A Quick & Easy guide to Microsoft Windows Icon Size
* https://www.creativefreedom.co.uk/icon-designers-blog/windows-7-icon-sizes/
*/

ANNOUNCE RDDSYS

#include "hmg.ch"
///////////////////////////////////////////////////////////////////////////////
procedure main()

local cIcon := 'IconVista.ico', hIcon
local aInfo
PUBLIC w, h

if IsVistaOrLater()
hIcon := LoadIconByName( cIcon, 256, 256 )
elseif IsWinXPorLater()
hIcon := LoadIconByName( cIcon, 128, 128 )
endif

if Empty( hIcon )
quit
endif

aInfo := GetIconSize( hIcon )
w := aInfo[ 1 ]
h := aInfo[ 2 ]

define window Form_Main ;
clientarea w, h + GetMenuBarHeight() ;
title 'Icons Demo' ;
main ;
nomaximize nosize ;
on release ;
( ;
DestroyIcon( hIcon ) ;
)

define main menu
define popup "&File"
menuitem "E&xit" action ThisWindow.Release
end popup
end menu

CREATE EVENT ProcName _IconMouseClick()

end window

draw icon in window Form_Main at 0, 0 hicon hIcon width w height h

on key Escape of Form_Main action ThisWindow.Release

Form_Main.Center()
Form_Main.Activate()

return

function _IconMouseClick( hWnd, nMsg, wParam, lParam )

LOCAL Flag := _IconMouseCursor()
LOCAL RetVal := NIL

#define WM_LBUTTONDOWN 513
IF nMsg == WM_LBUTTONDOWN .AND. Flag == .T.
IF hWnd == GetFormHandle( "Form_Main" ) // Click in show page to print
RetVal := 0
MsgInfo("Mouse Click!")
ENDIF
ENDIF

RETURN RetVal

function _IconMouseCursor()
LOCAL hWnd, aPos, IsPoint, aCoords := { h/2-10, w/2-10, h/2+10, w/2+10 }

STATIC s_Flag := .F.

IF _IsWindowDefined ( "Form_Main" ) .AND. ValType( aCoords ) == 'A'
hWnd := GetFormHandle( "Form_Main" )
aPos := GetCursorPos( hWnd )

IsPoint := PtInRect( aPos, aCoords )

IF IsPoint == .T. .AND. s_Flag == .F.
s_Flag := .T.
SetWindowCursor( hWnd, IDC_HAND )
ELSEIF IsPoint == .F. .AND. s_Flag == .T.
s_Flag := .F.
SetWindowCursor( hWnd, IDC_ARROW )
ENDIF
ENDIF

RETURN s_Flag

В этом примере мышка меняет форму курсора и выполняет действие только в центре иконки

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7224
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.02.22 12:23. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Посмотри, как это работает в примере ниже


Спасибо БОЛЬШОЕ !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7261
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.11.22 13:04. Заголовок: В 1С используют стан..


В 1С используют стандартный/системный бегунок копирования файлов.
А на МиниГуи можно сделать так же ?



Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2069
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 17.11.22 16:14. Заголовок: Andrey пишет: А на ..


Andrey пишет:

 цитата:
А на МиниГуи можно сделать так же ?


Да, это возможно с использованием моей библиотеки shell32, которая есть в дистрибутиве Минигуи вместе с исходниками.
См. пример в папке \samples\Basic\Shell32
Сначала запусти тест 1, а затем тест 2, и увидишь на мгновение этот системный диалог.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4181
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.11.22 17:19. Заголовок: Andrey пишет В 1С ис..


Andrey пишет
 цитата:
В 1С используют стандартный/системный бегунок копирования файлов


Для пользователя это "распальцовка" программиста, т.к. нужная инф. только в первых 2-х строках и возможно, в бегунке, если есть %, то и струя не обязательна. Время и скорость это не постоянная величина и может прыгать в процессе как в +, так и в - (особенно во внешней сети и плавающего объема инф.). Для пользователя важнее понимать (если он, как привязанный, вылупив глазки, следит за окном) сколько док-тов скопировано (приход\реализация\перемещения\... например в индикации), справочники (названия и кол-во строк\объектов в них в индикации). Соответственно протокол (возможно dbf), что бы с этого протокола что то вытащить, подав как список для выбора (не как из файла с именем blabla.dbf, а как логической структуры: документ, карточка, справочник, ..., могут располагаться в разных, связанных dbf). Копии можно делать в темную (без индикации), например, перед получением отчетной формы, которую клиент делает с подходящей периодичностью.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7262
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.11.22 19:09. Заголовок: SergKis пишет: Для ..


SergKis пишет:

 цитата:
Для пользователя это "распальцовка" программиста, т.к. нужная инф. только в первых 2-х строках


Согласен на 100%
Но пускай будет....

gfilatov2002 пишет:

 цитата:

Да, это возможно с использованием моей библиотеки shell32


СПАСИБО БОЛЬШОЕ !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7276
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.01.23 22:27. Заголовок: Опять возвращаюсь к ..


Опять возвращаюсь к большим курсорам.
Можно ли сделать курсор мышки 128х128 (типа движения по кругу, загрузка) ?
Это нужно для ожидания, т.е. пока прога "прочухается", чтобы юзер видел что программа работает.
Видел примеры SAMPLES\BASIC\CURSOR_2 и SAMPLES\BASIC\WindowBackground_2 - но они маленькие...
Помогите пожалуйста !

Или нельзя в своей программе увеличить курсор мышки ?
Пробовал через Настройку - размер увеличивается на все программы.


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7320
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.03.23 16:03. Заголовок: А как ресурс с кнопк..


А как ресурс (иконка - ассоциация файла) можно записать в поле базы в формате png или bmp ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7356
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.04.23 19:00. Заголовок: А иконку в контекстн..


А иконку в контекстное меню можно сразу выводить ?
gfilatov2002 пишет:

 цитата:

Уже можно...


Посмотрел. Классно !
Только иконка на белом фоне. Можно его (фон иконки) как исправить, чтобы сливался с фоном меню ?


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2125
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 05.04.23 21:41. Заголовок: Andrey пишет: ак ис..


Andrey пишет:

 цитата:
ак исправить, чтобы сливался с фоном меню ?


Сделал, чтобы убрать белый фон, как было максимально возможно.


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7357
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.04.23 23:42. Заголовок: Достаточно ! Спасибо..


Достаточно ! Спасибо !
А почему у формы программы МиниГуи углы закруглены ? Это как можно сделать ?
Хочу такие же скруглённые формы у себя в программе....

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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") } )

Нужно делать контекстное меню по колонке ТСБ с этими хендлами
Можно это сделать, или нужны только имена для контекстного меню ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7407
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.06.23 22:11. Заголовок: Можно ли как то сдел..


Можно ли как то сделать кнопку - мигающей, или gif-ку туда за бабахать ?
Юзера просто тупо не замечают красную кнопку появившуюся на форме.
Блин и как с ними бороться...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4294
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.06.23 22:39. Заголовок: Andrey пишет Блин и ..


Andrey пишет
 цитата:
Блин и как с ними бороться...


Если смена BackColor не устраивает, то делаешь мамнадцать кнопок в одних координатах (разные цвета, image ...), только одна видимая, остальные hide и крути их в цикле по очереди hide\show, можешь и Label с кликом так же делать

 цитата:
Юзера просто тупо не замечают красную кнопку появившуюся на форме


А ты оставь только красную кнопку , остальные контролы убери в hide
может заметят !?
PS
Windows update, если не делать, отказываться, через какое то время выключает мышку, клавиатуру ... и пока не начнешь делать перезагрузку (сразу цепляется update) ничего делать не получается.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7408
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.06.23 20:16. Заголовок: SergKis пишет: А ты..


SergKis пишет:

 цитата:
А ты оставь только красную кнопку , остальные контролы убери в hide


Да это лучшее решение, не подумал об этом. Спасибо !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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 )

Григорий, можно это сделать ?
Очень хочется... Синтаксис можно поменять, это просто моё видение синтаксиса.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7410
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.06.23 20:58. Заголовок: SergKis пишет: У те..


SergKis пишет:

 цитата:
У тебя есть bInit во всех ф-ях


Хочется ГОТОВУЮ и практичную функцию в составе МиниГуи (из коробки), а не заниматься дописыванием уже имеющих функций.
И самое ГЛАВНОЕ, я отказался ВЕЗДЕ от правки bInit в своих функциях.
Большая прога тупо вылетает на них !!!
Я тебе давал логи вылета и так не смог победить эти вылеты.
Убрал код в bInit и вылеты прекратились.
Так что этим bInit - нельзя пользоваться в БОЛЬШИХ программах, в маленьких работают.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4297
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.06.23 21:38. Заголовок: Andrey пишет Я тебе ..


Andrey пишет
 цитата:
Я тебе давал логи вылета и так не смог победить эти вылеты.


Так стиль написания такой, что проще заменить, причем весь код, я тебе про это говорил и писал.

 цитата:
Так что этим bInit - нельзя пользоваться в БОЛЬШИХ программах, в маленьких работают


Вся hmg на блоках кода, события окон, контролов и ... А bInit простой код в теле окна и заменить BUTTON, на BUTTONEX в тех же или немного др. координатах + изменить размер окна снизу - это оч. простые действия, ты их постоянно делаешь добавляя ф-ии (список целый) после DEFINE TBROWSE ... до END TBROWSE и все это находится в блоке кода события окна\кнопки ...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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 )


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7412
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.06.23 23:11. Заголовок: Спасибо БОЛЬШОЕ ! :..


Спасибо БОЛЬШОЕ !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7645
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.12.23 14:43. Заголовок: Сейчас на mail.ru сд..


Сейчас на mail.ru сделано красиво - снежинки падают.
Можно так же сделать на МиниГуи ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7652
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.01.24 12:01. Заголовок: Вывожу авишку на фор..


Вывожу авишку на форму ANIMATEBOX Avi_1 ... AUTOPLAY
После прорисовки формы проходит секунд 30 и только потом АВИ начинает двигаться.
Почему так ? Как сделать чтобы сразу анимация пошла ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7654
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.01.24 16:34. Заголовок: Вопрос по подвисанию..


Вопрос по подвисанию программы на МиниГуи.
Есть программа на С# из неё вызывается карточка из проги на МиниГуи по GetMessageData().
Однако программа на МиниГуи может быть занята длительной операцией, а юзер тупо кликнул вызов карточки.
Прога на МиниГуи виснет наглухо.
Как избавиться/блокировать вызов по GetMessageData() из проги на С# ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4489
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.01.24 18:03. Заголовок: Andrey пишет Как изб..


Andrey пишет
 цитата:
Как избавиться/блокировать вызов по GetMessageData() из проги на С# ?


1. Ставишь переменную длительной операции .T. (все работы, кроме приема от C#, клики, ... игнорируешь, повесив modal окно, например)
2. Принимаешь данные от C# в стек всегда
3. Проверяешь переменную длительной операции на .T., если да -> ничего не делаешь
4. Длительная операция завершилась, ставишь .F., смотришь стек, если не пустой исполняешь его или исполнение стека всегда по глобальному таймеру (проверка, если не пуст стек)

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7655
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.01.24 07:23. Заголовок: Можно изменить кодек..


Можно изменить кодек показа AVI-файлов в МиниГуи ?
А то очень многие авишки не показываются на форме....

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7656
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.01.24 10:58. Заголовок: А как можно передать..


А как можно передать хендл иконки для показа в функции AlertInfo() ?
Там же нужно указать явное имя ресурса.
А я хочу показать ранее открытую иконку из коллекции.
     This.Cargo:hIcon64 := LoadIconByName( "1MG_ICO", 64, 64 )         
...
hIcon := ow:Cargo:hIcon64
...
AlertInfo( Message, Title, Icon, nSize, aColors, lTopMost, bInit, lNoSound )


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4490
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.01.24 12:31. Заголовок: Andrey пишет А как м..


Andrey пишет
 цитата:
А как можно передать хендл иконки для показа в функции AlertInfo() ?


       
FUNCTION HMG_Alert( cMsg, aOptions, cTitle, nType, cIcoFile, nIcoSize, aBtnColors, bInit, lClosable, cFontName )
...
IF ISNUMBER( cIcoFile )

DRAW SYSICON IN WINDOW ( cForm ) ;
AT nRow + GetBorderHeight(), MARGIN / 1.4 ;
ICON cIcoFile WIDTH nIcoSize HEIGHT nIcoSize TRANSPARENT

ELSE

DRAW ICON IN WINDOW ( cForm ) ;
AT nRow + GetBorderHeight(), MARGIN / iif( nIcoSize == 32, 1.4, iif( nIcoSize == 48, 1.7, 2 ) ) ;
PICTURE cIcoFile WIDTH nIcoSize HEIGHT nIcoSize TRANSPARENT

ENDIF


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7657
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.01.24 12:41. Заголовок: Блин... СПАСИБО ! :..


Блин... СПАСИБО !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4491
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.01.24 18:43. Заголовок: Andrey пишет Показ н..


Andrey пишет
 цитата:
Показ на форме есть, а в AlertInfo() нет.


Если поправить h_alert.prg, то работает
 
IF ISNUMBER( cIcoFile )

DRAW ICON IN WINDOW ( cForm ) ;
AT nRow + GetBorderHeight(), MARGIN / iif( nIcoSize == 32, 1.4, iif( nIcoSize == 48, 1.7, 2 ) ) ;
HICON cIcoFile WIDTH nIcoSize HEIGHT nIcoSize TRANSPARENT

/*DRAW SYSICON IN WINDOW ( cForm ) ;
AT nRow + GetBorderHeight(), MARGIN / 1.4 ;
ICON cIcoFile WIDTH nIcoSize HEIGHT nIcoSize TRANSPARENT */

ELSE


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2238
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 13.01.24 20:15. Заголовок: SergKis пишет: Если..


SergKis пишет:

 цитата:
Если поправить h_alert.prg


Добавил такую возможность

Контрольный пример:

 цитата:

hIcon := LoadIconByName( "demo.ico", 32, 32 )
...
AlertInfo ( "MiniGUI Alert Boxes demo", , hIcon )


Благодарю за подсказку

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7658
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.01.24 16:21. Заголовок: Можно ли управлять B..


Можно ли управлять BORDER и CLIENTEDGE после построения LABEL ?

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2239
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 15.01.24 17:00. Заголовок: Andrey пишет: Можно..


Andrey пишет:

 цитата:
Можно ли управлять BORDER и CLIENTEDGE после построения LABEL ?


Да, это возможно.
См. рабочий пример ниже
Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7659
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.01.24 18:53. Заголовок: Спасибо БОЛЬШОЕ ! :..


Спасибо БОЛЬШОЕ !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7660
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.01.24 13:59. Заголовок: На форме куча ави-фа..


На форме куча ави-файлов.
Получаю список этих ави
 aName := HMG_GetFormControls(ow:Name, "ANIMATEBOX")  

А как получить имена файлов из которого состоит этот объект ?
         @ ... ANIMATEBOX &cName ...  File cResAvi ... 

P.S. Конечно можно сделать массив и запоминать там, но хочется попробовать сделать это через функции МиниГуи.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4492
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.01.24 14:24. Заголовок: А как получить имена..



 цитата:
А как получить имена файлов из которого состоит этот объект ?


 
FOR EACH oAvi IN ow:GetObj4Type( "ANIMATEBOX" )
Default oAvi:Cargo := oHmgData()
oAvi:Cargo:cFile := _HMG_aControlCaption[ oAvi:Index ] // avi file тут
NEXT

PS. в твоем варианте в цикле (в GetProperty(...) нет этого)
? _HMG_aControlCaption[ GetControlIndex(aName[ i ], ow:Name) ]


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4493
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.01.24 15:09. Заголовок: PS. Если у тебя avi ..


PS. Если у тебя avi логически связаны с Label, то соединить их для совместной работы можно так
Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7661
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.01.24 23:36. Заголовок: А на LABEL положить ..


А на LABEL положить градиент можно ?
Что то примеры не найду...

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2242
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 19.01.24 12:59. Заголовок: Andrey пишет: на LA..


Andrey пишет:

 цитата:
на LABEL положить градиент можно ?


Например, можно сделать так:



в примере из папки \SAMPLES\Advanced\DrawGradient

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7662
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.01.24 15:26. Заголовок: Классный пример, СПА..


Классный пример, СПАСИБО !
А после установки объекта на форме
      DRAW GRADIENT IN WINDOW &cForm  AT 250, 20 TO 278, 300 ; 
VERTICAL BORDER PANEL
Можно поменять следующие параметры и как поменять ?
VERTICAL - убрать  
PANEL - заменить на BOX
BEGINCOLOR - задать заново цвет
ENDCOLOR - задать заново цвет


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2243
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 19.01.24 16:15. Заголовок: Andrey пишет: Можно..


Andrey пишет:

 цитата:
Можно поменять следующие параметры и как поменять ?


Например, можно сделать так:
Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7663
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.01.24 16:25. Заголовок: Что-то мудрённый объ..


Что-то мудрённый объект этот...
А обработку на этот объект можно сделать ?
  DRAW GRADIENT IN WINDOW x AT 20, 20 TO 200, 300 BORDER BOX  < ACTION | ONCLICK > 
Да и имя бы иметь на этот объект было бы хорошо....
Да и синтаксис привести как у LABEL было бы лучше.
А возможно разместить градиент на уже готовой кнопке ?
Или расширить синтаксис LABEL ?
у BUTTONEX же есть уже градиент - [ GRADIENTFILL <aGradInfo> [ HORIZONTAL ] ]

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7666
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.01.24 14:17. Заголовок: Хочу чтобы имя фонта..


Хочу чтобы имя фонта и САМ ВИД ФОНТА отображался в контекстном меню.
Имя фонта меняю, а сам размер фонта не получается.

Для контекстного меню знаю что есть такие функции изменения:
   // для меню 
_SetMenuItemCaption( "SetFont" , cForm , cItem )
// для иконок
_SetMenuItemIcon( "SetCopy" , cForm, if( lCopy, "iCopy32On", "iCopy32Off" ) )
// для bmp
_SetMenuItemBitmap( "SetFile" , cForm, if( lFile, "bRecOn32" , "bRecOff32" ) )

А как поменять сам фонт и его размер в меню ?

.... 
STATIC cStaticFont, hStaticFont

DEFINE FONT TestFnt FONTNAME "DejaVu Sans Mono" SIZE 12 BOLD

hStaticFont := GetFontHandle( "TestFnt" )
aFont := GetFontParam( hStaticFont )
cStaticFont := aFont[1] + " " + HB_NtoS(aFont[2])
cStaticFont += IIF(aFont[3]," Bold", "" )
cStaticFont += IIF(aFont[4]," Itl" , "" )

DEFINE MAIN MENU
....
SEPARATOR
MENUITEM 'Change font: ' + cStaticFont NAME SetFont FONT hStaticFont ACTION ChangeFont()
...
END MENU
.........
Static FUNCTION ChangeFont()
LOCAL aFont, aF, cItem, cForm := "wMain"

aF := GetFontParam( hStaticFont )
// вызвать стандартное меню шрифт для Windows
aFont := GetFont( aF[1] , aF[2], aF[3], aF[4] , {0,0,0} , .f. , .f. , 0 )
if ! empty ( aFont[1] )

RELEASE FONT TestFnt // удаляем фонт
// Name , Size , Bold , Italic
aFont := { aFont[1] , aFont[2], aFont[3], aFont[4] }

DEFINE FONT TestFnt FONTNAME aFont[1] SIZE aFont[2]
DO EVENTS

// запишем новые значения фонта
cStaticFont := aFont[1] + " " + HB_NtoS(aFont[2])
cStaticFont += IIF(aFont[3]," Bold", "" )
cStaticFont += IIF(aFont[4]," Itl" , "" )
hStaticFont := GetFontHandle( "TestFnt" )
// запишем в меню новые значения фонта
cItem := _GetMenuItemCaption( "SetFont" , cForm )
cItem := SUBSTR(cItem, 1, AT(":",cItem) + 1 )
cItem += oCargo:cFont2
_SetMenuItemCaption( "SetFont" , cForm , cItem )

EndIf

RETURN NIL


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2251
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 27.01.24 15:38. Заголовок: Andrey пишет: как п..


Andrey пишет:

 цитата:
как поменять сам фонт и его размер в меню ?


Переписал эту функцию таким образом:
 
Static FUNCTION ChangeFont()
LOCAL aFont, aF, cItem, cForm := "wMain"

aF := GetFontParam( hStaticFont )
// вызвать стандартное меню шрифт для Windows
aFont := GetFont( aF[1] , aF[2], aF[3], aF[4] , {0,0,0} , .f. , .f. , 0 )
if ! empty ( aFont[1] )

RELEASE FONT TestFnt // удаляем фонт
// Name , Size , Bold , Italic
aFont := { aFont[1] , aFont[2], aFont[3], aFont[4] }

//DEFINE FONT TestFnt FONTNAME aFont[1] SIZE aFont[2]
_DefineFont ( 'TestFnt', aFont[1], aFont[2], aFont[3], aFont[4] )

DO EVENTS

// запишем новые значения фонта
cStaticFont := aFont[1] + " " + HB_NtoS(aFont[2])
cStaticFont += IIF(aFont[3]," Bold", "" )
cStaticFont += IIF(aFont[4]," Itl" , "" )
hStaticFont := GetFontHandle( "TestFnt" )
// запишем в меню новые значения фонта
cItem := _GetMenuItemCaption( "SetFont" , cForm )
cItem := SUBSTR(cItem, 1, AT(":",cItem) + 1 )
cItem += cStaticFont
_SetMenuItemCaption( "SetFont" , cForm , cItem )

_SetMenuItemFont( "SetFont" , cForm , hStaticFont )

EndIf

RETURN NIL

Результат см. на картинке ниже:


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4502
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 27.01.24 17:10. Заголовок: gfilatov2002 пишет П..


gfilatov2002 пишет
 цитата:
Переписал эту функцию таким образом


Еще небольшую правку в _o2log(...)
 
*----------------------------------------------------------------------------*
FUNCTION _o2Log( o, nLen, cMsg, lExt, cLog )
*----------------------------------------------------------------------------*
LOCAL a, b, c, i, j, k := pCount(), l := .F., xRet := .T.
LOCAL lLog := IsErrorLogActive()


IF Valtype(cLog) $ "LND"
l := .T.
cLog := hb_FNameDir( _SetGetLogFile() ) + "_" + hb_ntos( Seconds() )
_HMG_CreateErrorLog := .T.

ENDIF
...
IF l .and. hb_FileExists( cLog )
xRet := hb_memoread( cLog )
hb_FileDelete( cLog )
_HMG_CreateErrorLog := lLog

ENDIF

RETURN xRet


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2252
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 27.01.24 18:05. Заголовок: SergKis пишет: Еще ..


SergKis пишет:

 цитата:
Еще небольшую правку в _o2log(...)


Принято с благодарностью

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7667
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.01.24 20:21. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Переписал эту функцию таким образом:


Спасибо БОЛЬШОЕ !
А как быть с цветом ?
Т.е. меню "Change color"

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2253
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 28.01.24 14:53. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А как быть с цветом ?


Посмотри еще раз пример в папке \SAMPLES\Advanced\ComboColor, а именно функцию CreateColorBMP()

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4503
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.01.24 18:33. Заголовок: gfilatov2002 Еще пр..


gfilatov2002
Еще правка в
 
*----------------------------------------------------------------------------*
FUNCTION _o2Log( o, nLen, cMsg, lExt, cLog )
*----------------------------------------------------------------------------*
LOCAL a, b, c, i, j, k := pCount(), l := .F., xRet := .T.
LOCAL lLog := IsErrorLogActive(), aTmp, xTmp, cTmp
...
IF HB_ISOBJECT( o )
...
FOR EACH a IN o:GetAll()
...
IF HB_ISOBJECT( a[2] )
...
ELSEIF HB_ISARRAY( a[2] ) .and. lExt
aTmp := {}
FOR EACH xTmp IN a[2]
IF HB_ISOBJECT(xTmp)
cTmp := "O:" + xTmp:ClassName
IF xTmp:ClassName $ "THMGDATA,TKEYDATA,TTHRDATA,TINIDATA"
cTmp += " "+"ARRAY[" + hb_ntos( xTmp:Len() ) + "]"
IF xTmp:ClassName == "TINIDATA"
cTmp += " "+xTmp:cIni
ENDIF
ELSEIF xTmp:ClassName == "TWNDDATA"
cTmp += " "+xTmp:Name+" "+xTmp:Type
ELSEIF xTmp:ClassName $ "TCNLDATA,TTSBDATA,TGETDATA,TSTBDATA"
cTmp += " "+xTmp:Window+" "+xTmp:Name+" "+xTmp:Type
ELSEIF xTmp:ClassName == "TSBROWSE"
cTmp += " "+xTmp:cControlName+" "+xTmp:cParentWnd+" "+xTmp:cAlias
ENDIF
AAdd( aTmp, cTmp )
ELSE
AAdd( aTmp, xTmp )
ENDIF
NEXT
_LogFile( {.F., cLog}, hb_valtoexp( aTmp ) )
//_LogFile( {.F., cLog}, hb_valtoexp( a[2] ) )

ELSE
...


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2254
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 28.01.24 19:23. Заголовок: SergKis пишет: Еще ..


SergKis пишет:

 цитата:
Еще правка


Добавил, конечно.
Благодарю за помощь

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7668
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.01.24 22:13. Заголовок: Григорий, а можно по..


Григорий, а можно побороть: несовместимость режима TRANSPARENT для LABEL на форме и переключения тем ?

gfilatov2002 пишет:

 цитата:
Посмотри еще раз пример в папке \SAMPLES\Advanced\ComboColor, а именно функцию CreateColorBMP()


А как сделать bmp 32x32 и поместить его в
       MENUITEM 'Change color: [[[[[[]]]]]' FONT hFont ACTION ( aZClr := ChangeColor(aZClr) )  



Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2255
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 29.01.24 12:51. Заголовок: Andrey пишет: можно..


Andrey пишет:

 цитата:
можно побороть: несовместимость режима TRANSPARENT для LABEL на форме и переключения тем ?


Уже поправил.

Andrey пишет:

 цитата:
как сделать bmp 32x32 и поместить его в


Примерно вот так:



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4504
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.01.24 16:13. Заголовок: gfilatov2002 Еще не..


gfilatov2002
Еще небольшая правка _o2log()
 
...
IF HB_ISOBJECT( o )
...
ELSEIF HB_ISARRAY( o )
_LogFile( {.F., cLog}, o )

FOR EACH a IN o
i := hb_enumIndex( a )
j := TR0( i, nLen - 1 ) + "." + " " + '"' + Valtype( a ) + '"'
_LogFile( {.T., cLog}, j + " -> " )

IF HB_ISOBJECT( a )
_o2Log( a, nLen + 5, , lExt, cLog )

ELSEIF HB_ISARRAY( a )
_LogFile( {.T., cLog}, TR0( i, nLen - 1 ) + "." )
...


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2256
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 29.01.24 16:54. Заголовок: SergKis пишет: Еще ..


SergKis пишет:

 цитата:
Еще небольшая правка _o2log()


OK

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4505
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.01.24 17:37. Заголовок: gfilatov2002 Пропус..


gfilatov2002
Пропустил неточность, надо чуток добавить в код выше обвязку
 
FOR EACH a IN o
i := hb_enumIndex( a )
IF ! HB_ISARRAY( a )
j := TR0( i, nLen - 1 ) + "." + " " + '"' + Valtype( a ) + '"'
_LogFile( {.T., cLog}, j + " -> " )
ENDIF

IF HB_ISOBJECT( a )

Пример для проверки тут https://TransFiles.ru/jw39y
В demo4.ini можно задавать cMainMenuItems = MENU_1 or MENU_2 or MENU_3 и др. переменными, кроме cMainMenuFile (или сделать др. файл ini с секциями для items)

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2257
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 29.01.24 17:49. Заголовок: SergKis пишет: доба..


SergKis пишет:

 цитата:
добавить в код выше


Принято

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7669
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.01.24 22:34. Заголовок: А как можно получить..


А как можно получить хенлы иконок из i_controlmisc.ch ?
// Alert icons 
#define ICON_EXCLAMATION 1 // default value
#define ICON_QUESTION 2
#define ICON_INFORMATION 3
#define ICON_STOP 4

И можно ли этот хендл показать вместо файла/ресурса в меню
         MENUITEM '&About' .... ICON "i_About32" FONT "DlgFont"   

Или нужно этот хендл иконки записать в файл, и потом показывать ? Как это сделать ?
Не нашёл в примерах запись иконки по хендлу.

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2258
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 01.02.24 16:15. Заголовок: Andrey пишет: Не на..


Andrey пишет:

 цитата:
Не нашёл в примерах запись иконки по хендлу.


Посмотри рабочий пример ниже
Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7670
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.02.24 23:26. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
C_SaveHIconToFile( cIconName, aIcons )


Не то ! Это я видел.
Нужна одна иконка, а не коллекция иконок, т.е.
   cIcoExtrn := '.\Res\IconVista3.ico'  // icon file of all sizes 
hIcon := LoadIconByName( cIcoExtrn, 64 , 64 )
// а как записать hIcon ?

Это нужно потом для показа иконок в
      AlertInfo( cMsg, "About", hIcon, nIcoSize, aBtnClr, .T. , bOnInit, .F. ) 
AlertStop( cMsg, "About", hIcon, nIcoSize, aBtnClr, .T. , bOnInit, .F. )
и т.д.

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2259
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 02.02.24 10:57. Заголовок: Andrey пишет: а как..


Andrey пишет:

 цитата:
а как записать hIcon ?


hIcon в данном случае - это временный указатель на загруженную иконку.
Сохранить его для дальнейшего использования можно только в переменную (например, статическую).

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7671
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 02.02.24 13:52. Заголовок: Понял. Спасибо ! :s..


Понял. Спасибо !
А как у других это делается в HMG или FiveWin ?
Оттуда код портировать нельзя ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7672
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.02.24 02:48. Заголовок: Нашёл немного не то,..


Нашёл немного не то, но тоже интересно. Иконку можно записать как .png и .bmp
Тоже бы не помешало в МиниГуи иметь такое.
https://forums.fivetechsupport.com/viewtopic.php?f=3&t=35109

Пост N: 1186
Там в исходнике на С есть такое:
 	//	Write the iconheader first of all  
//
WriteIconHeader(hFile, nNumIcons);

И ещё нашёл на С++
HRESULT SaveIcon(HICON hIcon, const wchar_t* path) { 
// Create the IPicture intrface
PICTDESC desc = { sizeof(PICTDESC) };
....

https://stackoverflow.com/questions/2289894/how-can-i-save-hicon-to-an-ico-file

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2260
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 03.02.24 13:11. Заголовок: Andrey пишет: Иконк..


Andrey пишет:

 цитата:
Иконку можно записать как .png и .bmp


Уже есть такая возможность

extern HBITMAP Icon2Bmp( HICON hIcon ); 

HB_FUNC( BMPFROMICON )
{
HICON hIcon = ( HICON ) hb_parnl( 1 );

hb_retnl( ( LONG ) Icon2Bmp( hIcon ) );
}

Можно использовать так:

 цитата:
Win_1.Image_1.hBitmap := BmpFromIcon( hIcon1 )


Кстати, этот код взят из твоего примера

/*
* MINIGUI - Harbour Win32 GUI library Demo
*
* Copyright 2023 Verchenko Andrey <verchenkoag@gmail.com> Dmitrov, Moscow region
* Copyright 2023 Grigory Filatov <gfilatov@inbox.ru>
*
* Манипуляции с объектами на форме
* Manipulating objects on a form
*/

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7673
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.02.24 19:53. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Кстати, этот код взят из твоего примера


Так это только заготовка, недоделанная...
И всего ОДНА операция - иконка в Bmp без прозрачности.
А в png нет...

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2261
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 03.02.24 20:23. Заголовок: Andrey пишет: А в p..


Andrey пишет:

 цитата:
А в png нет...


Есть такая функция
И снова она взята из твоего примера
 
// извлечь файл картинки из ресурсов программы
FUNCTION myICO2PNG(cRes)
LOCAl aImage, cFileLogo, aXY, cMsg, nResult, cFile
Default cRes := "LogoMG"

cFile := cRes + ".ico"
aImage := {} // нет картинки ! файл для экспорта !

cFileLogo := GetTempFolder() + "\" + cFile
If !hb_FileExists( cFileLogo )
nResult := RCDataToFile( cRes, cFileLogo )
If nResult > 0
Else
cMsg := "cRes = '" + cRes + "'" + CRLF
cMsg += "RCDataToFile() - Code: " + hb_NtoS( nResult ) + CRLF
cMsg += cFileLogo + CRLF
MsgStop( cMsg, "Checkout error" )
Endif
Endif
If hb_FileExists( cFileLogo )
cFile := hb_dirBase() + cRes + ".png"
HMG_SaveImage( cFileLogo, cFile, "PNG" ) // Save to PNG

FErase ( cFileLogo )

aXY := hb_GetImageSize( cFile )
cMsg := cFile + ": " + hb_NtoS( aXY[1] ) + " x " + hb_NtoS( aXY[2] ) + " Pixels"
//AlertInfo(cMsg)
aImage := { cFile, aXY[1], aXY[2] }
Endif

RETURN aImage


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7674
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.02.24 22:27. Заголовок: Тогда осталось запис..


Тогда осталось запись хендла в иконку и оформить все в одном примере.
Или лучше записать всё в хелпе.
Что-то в примерах уже путаешься, искать нужный вариант сложно.
И не понял как иконку с формы записать в png ?
И ещё вопрос по иконкам. Как можно положить маску цвета на иконку ?
Сейчас приходиться для кнопок вносить в ресурсы 2 кнопки: обычную и с наложенным цветом желтую иконку.
Для смены иконки при наведении на кнопки мышкой.
Если можно сделать как в редакторе иконок:


Тогда бы ресурсы проги стали бы занимать в 2 раза меньше места.
А у меня 20 мб картинок и иконок в ресурсах моей проги...

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2262
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 04.02.24 12:05. Заголовок: Andrey пишет: Как м..


Andrey пишет:

 цитата:
Как можно положить маску цвета


Для этого надо использовать дополнительные библиотеки:

1) bostaurus, которая входит в состав Минигуи;

2) бесплатную мощную внешнюю DLL - freeimage (есть примеры использования в поставке Минигуи).

Andrey пишет:

 цитата:
Тогда бы ресурсы проги стали бы занимать


1) Обрати внимание на оптимизацию ресурсов по размеру и цветности;
2) можно с помощью дополнительной бесплатной библиотеки hbsvg создавать простые векторные рисунки.
Ниже см. пример картинки, созданной с помощью этой библиотеки:


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2263
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 04.02.24 15:22. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
можно с помощью дополнительной бесплатной библиотеки hbsvg создавать простые векторные рисунки.


Еще один пример использования этой библиотеки - вывод табличных данных из DBF файла на картинку



Полный код этой программы см. ниже:
Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7675
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.02.24 03:30. Заголовок: Вот нашёл https://ww..


Вот нашёл
https://www.forums.fivetechsupport.com/viewtopic.php?f=3&t=35547&p=211638&hilit=ico+to+png&sid=f6a307bf435b0e6fa8ba4aa5a88388ac#p211638
 
FWH 18.03: FW_SaveImage()
Postby nageswaragunupudi » Tue Apr 24, 2018 1:26 pm
New functions in FWH 18.03

FW_SaveHBitmap( hBitmap, cBmpFile ) --> lSuccess // в Минигуи похоже HMG_SaveImage( Win_1.Image_1.hBitmap, cFile1, "PNG" )
FW_SaveHIContoIco( hIcon, cIconFile ) --> lSuccess // сделать для МиниГуи можно ?

The above two functions are self explanatory.

FW_SaveImage( [uSource], [cFile], [lJpgQuality] ) --> lSuccess

Народ, кто работает на Fivewin'е поделитесь исходниками функцией FW_SaveHIContoIco( hIcon, cIconFile )

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2264
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 05.02.24 12:57. Заголовок: Andrey пишет: FW_Sa..


Andrey пишет:

 цитата:
FW_SaveHIContoIco( hIcon, cIconFile ) --> lSuccess


Такая функция уже есть в Минигуи:
 
FUNCTION SaveHIconToIco( hIcon, cIconName )

IF ".ICO" $ Upper( cIconName )
ELSE
cIconName := Trim( cIconName ) + ".ICO"
ENDIF

RETURN C_SaveHIconToFile( cIconName, { hIcon } )

Она была использована в примере samples\Basic\Icons\demo2.prg

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7676
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.02.24 13:45. Заголовок: А я не нашёл... Спас..


А я не нашёл... Спасибо БОЛЬШОЕ !
Вот что значит хелпа нет по функциям...
Что искать и не знаешь...

Тогда в примере-3 нужно сделать как то наложение маски цвета и пример будет готов.
Как это можно сделать ?

P.S. Есть пример \MiniGUI\SAMPLES\Advanced\GrayBmp, там используется функция
GrayBmp( GetControlHandle( "Image_1", "Form_1" ), cImage, Form_1.Image_1.Width, Form_1.Image_1.Height )

Вот наподобие надо для иконок.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7677
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.02.24 19:06. Заголовок: А сменить Background..


А сменить BackgroundColor картинки уже выведенной на форму можно ?
Делаю сначала:
      @ y, x + n IMAGE &cN OF Win_1 PICTURE '' WIDTH aSz HEIGHT aSz ; 
;//TRANSPARENT BACKGROUNDCOLOR aBColor
а потом пытаюсь сделать:
Win_1.&(cN).BackgroundColor := aBColor
и фон НЕ МЕНЯЕТСЯ !!!

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2265
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 06.02.24 19:28. Заголовок: Andrey пишет: смени..


Andrey пишет:

 цитата:
сменить BackgroundColor картинки уже выведенной на форму


Посмотри, как это сделано в примере Basic\IMAGE_2 - параметры картинки изменяются динамически.


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7678
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.02.24 10:18. Заголовок: Использую выборку ко..


Использую выборку коллекций иконок из dll и сохранение этой коллекции в файл:
      aIcons    := ExtractIconEx( cIconDll, nItem ) 
// icon with number XX to write along the path
lRet := C_SaveHIconToFile( cIconSave, aIcons )

В файл записываются только иконки 16x16 и 32x32.
А мне нужны все иконки и большие тоже.
Как это сделать ?
Можно модифицировать функцию ExtractIconEx() чтобы все иконки брались ?

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2267
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 08.02.24 15:59. Заголовок: Andrey пишет: мне н..


Andrey пишет:

 цитата:
мне нужны все иконки и большие тоже.
Как это сделать ?


Нужно вместо функции ExtractIconEx() использовать другую WINAPI функцию PrivateExtractIcons(), которая позволяет извлекать иконки больших размеров.
Пример использования:
 
cIcon := 'IconVista.ico'
hIcon1 := LoadIconByName( cIcon, 256, 256 )
hIcon2 := LoadIconByName( cIcon, 128, 128 )
hIcon3 := LoadIconByName( cIcon, 64, 64 )
cIcon := 'v:\rh.exe'
msgdebug(PRIVATEEXTRACTICONS(cIcon, -1)) // return 9
a:=PRIVATEEXTRACTICONS(cIcon, 0, 256, 256) // icon 256x256
if ishicon(a[1])
hIcon1:=a[1]
endif
hIcon2:=PRIVATEEXTRACTICONS(cIcon, 8, 128, 128)[1] // icon 128x128

Результат ее работы при извлечении иконок из внешнего приложения см. на картинке:


P.S. Другой пример извлекает большие иконки из DLL в папке minigui\samples\Basic\Icons .
   cIcon   := 'myicons.dll' 
msgdebug(PRIVATEEXTRACTICONS(cIcon, -1)) // return 1
a:=PRIVATEEXTRACTICONS(cIcon, 0, 256, 256)
IF ISHICON(a[1])
hIcon1:=a[1]
ENDIF
hIcon2:=PRIVATEEXTRACTICONS(cIcon, 0, 128, 128)[1]
hIcon3:=PRIVATEEXTRACTICONS(cIcon, 0, 64, 64)[1]



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7679
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.02.24 17:33. Заголовок: Спасибо БОЛЬШОЕ ! g..


Спасибо БОЛЬШОЕ !

gfilatov2002 пишет:

 цитата:
Другой пример извлекает большие иконки из DLL в папке minigui\samples\Basic\Icons .


Там в примере demo3.prg есть функция hb_BitOr( DST_ICON, DSS_MONO )
Я пропустил этот пример, только сейчас увидел.
А можно наподобие такой функции сделать наложение маски цвета ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7695
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.03.24 20:42. Заголовок: Можно ли на объекте ..


Можно ли на объекте ButtonEX отключить ВООБЩЕ окантовку кнопки ?

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2291
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 04.03.24 12:36. Заголовок: Andrey пишет: Можно..


Andrey пишет:

 цитата:
Можно ли на объекте ButtonEX отключить ВООБЩЕ окантовку


Надеюсь, пример \SAMPLES\Advanced\ExpButton уже видел
Вроде, там нет никакой окантовки у кнопок...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7697
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.03.24 13:28. Заголовок: Да, помню этот приме..


Да, помню этот пример, красивые кнопки.

Мне нужно допустим форма SILVER и сделать кнопку без окантовки тоже SILVER с иконкой.
Т.е. чтобы не было видно что это кнопка.
А при смене фокуса, меняю иконку.
Как то можно окантовку отключить ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4535
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.03.24 15:17. Заголовок: gfilatov2002 пишет В..


gfilatov2002 пишет
 цитата:
Вроде, там нет никакой окантовки у кнопок...


Что бы шире использовать Cargo кнопки, исправил код примера с использованием oHmgData()
Тут пример https://TransFiles.ru/6i56x

Andrey пишет
 цитата:
Как то можно окантовку отключить ?


В примере ф-я
*-----------------------------------------------------------------------------*
FUNCTION OwnButtonPaint( pdis )
*-----------------------------------------------------------------------------*
заменяет родную из minigui.lib читай readme.txt, там режимы описаны
Надо подстраивать под себя массив App.Cargo:aButStyles и в Cargo кнопки варианты для painting и image, т.е.
 
ON INIT {|o| This.Cargo := oHmgData(), o := ThisWindow.Cargo, ;
This.Cargo:aButStyles := o:aButStyles, ;
This.Cargo:cButMisc := '3,'+o:cResPath+'open.bmp' }


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2292
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 04.03.24 16:05. Заголовок: SergKis пишет: испр..


SergKis пишет:

 цитата:
исправил код примера с использованием oHmgData()


Большое спасибо за помощь

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7698
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.03.24 16:09. Заголовок: Это большой пример. ..


Это большой пример.
Попроще может быть пример ?
Форма и одна кнопка без окантовки с иконкой ...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4536
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.03.24 16:42. Заголовок: Andrey пишет Это бол..


Andrey пишет
 цитата:
Это большой пример.
Попроще может быть пример ?
Форма и одна кнопка без окантовки с иконкой ...


Бери demo.prg и оставляй, только то, что интересно, остальное удали - это сборка под hmg 24.02 и даже без SET OOP ON

Вопрос, наверное, надо ставить по другому, может вкл. этот обработчик в minigui.lib, соединив его с тем что есть ? + команды для установки вариантов, но это требует детального понимания кода, я не разбирался, где и что лежит
PS
Наследование данных из App.Cargo позволит делать для каждого окна свое поведение кнопок ButtonEx, надо использовать в окне команду
This.Cargo:aButStyles := AClone( App.Cargo:aButStyles )
... потом менять значения для поведения в This.Cargo:aButStyles
у кнопок без установленного Cargo будет поведение из App.Cargo:aButStyles по умолчанию
iButStyle := 1
aButMisc := { 1, '' }

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7700
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.03.24 17:25. Заголовок: SergKis пишет: Вопр..


SergKis пишет:

 цитата:
Вопрос, наверное, надо ставить по другому, может вкл. этот обработчик в minigui.lib, соединив его с тем что есть ?


Согласен с этим !!!

Я вывожу png на форму и назначаю на картинку клик мышки.
Но картинка фигово выглядит, линия соединения с формой ЗУБЧИКАМИ вся...
Из-за этого и захотел сделать кнопку без окантовки.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4537
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.03.24 22:37. Заголовок: Andrey пишет Я вывож..


Andrey пишет
 цитата:
Я вывожу png на форму и назначаю на картинку клик мышки.
Но картинка фигово выглядит, линия соединения с формой ЗУБЧИКАМИ вся...
Из-за этого и захотел сделать кнопку без окантовки.


ButtonEx тут причем ? В нем bmp и icon
Может хотел png и Label ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7701
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.03.24 03:41. Заголовок: SergKis пишет: Butt..


SergKis пишет:

 цитата:
ButtonEx тут причем ? В нем bmp и icon


PNG выводить не вариант.
Вывод ICON на форму тоже не вариант, т.к. на иконку нельзя повесить клик мышки.
Вернее можно по координатам, но коду дофига.

Остаётся только BUTTONEXT с иконкой без окантовки, там можно повесить ACTION
Вот и спрашиваю, как проще убрать окантовку кнопки ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4538
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 05.03.24 05:50. Заголовок: Andrey пишет Вот и с..


Andrey пишет
 цитата:
Вот и спрашиваю, как проще убрать окантовку кнопки ?


Кнопки из Label с Avi ты делал, аналог (пример с Popup_Menu) с DRAW ICON ~ такой (окантовки нет)
 
nW := This.ClientWidth
nH := This.ClientHeight

nY := 5 ; nX := nW - 64

DRAW ICON IN WINDOW &cForm AT nY, nX HICON This.Cargo:hIcon ;
WIDTH 64 HEIGHT 64 COLOR This.Backcolor
@ nY, nX LABEL DrawIcon VALUE "" WIDTH 64 HEIGHT 64 TRANSPARENT ;
ACTION AlertInfo("Click: "+ThisWindow.Name+"."+This.Name)

nY := 2 ; nX := 10

@ nY, nX LABEL Buff VALUE cVal WIDTH nW - 80 HEIGHT nH FONT "FontHmg" ;
FONTCOLOR WHITE BACKCOLOR oAC():aBClrMain RIGHTALIGN ;
ACTION AlertInfo("Click: "+ThisWindow.Name+"."+This.Name)
...
o:Event({ 1, "Paint"}, {|ow| // прорисовка иконки сразу на форме
This.DrawIcon.Hide()
DoEvents()
SendMessage( ow:Handle, WM_PAINT, 0, 0 )
This.DrawIcon.Show()
DoEvents()
Return Nil
})
...


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7702
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.03.24 10:36. Заголовок: Иконка конфликтует с..


Иконка конфликтует с LABEL, т.е. она будет затираться LABEL'ом

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4539
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 05.03.24 11:49. Заголовок: Andrey Не затираетс..


Andrey
Не затирается в примере со строками выше

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7703
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.03.24 12:04. Заголовок: SergKis пишет: Не з..


SergKis пишет:

 цитата:
Не затирается в примере со строками выше


Это похоже на кнопку с иконкой.
А мне нужно чтобы юзер на иконку кликнул и получил результат,
причём при попадание в фокус иконки мышка меняла форму на палец.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4540
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 05.03.24 12:50. Заголовок: Andrey пишет Это пох..


Andrey пишет
 цитата:
Это похоже на кнопку с иконкой.
А мне нужно чтобы юзер на иконку кликнул и получил результат,
причём при попадание в фокус иконки мышка меняла форму на палец.


Так ты же этого и хочешь, т.е. чтобы была кнопка без окантовки, смотри файл i_label.ch
 
#command @ <row>,<col> LABEL <name> ;
...
[ <dummy2: ACTION, ON CLICK, ONCLICK> <action> ] ;
[ ON DBLCLICK <dblclick> ] ;
[ ON RCLICK <rclick> ] ;
[ <dummy3: ON MOUSEHOVER, ONMOUSEHOVER> <overproc> ] ;
[ <dummy4: ON MOUSELEAVE, ONMOUSELEAVE> <leaveproc> ] ;
...

все есть, даже выпадающее меню можешь приделать, как на кнопку
DEFINE CONTEXT MENU CONTROL &cLbl
...
окантовку делать ф-ей DrawRR(...) из примеров, если надо (могут быть с закругленными углами)
Цвета и градиента не будет, но палец и окантовка цветная будет и с темной темой будет сочетатся

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7704
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.03.24 13:48. Заголовок: Может я плохо объясн..


Может я плохо объяснил.
Сделал пример для иконки, Григорий добавил обработку иконки.
Но иконка часто при уходе НЕ МЕНЯЕТСЯ... Да и кода дофига писать приходиться.
Вот пример - https://cloud.mail.ru/public/prnj/7gHLfUwwW

Можно ли сделать класс для иконки похожий на кнопку/картинку ?
       @ nY, nX ICON Icon_2 PICTURE 'iDebug64x1' WIDTH 64 HEIGHT 64 BACKGROUNDCOLOR aBackColor  ; 
OnMouseHover {|| This.Icon := 'iDebug64x2' , RC_CURSOR("MINIGUI_FINGER") } ;
OnMouseLeave {|| This.Icon := 'iDebug64x1' } ;
ACTION {|| MsgDebug( This.Name ) }

Самый простой выход - убрать окантовку кнопки... Но как не знаю...

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2293
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 05.03.24 15:25. Заголовок: Andrey пишет: Самый..


Andrey пишет:

 цитата:
Самый простой выход - убрать окантовку кнопки...


Так, как на картинке ниже, подойдет


Изменения, которые сделал в коде примера, см. ниже
Скрытый текст



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7705
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.03.24 16:37. Заголовок: Супер ! Спасибо БОЛЬ..


Супер ! Спасибо БОЛЬШОЕ !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7706
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.03.24 19:26. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Изменения, которые сделал в коде примера, см. ниже


У меня что-то не срабатывают эти изменения...
Положил к Сергею на ftp свой исправленный файл....

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2294
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 05.03.24 20:21. Заголовок: Andrey пишет: У мен..


Andrey пишет:

 цитата:
У меня что-то не срабатывают эти изменения


Положил к Сергею на ftp в папку Andrey свой рабочий проект

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7707
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.03.24 22:33. Заголовок: Спасибо ! Я забыл до..


Спасибо !
Я забыл добавить в проект myownbut51.prg
Мой тоже заработал с этим добавлением.

Ещё вопрос, допустим на форму вывожу 3 иконки:
      DRAW ICON IN WINDOW Form_Main AT nY, nX PICTURE 'Icon1' WIDTH 64 HEIGHT 64 COLOR aBackColor 
nX += 64 + 10
DRAW ICON IN WINDOW Form_Main AT nY, nX PICTURE 'Icon2' WIDTH 64 HEIGHT 64 COLOR aBackColor
nX += 64 + 10
DRAW ICON IN WINDOW Form_Main AT nY, nX PICTURE 'Icon2' WIDTH 64 HEIGHT 64 COLOR aBackColor

После закрытия формы нужно удалять хендлы иконок. А как в этом случае быть ? Как определить эти хендлы ?

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2295
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 05.03.24 22:55. Заголовок: Andrey пишет: После..


Andrey пишет:

 цитата:
После закрытия формы нужно удалять хендлы иконок


В этом случае ничего специально НЕ НАДО делать.
Все хендлы иконок будут очищены автоматически
Это легко проверить, если собрать проект с отладчиком или просто добавить в проект вызов функции

 цитата:
AltD( 1 )


Если в проекте есть утечка ресурсов, то при выходе из программы будет создан дополнительный текстовый файл с указанием, где в коде были определены эти ресурсы.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7708
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.03.24 22:59. Заголовок: СПАСИБО БОЛЬШОЕ ! :..


СПАСИБО БОЛЬШОЕ !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7709
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.03.24 07:06. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Так, как на картинке ниже, подойдет


На форме ВСЕ кнопки теряют окантовку !!!
А как можно сделать, чтобы только у некоторых кнопок можно удалять окантовку ?

SergKis пишет:

 цитата:
у кнопок без установленного Cargo будет поведение из App.Cargo:aButStyles по умолчанию
iButStyle := 1
aButMisc := { 1, '' }


Это не работает...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4541
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.03.24 12:59. Заголовок: Andrey пишет Это не ..


Andrey пишет
 цитата:
Это не работает...


А ты обратил внимание что произошло упрощение примера, как ты и просил, все поведения кнопок убраны из массива
 
:aButStyles := { ; // для кнопки - убрать окантовку
{ 0, 1, aBackColor, aBackColor, aBackColor, aBackColor, BLACK, BLACK, 1, aBackColor, aBackColor } ;
}

надо разбирать назначения всех элементов в нем и применять правильно, т.е. из кода myownbut51.prg надо инструкцию писать, вот немного начал, можешь продолжить Скрытый текст

без понимания, как применять

 цитата:
А как можно сделать, чтобы только у некоторых кнопок можно удалять окантовку ?


Разобраться в алгоритмах myownbut51.prg примера и заодно в алгоритмах такой же ф-ии из h_buttonex.prg

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7718
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.03.24 20:58. Заголовок: Есть пример C:\M..


Есть пример C:\MiniGUI\SAMPLES\BASIC\GetBox_3
Как в нём заменить окно с ошибкой MsgXXX() для даты на окно с AlertStop() ?
      DEFINE GETBOX Text_1 // Alternate Syntax 
ROW ( :Y := :T )
COL ( :X := :L )
WIDTH :W(1.5)
HEIGHT :H1
VALUE DATE()
PICTURE '@K'
TOOLTIP "Date Value: Must be greater or equal to "+DTOC(DATE())
VALID {|| Compare(this.value)}
VALIDMESSAGE "Must be greater or equal to "+DTOC(DATE())
MESSAGE "Date Value"


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7722
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.04.24 08:09. Заголовок: Есть ли возможность ..


Есть ли возможность при отладке программы - смотреть какие объекты на форме созданы ?
Какой нибудь мини-просмотр списка объектов на форме.
Или готовые функции для этого.
Самому писать долго...

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 201 , стр: 1 2 3 4 5 6 7 8 9 10 11 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 238
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет