Форум » 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.

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

gfilatov2002: Haz пишет: Грирогий, если эта корректировка правильна, может ее внести в след версию ? Огромное спасибо за эту корректировку! Уже внес эти изменения в код следующей сборки, которая планируется к выходу на следующей неделе

gfilatov2002: Andrey пишет: обход всех форм, считывание Label, FRAME, BUTTONEX и сброс их в файл. Уточнение: обход всех ОТКРЫТЫХ форм Посмотри пример из папки samples\Basic\Form_Controls с обходом для текущей формы

Andrey: gfilatov2002 пишет: обход всех ОТКРЫТЫХ форм Нет. Хочу обход ВСЕХ форм программы !


Haz: Andrey пишет: Нет. Хочу обход ВСЕХ форм программы Это как ? т.е. считать контролы формы даже не загруженной в память ? Что то мне подсказывает, что в тут без парсера исходного текста не обойтись, ну или на крайняк декомпилятора P-Code. Иного способа узнать о формах и контролах модуля, который еще может даже и не выволняться - не вижу. PS. хотя может я и ошибаюсь ...

SergKis: Haz пишет:PS. хотя может я и ошибаюсь ... [pre2] FOR i := 1 TO Len( _HMG_aFormNames ) IF _HMG_aFormType[ i ]=='Y' AAdd(aNames, _HMG_aFormNames[ i ] ) ENDIF hForm := _HMG-aFormHandle[ i ] а дальше как в примере по handle все контролы NEXT [/pre2]

Andrey: SergKis пишет: FOR i := 1 TO Len( _HMG_aFormNames ) IF _HMG_aFormType[ i ]=='Y' AAdd(aNames, _HMG_aFormNames[ i ] ) ENDIF hForm := _HMG-aFormHandle[ i ] а дальше как в примере по handle все контролы NEXT Ура ! Значит можно !

SergKis: Andrey пишет:Ура ! Значит можно ! првильно hForm := _HMG-aFormHandles[ i ]

Andrey: Во многих примерах МиниГуи встречаю PlayExclamation() - а музыки нет ! Это для чего ?

Andrey: И еще вопрос: Очень много разрешений экрана сейчас пользователи используют. Как бы определиться - какой размер шрифта нужно устанавливать на разные разрешения экранов ? Т.е. для: 800х600 12-размер шрифта, для 1024х720 14-размер шрифта и т.д. Но может я и не прав... Кто какую зависимость использует ?

Andrey: Проехали, сделал методом подстановки от разрешения. На глаз вроде нормально. ////////////////////////////////////////////////////////////////////// Function ModeSizeFont() LOCAL nSize IF GetDesktopHeight() == 600 nSize := IIF(LargeFonts(),10,12) ELSEIF GetDesktopHeight() == 768 nSize := IIF(LargeFonts(),12,14) ELSEIF GetDesktopHeight() == 800 nSize := IIF(LargeFonts(),14,16) ELSEIF (GetDesktopHeight() >= 1050 .AND. GetDesktopHeight() <= 1080) nSize := IIF(LargeFonts(),15,18) ELSEIF GetDesktopHeight() == 1152 nSize := IIF(LargeFonts(),18,20) ELSEIF GetDesktopHeight() >= 1200 nSize := IIF(LargeFonts(),22,24) ELSE nSize := 14 ENDIF RETURN nSize

Andrey: Столкнулся с непоняткой. Маленький пример из 2-3 файлов работает без ошибок. Использую функцию FileSize(cFileTransfer) Размер возвращает нормально. Как собираю этот пример со своей системой, то начинаются чудеса... FileSize() возвращает 0 Почему ? МиниГуи последний... Чем заменить можно ? Прогу собираю с ключом -mt (multi/single-thread Harbour VM)

Dima: Andrey пишет: Прогу собираю с ключом -mt (multi/single-thread Harbour VM) А на фик ? Потоки используешь ? Andrey пишет: Как собираю этот пример со своей системой, то начинаются чудеса... Может в ней чудеса ?

Andrey: Dima пишет: А на фик ? Потоки используешь ? Отправка, прием файлов с инета. Без этого ключа тормоза на экране и в проге. Dima пишет: Может в ней чудеса ? Не знаю как все, но я делаю отдельный пример потом добавляю к основной системе. Вот тогда действительно начинаются чудеса. Я уже писал об этом. Почему то сразу не хватает библиотек, в основном модуле приходиться добавлять эти библиотеки вручную в проектный файл. А отдельный пример даже и не требует перечисления этих библиотек. Наверно это связанно с таблицей построения ехе-файла или что-то в этом роде, не знаю даже в чем дело, могу только предполагать.

Andrey: Вопрос который я задавал ранее, но так и не получилось у меня. Делаю так: DEFINE TAB Tab_1 AT .... PAGE ' Тест 1 ' //MsgDEBUG( Form_9.Tab_1.Row, Form_9.Tab_1.Col, Form_9.Tab_1.Width, Form_9.Tab_1.Height) - не работает DEFINE TBROWSE oBrw9 AT ХХ+5 , ХХ+5 WIDTH ХХ-10 HEIGHT ХХ-10 ; ...... END TBROWSE END PAGE PAGE ' Тест 2 ' END PAGE END TAB MsgDEBUG( Form_9.Tab_1.Row, Form_9.Tab_1.Col, Form_9.Tab_1.Width, Form_9.Tab_1.Height) - работает !!! Мне нужно вместо ХХ задать координаты Tab_1 ! Т.е. нужно вписать TBROWSE во вкладку PAGE ' Тест 1 '. Как это можно сделать ?

Andrey: Можно ли объект RADIOGROUP сделать в ДВА столбца ? Может у кого есть готовый пример ?

Andrey: Всем привет ! Есть пример \MiniGUI\SAMPLES\BASIC\Grid_4\demo2.prg Я его модифицировал и не знаю как назначить кодовый блок цвета, чтобы как в ACHOICE логический массив позволял/запрещал выбирать элемент меню (в данном случае элемент GRIDa). 1) Как мне изменить блок кода для показа элементов с aLogic == .F./.T. ? LOCAL bColorFore := { | Val, CellRowIndex | iif ( CellRowIndex / 2 == Int( CellRowIndex / 2 ) , ; RGB( aColor2[1],aColor2[2],aColor2[3] ) , RGB( aColor3[1],aColor3[2],aColor3[3] ) ) } LOCAL bColorBack := { | Val, CellRowIndex | iif ( CellRowIndex / 2 == Int( CellRowIndex / 2 ) , ; RGB( aColor[1],aColor[2],aColor[3] ) , RGB( aColor[1],aColor[2],aColor[3] ) ) } 2) И почему то нет возврата выбора из этого меню: ON RELEASE {|| MsgDebug( "Выбрано меню:", cRet) } // возврат из окна Может что не так делаю ? Вот сам пример Grid_5 - #include "minigui.ch" STATIC lNolines := .T. // Show / hide the dividing lines in the grid STATIC lCellNavigation := .T. // Set the cell navigation style in the grid STATIC lNoheaders := .T. // Show / hide table headers in the grid /////////////////////////////////////////////////////////////////////////// Procedure Main LOCAL aColor := { 105, 182, 34 } // bright green LOCAL aColor2 := YELLOW LOCAL aColor3 := BLUE LOCAL aBtnColor := WHITE, aBackColor := aColor, cRet := "" LOCAL aHead := {'Menu'}, aImg := MyLoadArray(1), aItems := MyLoadArray(2), aLogic := MyLoadArray(3) LOCAL bColorFore := { | Val, CellRowIndex | iif ( CellRowIndex / 2 == Int( CellRowIndex / 2 ) , ; RGB( aColor2[1],aColor2[2],aColor2[3] ) , RGB( aColor3[1],aColor3[2],aColor3[3] ) ) } LOCAL bColorBack := { | Val, CellRowIndex | iif ( CellRowIndex / 2 == Int( CellRowIndex / 2 ) , ; RGB( aColor[1],aColor[2],aColor[3] ) , RGB( aColor[1],aColor[2],aColor[3] ) ) } SET MULTIPLE OFF SET AUTOADJUST ON DEFINE WINDOW Form_2 ; AT 0,0 ; WIDTH 600 ; HEIGHT 460 ; TITLE 'Grid Colors Demo' ; MAIN ; BACKCOLOR { 0,155,173} /*aBackColor*/ ; FONT 'Tahoma' SIZE 14 ; ON INIT OnInitGrid() ; ON RELEASE {|| MsgDebug( "Выбрано меню:", cRet) } // возврат из окна // Title grid {HEADERS} consists of only one line. // The second line is not visible! Limitation of grid. DEFINE GRID Grid_2 ROW 10 COL 10 WIDTH 570 HEIGHT 300 WIDTHS { 540 } HEADERS aHead ITEMS aItems VALUE 1 ON DBLCLICK { || cRet := Test_Choice(1,aLogic), msgdebug(cRet) } NOLINES lNolines CELLNAVIGATION lCellNavigation SHOWHEADERS lNoheaders FONTBOLD .T. FONTCOLOR BLUE BACKCOLOR aBackColor DYNAMICFORECOLOR { bColorFore , bColorFore, bColorFore } DYNAMICBACKCOLOR { bColorBack, bColorBack, bColorBack } END GRID @ 320,30 LABEL label_1 VALUE "<F4>, <Enter> - choice" ; WIDTH 220 HEIGHT 28 SIZE 12 BOLD TRANSPARENT ON KEY F4 ACTION cRet := Test_Choice(2,aLogic) @ 360, 200 BUTTONEX Button_1 ; WIDTH 170 HEIGHT 35 ; SIZE 11 BOLD ; CAPTION '&Report selection' ; NOHOTLIGHT NOXPSTYLE ; FONTCOLOR WHITE ; BACKCOLOR BLUE ; ACTION cRet := Test_Choice(3,aLogic) @ 360, 400 BUTTONEX Button_2 ; WIDTH 150 HEIGHT 35 ; SIZE 11 BOLD ; CAPTION 'E&xit' ; NOHOTLIGHT NOXPSTYLE ; FONTCOLOR WHITE ; BACKCOLOR RED ; ACTION ThisWindow.Release() END WINDOW CENTER WINDOW Form_2 ACTIVATE WINDOW Form_2 Return cRet /////////////////////////////////////////////////////////////////////////// Procedure OnInitGrid() _HMG_GridSelectedRowForeColor := RED _HMG_GridSelectedRowBackColor := BLACK _HMG_GridSelectedCellForeColor := RED _HMG_GridSelectedCellBackColor := BLACK Form_2.Grid_2.SetFocus Return /////////////////////////////////////////////////////////////////////////// Function MyLoadArray(nVal) Local nI, nJ := 1, nG := 1, aIco := {}, aRows := {}, aLog := {}, aRet AAdd( aIco , "Folder.bmp" ) ; AAdd( aLog , .F. ) AAdd( aRows, { PADC(" Group numba: "+LTRIM(STR(nG))+" ",50,"-") } ) FOR nI := 1 TO 25 AAdd( aIco , "File.bmp" ) AAdd( aRows, { SPACE(5)+"Example filename - "+LTRIM(STR(nJ++))+".txt" } ) AAdd( aLog , .T. ) IF nI % 5 == 0 aIco[nI] := "Folder.bmp" ; aLog[nI] := .F. aRows[nI] := { PADC(" Group numba: "+LTRIM(STR(nG))+" ",50,"-") } nJ := 1 ENDIF NEXT IF nVal == 1 aRet := ACLONE(aIco) ELSEIF nVal == 2 aRet := ACLONE(aRows) ELSEIF nVal == 3 aRet := ACLONE(aLog) ENDIF Return aRet /////////////////////////////////////////////////////////////////////////// FUNCTION Test_Choice( nVal, aLogic ) Local xMenuNum := Form_2.Grid_2.Value Local cMenuName, cRet := "", cText cText := IIF(nVal==2,"You press key [F4]" + CRLF + CRLF,"") cText += IIF(nVal==3,"You press button [Report selection]" + CRLF + CRLF,"") cText += "Menu selection = {" + STR(xMenuNum[1],2)+","+STR(xMenuNum[2],2)+" }" + CRLF + CRLF cMenuName := Alltrim( GetProperty( "Form_2", "Grid_2", "Cell", xMenuNum[1], 1 ) ) cText += "Menu selection = [" + cMenuName + "]" + CRLF + CRLF IF aLogic[xMenuNum[1]] == .F. // игнорирование выбора ELSE MsgInfo( cText ) cRet := cMenuName ThisWindow.Release() ENDIF Return cRet

SergKis: Andrey пишет:И почему то нет возврата выбора из этого меню: Убери ThisWindow.Release в Test_Choice(...) и добавь во все ACTION в конце

SergKis: Andrey пишет:Как мне изменить блок кода для показа элементов с aLogic также как функция Test_Choice( nVal, aLogic ), обрабатывай и возвращай массив цветов. Вызов в: DYNAMICFORECOLOR myFColor(...) DYNAMICBACKCOLOR myBColor(...)

Andrey: SergKis пишет: Убери ThisWindow.Release в Test_Choice(...) и добавь во все ACTION в конце Понял. Спасибо ! SergKis пишет: обрабатывай и возвращай массив цветов. Вызов в: Здесь не понял....

SergKis: Andrey пишет:Здесь не понял.. DYNAMICFORECOLOR myFColor(aLogic) DYNAMICBACKCOLOR myBColor(aLogic) [pre2] FUNC MyFColor(aLogic) LOCAL aColor := { 105, 182, 34 } // bright green LOCAL aColor2 := YELLOW LOCAL aColor3 := BLUE LOCAL bColorFore LOCAL bColorFore1 := { | Val, CellRowIndex | iif ( CellRowIndex / 2 == Int( CellRowIndex / 2 ) , ; // RGB( aColor2[1],aColor2[2],aColor2[3] ) , RGB( aColor3[1],aColor3[2],aColor3[3] ) ) } // для .F. LOCAL bColorFore2 := { | Val, CellRowIndex | iif ( CellRowIndex / 2 == Int( CellRowIndex / 2 ) , ; // RGB( aColor2[1],aColor2[2],aColor2[3] ) , RGB( aColor3[1],aColor3[2],aColor3[3] ) ) } // для .T. Local xMenuNum := Form_2.Grid_2.Value IF aLogic[xMenuNum[1]] == .F. bColorFore := bColorFore1 ELSE bColorFore := bColorFore2 ENDIF RETURN { bColorFore , bColorFore, bColorFore } FUNC MyBColor(aLogic) LOCAL aColor := { 105, 182, 34 } // bright green LOCAL aColor2 := YELLOW LOCAL aColor3 := BLUE LOCAL bColorBack LOCAL bColorBack1 := { | Val, CellRowIndex | iif ( CellRowIndex / 2 == Int( CellRowIndex / 2 ) , ; // RGB( aColor[1],aColor[2],aColor[3] ) , RGB( aColor[1],aColor[2],aColor[3] ) ) } // для .F. LOCAL bColorBack2 := { | Val, CellRowIndex | iif ( CellRowIndex / 2 == Int( CellRowIndex / 2 ) , ; // RGB( aColor[1],aColor[2],aColor[3] ) , RGB( aColor[1],aColor[2],aColor[3] ) ) } // для .T. Local xMenuNum := Form_2.Grid_2.Value IF aLogic[xMenuNum[1]] == .F. bColorBack := bColorBack1 ELSE bColorBack := bColorBack2 ENDIF RETURN { bColorBack, bColorBack, bColorBack } [/pre2] цвета в блоках кода ...1, ...2 подбирай сам.



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