Отправлено: 15.11.11 21:36. Заголовок: Примеры из Минигуи -ошибки, вопросы..... (продолжение)
Всем привет. Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ? А заодно может и исправить и добавить новые....
Очень красочный пример: \MiniGUI\SAMPLES\Advanced\AVI_Animation - не работает под Win7 (наверно AVI-шки нет в ресурсах) Предложение Григорию: Можно ли добавить еще один пример с отдельным AVI-файлом в ресурсах проекта и показом такого же бегунка ?
Пример: \MiniGUI\SAMPLES\Advanced\DisplayMode - не работает под ХР и далее....
ON KEY RETURN OF Form_NewZ ACTION {|| Form_NewZ.Button_Find.Setfocus, InkeyGui(200), _PushKey( VK_SPACE ) } ON KEY ESCAPE OF Form_NewZ ACTION {|| aRet := {}, Form_NewZ.Release() }
END WINDOW
Видно что курсор прыгает на кнопку, а отработки нет. ESC - срабатывает нормально. Дело в том что у меня на кнопке Button_Find - большой код, там несколько функций. Хотелось бы не переписывать, а заставить кнопку Button_Find срабатывать на ENTER !
Использование This.butt_2.SetFocus - не подсвечивает кнопку ! Только текст кнопки подсвечивает. Хотелось бы - нажал горячую клавишу, кнопка под светилась и юзер понял какую кнопку нажал. Это для красоты.
........... WITH OBJECT This.Object :Event( 1, {|| Form_NewZ.Button_Find.Setfocus, DoEvents(), _PushKey( VK_SPACE ) } ) :Event(99, {|ow| ow:Release() } ) END WITH
ON KEY RETURN OF Form_NewZ ACTION _wPost(1 , This.button_Find.Index) ON KEY ESCAPE OF Form_NewZ ACTION _wPost(99, This.button_Exit.Index)
END WINDOW
Как сделать не перетаскивая код-блока из кнопки, чтобы срабатывал _wPost(1) и _wPost(99) ? Не хочется перетаскивать код из кнопки. Или так нельзя делать ? Если перетащу код из кнопки в :Event( 1, {|| ..... - то всё работает отлично !
ON KEY RETURN OF Form_NewZ ACTION ( SetMousePos(This.button_Find.Handle), This.button_Find.SetFocus, DoEvents(), _wPost(1, This.button_Find.Index) ) ON KEY ESCAPE OF Form_NewZ ACTION _wPost(99)
ON KEY ESCAPE OF Form_NewZ ACTION ( SetMousePos(This.button_Exit.Handle), This.button_Exit.SetFocus, DoEvents(), _wPost(2, This.button_Exit.Index) ) или если есть LOCAL aRet := {} то сразу делать @ ........ BUTTONEX Button_Exit ; ........... ACTION _wPost(99) ;
ON KEY ESCAPE ACTION ( SetMousePos(This.button_Exit.Handle), This.button_Exit.SetFocus, DoEvents(), _PushKey( VK_SPACE ) /* или _wPost(99) или _wSend(99) */ )
Отправлено: 11.09.19 19:24. Заголовок: Всем привет. А как о..
Всем привет. А как объявить в проге, что нужно линковать функцию, у которой нет явного вызова ?
Т.е. вызов функции объявлен в массиве меню, примерно так: AADD( aDim, {"FLAG_RU.bmp" , "Test menu - Russian ", "RunTest1", "Stroka1" , 1 } ) чтобы потом можно было вызвать RunTest1() ? А то сейчас пишет, что нет такой функции в ехе-файле. В библиотеке которую линкую эта функция есть.
Отправлено: 12.09.19 14:23. Заголовок: Обнаружил небольшой ..
Обнаружил небольшой баг в примере MiniGUI\SAMPLES\BASIC\Menu\menudemo5.prg Выбираем меню Options и потом любое другое меню. После выхода из меню можно кликнуть правой кнопкой мышки и это же меню появиться опять на форме. В Options-2 и Options-3 от этого избавился, как рекомендовал раньше. Больше такого избавления в примерах нигде нет ! А новичкам это тоже будет интересно. Последний пример совместно написанный с Сергеем выслал на почту.
Отправлено: 12.09.19 18:26. Заголовок: Можно ли включить в ..
Можно ли включить в Минигуи стандартную функцию расчёта размера фонта в зависимости от ширины и высоты LABEL ? Свои есть, но что-то не дотягивают до стандарта. И не знаю как рассчитать размеры для фонтов BOLD ? Вот например есть такая у меня функция:
////////////////////////////////////////////////////////////////// // Функция вернёт максимальный размер фонта для заданной строки по заданной ширине FUNCTION FontSizeMaxAutoFit( cText, cFName, nWinWidth ) LOCAL nTxtWidth, nFSize, lExit := .T.
nFSize := 6 DO WHILE lExit nTxtWidth := GetTxtWidth( cText, nFSize, cFName ) IF nTxtWidth >= nWinWidth lExit := .F. ELSE nFSize++ ENDIF ENDDO
RETURN nFSize
Если текст короткий то половина слова показывается на LABEL, нижняя часть слова обрезается, слишком большой фонт. Помогите сделать такие универсальные функции !
Отправлено: 12.09.19 19:18. Заголовок: Andrey пишет Помогит..
Andrey пишет
цитата:
Помогите сделать такие универсальные функции !
Они уже в тек. версии есть, для регистрированного фонта, посмотри changelog
* New: Added the useful pseudo-functions GetFontWidth( FontName, nLen ) and GetFontHeight( FontName ) for receiving of the font's parameters. Note that a font should be defined by command DEFINE FONT <FontName> FONTNAME <sysfont> ...
и пример, который отсылал Григорию, там есть применение GetFontWidth( FontName, nLen ) для меню. Универсальность nW := 0; AEval(aText, {|ct| nW := Max(nW, GetFontWidth( 'Font_1', Len(ct) ) })
Все даты в формате GMT
3 час. Хитов сегодня: 208
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет