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: 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 
ПрофильЦитата Ответить
Ответов - 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 час. Хитов сегодня: 148
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет