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




Пост N: 1929
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.11.11 21:36. Заголовок: Примеры из Минигуи -ошибки, вопросы..... (продолжение)


Всем привет.
Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ?
А заодно может и исправить и добавить новые....

Очень красочный пример: \MiniGUI\SAMPLES\Advanced\AVI_Animation - не работает под Win7 (наверно AVI-шки нет в ресурсах)
Предложение Григорию:
Можно ли добавить еще один пример с отдельным AVI-файлом в ресурсах проекта и показом такого же бегунка ?


Пример: \MiniGUI\SAMPLES\Advanced\DisplayMode - не работает под ХР и далее....


Пример: \MiniGUI\SAMPLES\Advanced\Tsb_filter - вылетает на ХР
--------------------------------------------------------------------------------
Harbour MiniGUI Errorlog File
Harbour MiniGUI Extended Edition 2.0.1 - 2011.09.21
--------------------------------------------------------------------------------
Date: 11/15/2011 Time: 22:13:24
Error BASE/1124 Argument error: LEFT

Called from LEFT(0)
Called from SCANSOFT(195)
Called from MAIN(84)


Пример: \MiniGUI\SAMPLES\BASIC\MsgEdit - не собирается...
Z:\MiniGUI\SAMPLES\BASIC\MsgEdit>call ..\..\..\batch\compile.bat demo /L shell32
Harbour 3.1.0dev (Rev. 17042)
Copyright (c) 1999-2011, http://harbour-project.org/
Compiling 'demo.prg'...
Lines 20133, Functions/Procedures 30
Generating C source output to 'demo.c'... Done.
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
demo.c:
Error E2141 demo.prg 993: Declaration syntax error
*** 1 errors in Compile ***

C compile error.



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


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




Пост N: 3505
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.07.14 22:52. Заголовок: C иконками в меню и ..


C иконками в меню и кнопками теперь понятно !
Спасибо БОЛЬШОЕ Григорий !!!

Возник теперь другой вопрос.
Можно ли как то передать на форму (которую еще не создали), то что нужно нарисовать ?
Т.е. объекты произвольного значения, допустим: линию по координатам, надпись по координатам или допустим объект FRAME ?
Ну вот так примерно:
ACTION {|| nRet := MenuList(aCaptions, aIcons, aButton, aWindow, aImage, aNewObj ),;
MsgInfo( 'Action menu = ' + hb_ntos(nRet), wMain.Button_1.Caption) }

передаю в aNewObj массив чего надо нарисовать на форме.
А как тогда на форме (которая будет новая) создавать это объекты ?

Или это вообще неправильный подход ????
Нужно сначала нарисовать форму, объекты, а уж потом вызывать функцию обработки этого окна ?

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 619
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 16.07.14 10:07. Заголовок: Andrey пишет: объек..


Andrey пишет:

 цитата:
объекты произвольного значения, допустим: линию по координатам, надпись по координатам или допустим объект FRAME


Любой объект в минигуи сводится к вызову функции, поэтому ничего не мешает передать в массиве кодовый блок с вызовом этой функции с необходимыми параметрами, а затем выполнить этот блок, использовав событие формы ON INIT.
Пример использования этих функций вместо минигуи-команд можно посмотреть в папке samples\Advanced\TSB_MENU.

Но, конечно, это требует хорошего знания внутреннего устройства библиотеки и не рекомендуется из-за сложности использования

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




Пост N: 3507
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.07.14 00:21. Заголовок: Спасибо БОЛЬШОЕ ! :..


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

Григорий, а если я в функции MenuList(cParent, aCaptions, aIcons, aButton, aRunFunc) добавлю идентификатор окна cParent (ну и соответственно везде поменять, где есть вызовы "Win_1"), то я смогу вызывать эту функцию и в других окнах ? Конфликтов не будет ?


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




Пост N: 3509
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.07.14 18:13. Заголовок: В FW на плитке есть ..


В FW на плитке есть возможность использования левой клавиши мыши.
А на объекте ButtonEx можно задействовать левую клавишу мышки ?
Есть ли обработчик какой ?

Спасибо: 0 
Профиль
evgeny2006



Пост N: 3
Зарегистрирован: 05.07.14
ссылка на сообщение  Отправлено: 19.07.14 16:05. Заголовок: Andrey пишет: Взялс..


Andrey пишет:

 цитата:
Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ?
А заодно может и исправить и добавить новые....


Присоединяюсь к поставленному вопросу
Одновременно хотел задать еще вопрос.
Создается впечатление, что система либо очень сырая, или авторы молчаливо используют библиотеки, отличные от приведенных в примерах.
Например, DIRECTORY. Должна выдавать пять компонент. Вроде бы она это делает, но второй и третий компонент - пустые.
Скорее всего необходимо подключать дополнительные библиотеки, но как о них узнать?


Спасибо: 0 
Профиль
evgeny2006



Пост N: 4
Зарегистрирован: 05.07.14
ссылка на сообщение  Отправлено: 19.07.14 16:08. Заголовок: Andrey пишет: Взялс..


Andrey пишет:

 цитата:
Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ?
А заодно может и исправить и добавить новые....


Присоединяюсь к поставленному вопросу
Одновременно хотел задать еще вопрос.
Создается впечатление, что система либо очень сырая, или авторы молчаливо используют библиотеки, отличные от приведенных в примерах.
Например, DIRECTORY. Должна выдавать пять компонент. Вроде бы она это делает, но второй и третий компонент - пустые.
Скорее всего необходимо подключать дополнительные библиотеки, но как о них узнать?


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




Пост N: 3513
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.07.14 16:21. Заголовок: evgeny2006 пишет: С..


evgeny2006 пишет:

 цитата:
Создается впечатление, что система либо очень сырая, или авторы молчаливо используют библиотеки, отличные от приведенных в примерах.


Нет, неправ ты. Просто Windows-программирование очень отличается от стандартного Клиперного.
Это нужно понять, а на понятие уходит много времени. Я уже второй год (правда наскоками) разбираюсь.
Просто у Григория в библиотеки нет руководства для новичков. Я сам разбирался с нуля, а потом уже с помощью всех присутствующих на форуме. Результатами сейчас доволен, много можно делать.
Начни потихоньку осваивать примеры.
Своё приложение сразу писать НЕТ СМЫСЛА, пока не поймешь как можно использовать МиниГуи.
Вот выкладываю образцы первых шагов.
https://cloud.mail.ru/public/e17020852d3f/1_OnInitWindows.7z


Спасибо: 0 
Профиль
Haz
администратор




Пост N: 252
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 19.07.14 16:26. Заголовок: Andrey пишет: Напри..


evgeny2006 пишет:

 цитата:
Например, DIRECTORY



а GUI то тут с какого боку ?

Давайте по существу что именно не так в GUI ? Думаю вместе поможем разобраться.
И поверьте авторам есть чем заняться кроме молчаливого использования каких то библиотек.

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




Пост N: 3514
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.07.14 08:43. Заголовок: Andrey пишет: А на ..


Andrey пишет:

 цитата:
А на объекте ButtonEx можно задействовать левую клавишу мышки ?
Есть ли обработчик какой ?



Для RightClick надо использовать
DEFINE CONTEXT MENU CONTROL ...
или
DEFINE CONTEXT MENU CONTROLS <cControlName1> [, cControlNamen ]
смотри \samples\Basic\ControlsContextMenu

Спасибо большое SergKis !

А для TBROWSE есть обработка RightClick ?

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


Пост N: 454
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 21.07.14 08:51. Заголовок: evgeny2006 Наприме..


evgeny2006


 цитата:
Например, DIRECTORY. Должна выдавать пять компонент. Вроде бы она это делает, но второй и третий компонент - пустые.



все заполнено
Проверил в хХарбор 1 и Харбор 3.2

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




Пост N: 3515
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.07.14 09:19. Заголовок: Блин, ну почему все ..


Блин, ну почему все пишут в моей теме ?
Что нельзя отдельную ветку завести ?

Повторяю свой вопрос:
А для TBROWSE есть обработка RightClick ?


Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4105
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.07.14 14:38. Заголовок: Andrey пишет: Блин,..


Andrey пишет:

 цитата:
Блин, ну почему все пишут в моей теме ?
Что нельзя отдельную ветку завести ?


Те жалко ?
Считаешь нужно завести еще одну такую же тему ?

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




Пост N: 3516
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.07.14 14:49. Заголовок: Dima пишет: Те жалк..


Dima пишет:

 цитата:
Те жалко ?


Да пишут про другое совершенно !
А мой вопрос просто теряется....


Спасибо: 0 
Профиль
Haz
администратор




Пост N: 253
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 21.07.14 21:00. Заголовок: Andrey пишет: Повто..


Andrey пишет:

 цитата:
Повторяю свой вопрос:
А для TBROWSE есть обработка RightClick ?



есть

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




Пост N: 3517
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.07.14 23:19. Заголовок: Haz пишет: есть А..


Haz пишет:

 цитата:
есть



А если не сложно, пожалуйста ткните в пример !

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 254
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 22.07.14 10:07. Заголовок: Andrey пишет: пожал..


Andrey пишет:

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



не в пример, а опять же в исходник TSCOLUMN.PRG.

В данных класса определены блоки реакции на разные клики.

DATA bFLClicked // Block to be evaluated on footer left clicked
DATA bFRClicked // Block to be evaluated on footer right clicked
DATA bHLClicked // Block to be evaluated on header left clicked
DATA bHRClicked // Block to be evaluated on header right clicked
DATA bSLClicked // Block to be evaluated on Special header left clicked
DATA bSRClicked // Block to be evaluated on Special header right clicked
DATA bLClicked // Block to be evaluated on cell left clicked
DATA bRClicked // Block to be evaluated on cell right clicked

Все что нужно сделать так это назначить этот блок
BRW:aColumns[n]:bFLClicked := { || Msgbox('Block to be evaluated on footer left clicked') }

PS. Класс TSBROWS отлично прокомментирован в исходниках. Все данные и методы понятны и читаемы.
на нем же легко сделать кнопку с реакцией на правый клик к примеру - как ответ на вопрос выше (бровс по массиву с одной ячейкой без скроллов и заголовка , плюс с возможность фантазий типа динамической смены цвета этой кнопки, ее активности и прочего вплоть до контекстного меню по ней ). Но для этого нужно смотреть исходник и разбираться в нем.



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




Пост N: 3518
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.07.14 00:03. Заголовок: Всем доброй ночи. :..


Всем доброй ночи.
Наконец то дошли руки до новых непоняток в МиниГуи. Моих непоняток конечно....
Как на "лету" (т.е. уже в запущенной программе поменять ЦВЕТ кнопок ?
Замену цвета сделал через контексное меню, и возврат цвета тоже скорее всего не работает...

Вот мой код (который не работает...):
Скрытый текст


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 627
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 30.07.14 12:01. Заголовок: Andrey пишет: Как н..


Andrey пишет:

 цитата:
Как на "лету" (т.е. уже в запущенной программе поменять ЦВЕТ кнопок ?



 цитата:

ITEM 'Set OButton BackColor' ACTION Form_1.OButton.BackColor := GetColor()


Так определена эта кнопка на форме:

 цитата:

DEFINE BUTTONEX OButton
ROW 200
COL 400
WIDTH 90
HEIGHT 23
CAPTION "Computer"
VERTICAL .t.
// ICON "res\comp.ico"
FLAT .f.
FONTNAME "MS Sans serif"
FONTSIZE 9
FONTCOLOR {0,128,0}
// FONTBOLD .t.
BACKCOLOR {240,255,240}
UPPERTEXT .t.
TOOLTIP "OButton with icon - vertical - uppertext - nohotlight - noxpstyle"
NOHOTLIGHT .t.
NOXPSTYLE .t.
END BUTTONEX



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




Пост N: 3519
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.07.14 15:55. Заголовок: Спасибо за подсказку..


Спасибо за подсказку, получилось.
Цвет кнопки менять на лету получилось !
https://cloud.mail.ru/public/8bb7a4832b49/MiniGui-TEST

Не получается сделать вызов: DEFINE CONTEXT MENU CONTROL Label_Color2 - строка 107
НЕ вызывается МЕНЮ ВООБЩЕ !!! Почему ? Что не так делаю ?

И взял из примера \SAMPLES\BASIC\ControlsContextMenu\ccmenu.fmg
// new syntax one menu for multi controls (ADV)
DEFINE CONTEXT MENU CONTROLS Label_1, Button_1, CheckBtn_1, List_1, Combo_1
MENUITEM "Multi 1" ACTION MsgInfo( "Multi 1 ID: "+ltrim(str(_HMG_xControlsContextMenuID)) )
MENUITEM "Multi 2" ACTION MsgInfo( "Multi 2 Control name: "+ _HMG_aControlNames[_HMG_xControlsContextMenuID] )

а у меня не работает...
//cInfo2 := "Object Control name: "+_HMG_aControlNames[_HMG_xControlsContextMenuID]

Подскажите пожалуйста как сделать, чтобы заработало ?


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




Пост N: 3520
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.07.14 17:21. Заголовок: Andrey пишет: Не по..


Andrey пишет:

 цитата:
Не получается сделать вызов: DEFINE CONTEXT MENU CONTROL Label_Color2 - строка 107



Пошаговое разбирание примера (спасибо a_sidorov ) привело к неожиданному результату:
В строке 72:
@ 24, 0 LABEL Label_Color2 VALUE "" WIDTH nWidth HEIGHT 84 BACKCOLOR COLOR_BLUE_BLUE
в конце нужно поставить TOOLTIP ""
И меню начнет появляться.
Это баг или так должно быть ?

Спасибо: 0 
Профиль
Ответов - 301 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 261
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет