Автор | Сообщение |
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.
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|
gfilatov2002
|
| moderator
|
Пост N: 693
Зарегистрирован: 11.02.10
|
|
Отправлено: 05.12.14 15:36. Заголовок: Haz пишет: Грирогий..
Haz пишет: цитата: | Грирогий, если эта корректировка правильна, может ее внести в след версию ? |
| Огромное спасибо за эту корректировку! Уже внес эти изменения в код следующей сборки, которая планируется к выходу на следующей неделе
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 694
Зарегистрирован: 11.02.10
|
|
Отправлено: 05.12.14 15:42. Заголовок: Andrey пишет: обход..
Andrey пишет: цитата: | обход всех форм, считывание Label, FRAME, BUTTONEX и сброс их в файл. |
| Уточнение: обход всех ОТКРЫТЫХ форм Посмотри пример из папки samples\Basic\Form_Controls с обходом для текущей формы
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3799
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.12.14 17:12. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: Нет. Хочу обход ВСЕХ форм программы !
|
|
|
Haz
|
| |
Пост N: 383
Зарегистрирован: 20.02.11
|
|
Отправлено: 05.12.14 17:31. Заголовок: Andrey пишет: Нет. ..
Andrey пишет: цитата: | Нет. Хочу обход ВСЕХ форм программы |
| Это как ? т.е. считать контролы формы даже не загруженной в память ? Что то мне подсказывает, что в тут без парсера исходного текста не обойтись, ну или на крайняк декомпилятора P-Code. Иного способа узнать о формах и контролах модуля, который еще может даже и не выволняться - не вижу. PS. хотя может я и ошибаюсь ...
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 445
Зарегистрирован: 17.02.12
|
|
Отправлено: 05.12.14 18:26. Заголовок: Haz пишет:PS. хотя м..
Haz пишет: цитата: | PS. хотя может я и ошибаюсь ... |
| FOR i := 1 TO Len( _HMG_aFormNames ) IF _HMG_aFormType[ i ]=='Y' AAdd(aNames, _HMG_aFormNames[ i ] ) ENDIF hForm := _HMG-aFormHandle[ i ] а дальше как в примере по handle все контролы NEXT
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3801
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.12.14 18:41. Заголовок: SergKis пишет: FOR..
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
|
| постоянный участник
|
Пост N: 446
Зарегистрирован: 17.02.12
|
|
Отправлено: 05.12.14 18:46. Заголовок: Andrey пишет:Ура ! З..
Andrey пишет: првильно hForm := _HMG-aFormHandle s[ i ]
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3837
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.12.14 23:26. Заголовок: Во многих примерах М..
Во многих примерах МиниГуи встречаю PlayExclamation() - а музыки нет ! Это для чего ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3839
Зарегистрирован: 12.09.06
|
|
Отправлено: 14.12.14 08:45. Заголовок: И еще вопрос: Очень ..
И еще вопрос: Очень много разрешений экрана сейчас пользователи используют. Как бы определиться - какой размер шрифта нужно устанавливать на разные разрешения экранов ? Т.е. для: 800х600 12-размер шрифта, для 1024х720 14-размер шрифта и т.д. Но может я и не прав... Кто какую зависимость использует ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3848
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.12.14 16:04. Заголовок: Проехали, сделал мет..
Проехали, сделал методом подстановки от разрешения. На глаз вроде нормально. ////////////////////////////////////////////////////////////////////// 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
|
| постоянный участник
|
Пост N: 3861
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.12.14 23:20. Заголовок: Столкнулся с непонят..
Столкнулся с непоняткой. Маленький пример из 2-3 файлов работает без ошибок. Использую функцию FileSize(cFileTransfer) Размер возвращает нормально. Как собираю этот пример со своей системой, то начинаются чудеса... FileSize() возвращает 0 Почему ? МиниГуи последний... Чем заменить можно ? Прогу собираю с ключом -mt (multi/single-thread Harbour VM)
|
|
|
|
Dima
|
| |
Пост N: 4369
Зарегистрирован: 17.05.05
|
|
Отправлено: 19.12.14 23:49. Заголовок: Andrey пишет: Прогу..
Andrey пишет: цитата: | Прогу собираю с ключом -mt (multi/single-thread Harbour VM) |
| А на фик ? Потоки используешь ? Andrey пишет: цитата: | Как собираю этот пример со своей системой, то начинаются чудеса... |
| Может в ней чудеса ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3862
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.12.14 23:52. Заголовок: Dima пишет: А на фи..
Dima пишет: цитата: | А на фик ? Потоки используешь ? |
| Отправка, прием файлов с инета. Без этого ключа тормоза на экране и в проге. Dima пишет: Не знаю как все, но я делаю отдельный пример потом добавляю к основной системе. Вот тогда действительно начинаются чудеса. Я уже писал об этом. Почему то сразу не хватает библиотек, в основном модуле приходиться добавлять эти библиотеки вручную в проектный файл. А отдельный пример даже и не требует перечисления этих библиотек. Наверно это связанно с таблицей построения ехе-файла или что-то в этом роде, не знаю даже в чем дело, могу только предполагать.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3866
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.12.14 11:28. Заголовок: Вопрос который я зад..
Вопрос который я задавал ранее, но так и не получилось у меня. Делаю так: 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
|
| постоянный участник
|
Пост N: 3884
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.01.15 23:07. Заголовок: Можно ли объект RADI..
Можно ли объект RADIOGROUP сделать в ДВА столбца ? Может у кого есть готовый пример ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3903
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.01.15 16:53. Заголовок: Всем привет ! Есть ..
Всем привет ! Есть пример \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
|
| постоянный участник
|
Пост N: 454
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.01.15 12:08. Заголовок: Andrey пишет:И почем..
Andrey пишет: цитата: | И почему то нет возврата выбора из этого меню: |
| Убери ThisWindow.Release в Test_Choice(...) и добавь во все ACTION в конце
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 455
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.01.15 12:13. Заголовок: Andrey пишет:Как мне..
Andrey пишет: цитата: | Как мне изменить блок кода для показа элементов с aLogic |
| также как функция Test_Choice( nVal, aLogic ), обрабатывай и возвращай массив цветов. Вызов в: DYNAMICFORECOLOR myFColor(...) DYNAMICBACKCOLOR myBColor(...)
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3904
Зарегистрирован: 12.09.06
|
|
Отправлено: 16.01.15 13:04. Заголовок: SergKis пишет: Убер..
SergKis пишет: цитата: | Убери ThisWindow.Release в Test_Choice(...) и добавь во все ACTION в конце |
| Понял. Спасибо ! SergKis пишет: цитата: | обрабатывай и возвращай массив цветов. Вызов в: |
| Здесь не понял....
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 456
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.01.15 21:07. Заголовок: Andrey пишет:Здесь н..
Andrey пишет: DYNAMICFORECOLOR myFColor(aLogic) DYNAMICBACKCOLOR myBColor(aLogic) 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 } цвета в блоках кода ...1, ...2 подбирай сам.
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|