Форум » GUI » Примеры из Минигуи -ошибки, вопросы..... » Ответить

Примеры из Минигуи -ошибки, вопросы.....

Andrey: Всем привет. Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ? А заодно может и исправить и добавить новые.... Очень красочный пример: \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.

Ответов - 301, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 All

Andrey: Почти готовый пример .... http://files.mail.ru/FD03497F32DC4A309C7F85866BD39FDF SergKis, я переделал пример, но БОРДЮР работает через один цвет. Я пробовал несколько вариантов, ничего не получается. Посмотрите пожалуйста. SergKis, а зачем функция Test_This( cWnd ) в примере ? И еще вопрос, кто знает: cWnd := _HMG_ThisFormName nWidth := ? nHeight := ? А в МиниГуи есть переменные типа _HMG_ThisFormName.MaxWidth и _HMG_ThisFormName.MaxHeight ? Я нашел в \Include\i_var.ch #xtranslate _HMG_LoadWindowRow => _HMG_SYSDATA\[427\] #xtranslate _HMG_LoadWindowCol => _HMG_SYSDATA\[428\] #xtranslate _HMG_LoadWindowWidth => _HMG_SYSDATA\[429\] #xtranslate _HMG_LoadWindowHeight => _HMG_SYSDATA\[430\] а для чего эти переменные ?

Dima: Andrey пишет: А зачем функция Test_This( cWnd ) в примере ? Это ты сам себя спросил ? ;)

SergKis: Andrey пишет:а для чего эти переменные ? Это базовые переменные, используемые в MiniGUI для хранения информации - это регистрация окон, контролов, HotKey, ... в массивах MiniGUI (не путать с регистацией в windows). См. h_windows.prg, h_<control>.prg, ... . есть переменные типа _HMG_ThisFormName.MaxWidth и _HMG_ThisFormName.MaxHeight ? Препроцессор преобразует команды This... (см. i_this.ch) в вызов функций с использованием переменных _HMG_This... ThisWindow.Width ==> GetProperty ( _HMG_THISFORMNAME , "Width") и т.д. В событиях (OnInit, OnGotFocus, Action, ...) перед выполнением блока кода, устанавливаются переменные _HMG_This..., см. функции: _DoWindowEventProcedure(...), _DoControlEventProcedure(...). А зачем функция Test_This( cWnd ) в примере ? Это моя приблуда (для своей lib), но после нее, я уверен в _HMG_ThisFormName.


SergKis: Andrey пишет:... Посмотрите пожалуйста. Подправил: http://zalil.ru/34214553

Andrey: SergKis пишет: Это моя приблуда (для своей lib), но после нее, я уверен в _HMG_ThisFormName. В этом (моем) примере можно её (Test_This( cWnd )) убрать ?

Andrey: SergKis пишет: Подправил: http://zalil.ru/34214553 Не понял.... А почему через один цвет бордюр не меняется ? Я хочу чтобы, если меняем "Label Style" то было бы так:

SergKis: Andrey пишет:Не понял.... А почему через один цвет бордюр не меняется ? Border ставится\снимается нормально, из-за ClientEdge визуальный обман получается для 2-го Label. SergKis писал: Свойства есть, надо использовать: - менять стиль SetWindowStyle(h, WS_BORDER, .T./.F.) - .T. устанавливать, .F. снимать - менять Ext стиль ChangeStyle(h, WS_EX_CLIENTEDGE, 0, .T.) - устанавливать или ChangeStyle(h, 0, WS_EX_CLIENTEDGE, .T.) - снимать У меня получалось менять или Ext стиль или стиль ( одновременно менять - срабатывал только стиль ). В примере, я полагал, для каждого Label, одной кнопкой снимаем\ставим Border, другой - CLIENTEDGE. Для решения Вашей задачи надо иметь в aLbl Label-ы таких же размеров со свойством Visible:=.F. (скрытый) и по кнопке переводить в Visible:=.T. (свойство добавить 9-м элементом), а Label-ы с BORDER и CLIENTEDGE в Visible:=.F. В этом (моем) примере можно её (Test_This( cWnd )) убрать ? Да. Я его оставлял как пример манипулирования This... переменными.

Andrey: Как сделать украинский язык (UA866) для программ на МиниГуи ? Для русского делаю так: FUNCTION Main() ......... SET LANGUAGE TO RUSSIAN // язык/lang SET CODEPAGE TO RUSSIAN // кодовая страница/codepage

AlexMyr: Andrey пишет: Как сделать украинский язык (UA866) для программ на МиниГуи ? Вот что говорит дока, к-ю наверное никто не читает Select language for interface messages. SYNTAX SET LANGUAGE TO SPANISH | ENGLISH | FRENCH | PORTUGUESE | GERMAN | RUSSIAN | ITALIAN | FINNISH | CROATIAN | BASQUE | POLISH | DUTCH | SLOVENIAN | GREEK | CZECH | UKRAINIAN | BULGARIAN И снова таки, причем тут minigui?

Andrey: AlexMyr пишет: И снова таки, причем тут minigui? А там несколько вариантов было включения русского языка. Вот и спросил как включить украинский язык (UA866) ? Хотя тут МиниГуи не причем, это точно... AlexMyr пишет: Вот что говорит дока, к-ю наверное никто не читает Это в точку !

Andrey: Последний вариант 3х цветной формы и изменения размера формы. Для тех кому интересно. http://files.mail.ru/A70681C9CE544B58A255E360B1E373CD

SergKis: Andrey пишет:Последний вариант 3х цветной формы и изменения размера формы. Примеры работают не корректно - при увеличении окна вниз - контролы и label-color наезжают друг на друга. Исправить можно так: [pre2] FUNCTION ReSize() ... // change the position of the Label-Color FOR i := 1 TO Len( aLbl ) SetProperty( cWnd, aLbl[ i ][ _T ], "Visible", .F. ) // label-text hide SetProperty( cWnd, aLbl[ i ][ _N ], "Visible", .F. ) // label-color hide SetProperty( cWnd, aLbl[ i ][ _N ], "Row" , aLbl[ i ][ _Y ] ) SetProperty( cWnd, aLbl[ i ][ _N ], "Width" , aLbl[ i ][ _W ] ) SetProperty( cWnd, aLbl[ i ][ _N ], "Height", aLbl[ i ][ _H ] ) SetProperty( cWnd, aLbl[ i ][ _N ], "Visible", .T. ) // label-color show // change the position of the Label-Text SetProperty( cWnd, aLbl[ i ][ _T ], "Row" , aLbl[ i ][ _Y ] + 10 ) SetProperty( cWnd, aLbl[ i ][ _T ], "Visible", .T. ) // label-text show NEXT /* // change the position of the Label-Text FOR i := 1 TO Len( aLbl ) SetProperty( cWnd, aLbl[ i ][ _T ], "Row" , aLbl[ i ][ _Y ] + 10 ) NEXT */ [/pre2]

Andrey: SergKis пишет: Исправить можно так: Спасибо БОЛЬШОЕ ! Кстати функцию Test_This( cWnd ) убрать нельзя ! Пример перестает работать....

SergKis: Andrey пишет:Пример перестает работать.... Все правильно. Переменные _HMG_This... формируются в вызываемых процедурах (events) окна, контролов: pre2] Procedure _ProcessInitProcedure(i) ... _HMG_ThisEventType := 'WINDOW_INIT' _HMG_ThisFormIndex := iIndex _HMG_ThisType := 'W' _HMG_ThisIndex := iIndex _HMG_ThisFormName := _HMG_aFormNames [ iIndex ] _HMG_ThisControlName := "" Eval( bInit ) ... Function _DoWindowEventProcedure ( bBlock , i , cEventType ) ... _HMG_ThisFormIndex := i _HMG_ThisEventType := cEventType _HMG_ThisType := 'W' _HMG_ThisIndex := i _HMG_ThisFormName := _HMG_aFormNames [ _HMG_ThisFormIndex ] _HMG_ThisControlName := "" lRetVal := Eval( bBlock ) ... Function _DoControlEventProcedure ( bBlock , i , cEventType , nParam ) ... _HMG_ThisFormIndex := ascan ( _HMG_aFormHandles , _HMG_aControlParentHandles ) _HMG_ThisType := 'C' _HMG_ThisIndex := i _HMG_ThisFormName := _HMG_aFormNames [ _HMG_ThisFormIndex ] _HMG_ThisControlName := _HMG_aControlNames [ _HMG_ThisIndex ] If _HMG_BeginWindowActive == .F. .or. !( cEventType == 'CONTROL_ONCHANGE' ) .or. _HMG_MainClientMDIHandle != 0 Eval( bBlock, nParam ) EndIf ... [/pre2] Мы после DEFINE WINDOW &cWnd ; вызывали: aLblClrInit() AEval( aLbl, { | a, n | MySayColorLabel( n, n ) } ) и чтобы одинаково работать в своих вызовах и events процедурах Test_This(cWnd) устанавливает _HMG_ThisFormName, _HMG_ThisFormIndex. Если бы мы все проделывали только в events процедурах, то Test_This(cWnd) не нужна.

Andrey: Вот столкнулся с тем что не могу поменять цвет в RADIOGROUP Вроде по доке там 2 параметра по цвету, а у меня только черным выводит.... Вот код: DEFINE RADIOGROUP RadioGroup_CodeEIRC ........................... OPTIONS {' ячейка (1:А)',' ячейка (2:А)'} READONLY { .F. , .F. } FONTNAME 'Arial Black' FONTSIZE 14 SPACING 10 FONTCOLOR ORANGE BACKCOLOR aFonColor[ 2 ] HORIZONTAL .T. END RADIOGROUP Как поменять цвет в RADIOGROUP ? И как увеличить размер "кружка" ? P.S. Если не ставить первый пробел в OPTIONS {' ячейка (1:А)',' ячейка (2:А)'}, то труба, текст не появится ! НЕ ЛЮБИТ МИНИГУИ маленькую букву "я" !!! Час убил на выяснения этого ФЕНОМЕНА !!! Надо бы сообщить разработчикам... Григорий сообщи им пожалуйста !

Andrey: Разобрался я с цветом в RADIOGROUP ! В Win8 не меняется цвет, а в Win2003 и Win2008 все работает нормально !!! До ХР пока не дошел...

SergKis: Andrey пишет:Разобрался я с цветом в RADIOGROUP ! В Win8 не меняется цвет, а в Win2003 и Win2008 все работает нормально !!! До ХР пока не дошел... Когда подстрагивали под себя MiniGui, обратили внимание, что в некоторых контролах управление цветами, фонтами заложено, но не до конца - т.е. для развития. Можно потратить кучу времени и без результата, если очень надо с цветами, то использовать альтернативные решения - Label, Image, Combobox,Browse или Grid (без линий и header, но с Image), и т.д. ...

Andrey: SergKis пишет: Можно потратить кучу времени и без результата, если очень надо с цветами Да не надо. Спасибо за разъяснения. Просто начал делать и не получается, думал что я что-то не так делаю...

Andrey: Есть ли ПРИМЕР копирования файла с бегунком (PROGRESSBAR) ? Можно конечно и самому написать, но хочется посмотреть правильный код....

Dima: Andrey пишет: Есть ли ПРИМЕР копирования файла с бегунком (PROGRESSBAR) Где то выкладывали уже и тоже по твоей просьбе.



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