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

Dima: Andrey Пошукай по примерам "DEFINE TIMER"

Andrey: Dima пишет: Пошукай по примерам "DEFINE TIMER" Спасибо БОЛЬШОЕ Дима ! Нашел !

Andrey: Видимость переменных или как сделать следующее ? Имею код: FUNCTION Main() Local hWnd, nI, cTask, cButt, cMess Local aButton := {} AADD( aButton, {170, 20,170,35,'Menu 1','Task-1'} ) AADD( aButton, {220, 20,170,35,'Menu 2','Task-2'} ) AADD( aButton, {270, 20,170,35,'Menu 3','Task-3'} ) AADD( aButton, {320, 20,170,35,'Menu 4','Task-4'} ) AADD( aButton, {170,230,170,35,'Menu 5','Task-5'} ) AADD( aButton, {220,230,170,35,'Menu 6','Task-6'} ) AADD( aButton, {270,230,170,35,'Menu 7','Task-7'} ) ...................... FOR nI := 1 TO LEN(aButton) cButt := "RUN"+LTRIM(STR(nI)) cMess := 'Command: ShellExecute( , "open", "TaskTest2.exe", ..... )' cTask := aButton[nI,6] DEFINE BUTTON &cButt ROW aButton[nI,1] COL aButton[nI,2] WIDTH aButton[nI,3] HEIGHT aButton[nI,4] CAPTION aButton[nI,5] ACTION { || ExecTask(cTask,hWnd) } TOOLTIP cMess FONTNAME "MS Sans serif" FONTSIZE 14 FONTBOLD .t. LEFTTEXT .t. BACKCOLOR WHITE END BUTTON NEXT Так вот, при вызове ExecTask(cTask,hWnd) - cTask всегда возвращает последний элемент массива ... Почему ? Как нужно правильно сделать ? Полный пример здесь: http://files.mail.ru/SNQMZ9


gfilatov2002: Andrey пишет: при вызове ExecTask(cTask,hWnd) - cTask всегда возвращает последний элемент массива ... Как нужно правильно сделать ? Отправил исправленный рабочий вариант по почте

Andrey: gfilatov2002 пишет: Отправил исправленный рабочий вариант по почте Спасибо большое... А как нужно правильно описывать переменные в МиниГуи ? PRIVATE можно использовать в коде программы ? Разбираюсь с чужим рабочим кодом... Вот выдержка из него: kol_button := Len( arr_menu_button ) AAdd( arr_kol_button, kol_button ) ......... font_button := { "Times Roman", 12, .T., { 155, 155, 155 }, { 155, 0, 0 }, { 200, 200, 200 }, { 50, 50, 50 } } font_button := chk_font( font_button, 1 ) font_marker_button := { "Times Roman", 12, .T., { 155, 155, 155 }, { 155, 0, 0 }, { 200, 200, 200 }, { 50, 50, 50 } } font_marker_button := chk_font( font_marker_button, 1 ) FOR i_button := 1 TO kol_button nam_exe_button := "act_exe_but0" + IIF(i_page<10, Str( i_page, 1 ), Str( i_page, 2 ) ) + AllTrim( Str( i_button, 2 ) ) PRIVATE &nam_exe_button IF Len( arr_menu_button[ i_button ] ) > 9.and. ! Empty( arr_menu_button[ i_button, 10 ] ) &nam_exe_button := arr_menu_button[ i_button, 10 ] ELSE &nam_exe_button := "" ENDIF AAdd( curs_arr_size[ i_page, 3 ], &nam_exe_button ) IF i_button == 1 AAdd( curs_arr_size[ i_page, 4 ], 1 ) //i_button max_button := 1//i_button ELSE IF arr_menu_button[ i_button, 1 ] > arr_menu_button[ max_button, 1 ] + arr_menu_button[ max_button, 4 ] AAdd( curs_arr_size[ i_page, 4 ], i_button ) max_button := i_button ENDIF ENDIF image_ch1 := "CH2Image_" + AllTrim( Str( i_page, 3 ) ) + AllTrim( Str( i_button, 3 ) ) PRIVATE &image_ch1 &image_ch1 := AllTrim( Str( i_page, 3 ) ) + AllTrim( Str( i_button, 3 ) ) DEFINE BUTTONEX &( "ButtonEX_" + AllTrim( Str( i_page, 3 ) ) + AllTrim( Str( i_button, 3 ) ) ) // PICTURE arr_menu_button[i_button,7]//choice_bmp1 ICON arr_menu_button[ i_button, 7 ] //choice_bmp1 Row arr_menu_button[ i_button, 1 ] + 25 Col arr_menu_button[ i_button, 2 ] WIDTH arr_menu_button[ i_button, 4 ] HEIGHT arr_menu_button[ i_button, 3 ] BACKCOLOR BROWN //для расцветки по градиенту, иначе не работает FONTSIZE 12//&(font_button[2]) VERTICAL .T. ADJUST .F. ACTION ( Sect_Run_Tasks( &nam_exe_button ), Form_1.Setfocus, form_graph_tab() ) END BUTTONEX //MsgInfo(Conv_Profile(nam_exe_button)) Form_1. & ( "ButtonEX_" + AllTrim( Str( i_page, 3 ) ) + AllTrim( Str( i_button, 3 ) ) ) .cargo := arr_menu_button[ i_button ] // Название задачи DEFINE LABEL &( "Label_" + AllTrim( Str( i_page, 3 ) ) + AllTrim( Str( i_button, 3 ) ) ) Row arr_menu_button[ i_button, 1 ] + arr_menu_button[ i_button, 3 ] + 25 drab_y := ( arr_menu_button[ i_button, 6 ] - arr_menu_button[ i_button, 4 ] ) / 2 rab_y := arr_menu_button[ i_button, 2 ] - drab_y IF rab_y < 0 rab_y := 2 ENDIF Col rab_y WIDTH arr_menu_button[ i_button, 6 ] HEIGHT arr_menu_button[ i_button, 5 ] FONTNAME font_button[ 1 ] FONTSIZE font_button[ 2 ] FONTBOLD font_button[ 3 ] FONTCOLOR font_button[ 4 ] BACKCOLOR font_button[ 5 ] VERTICAL .T. CENTERALIGN .T. ADJUST .F. ONMOUSEHOVER { || ch_property( &image_ch1, .F. ), s_form_graph_tab() } ONMOUSELEAVE { || ch_property( &image_ch1, .T. ), s_form_graph_tab() } VALUE AtRepl( ";", arr_menu_button[ i_button, 9 ], Chr( 10 ) ) //"Кнопка " +str(i_page,3) +str(i_button,3) ACTION { || Sect_Run_Tasks( &nam_exe_button ), form_graph_tab() } END LABEL Form_1. & ( "Label_" + AllTrim( Str( i_page, 3 ) ) + AllTrim( Str( i_button, 3 ) ) ) .cargo := { font_button, font_marker_button } NEXT // FOR i_button := 1 TO kol_button Подскажите как нужно правильно писать код в таких случаях ?

Vlad04: Что за программа ? Всю выложить можешь?

gfilatov2002: Andrey пишет: PRIVATE можно использовать в коде программы ? Да, если они связаны с использованием макро-переменных. Andrey пишет: Подскажите как нужно правильно писать код в таких случаях ? О каких случаях идет речь

Andrey: gfilatov2002 пишет: О каких случаях идет речь Объявление переменных в цикле, т.е. на ходу ? FOR i_button := 1 TO kol_button nam_exe_button := "act_exe_but0" + IIF(i_page<10, Str( i_page, 1 ), Str( i_page, 2 ) ) + AllTrim( Str( i_button, 2 ) ) PRIVATE &nam_exe_button ...... AAdd( curs_arr_size[ i_page, 3 ], &nam_exe_button ) ........ ACTION ( Sect_Run_Tasks( &nam_exe_button ), Form_1.Setfocus, form_graph_tab() ) ................ NEXT или FOR i_button := 1 TO kol_button ........... image_ch1 := "CH2Image_" + AllTrim( Str( i_page, 3 ) ) + AllTrim( Str( i_button, 3 ) ) PRIVATE &image_ch1 &image_ch1 := AllTrim( Str( i_page, 3 ) ) + AllTrim( Str( i_button, 3 ) ) DEFINE BUTTONEX &( "ButtonEX_" + AllTrim( Str( i_page, 3 ) ) + AllTrim( Str( i_button, 3 ) ) ) // PICTURE arr_menu_button[i_button,7]//choice_bmp1 ICON arr_menu_button[ i_button, 7 ] //choice_bmp1 Row arr_menu_button[ i_button, 1 ] + 25 Col arr_menu_button[ i_button, 2 ] WIDTH arr_menu_button[ i_button, 4 ] HEIGHT arr_menu_button[ i_button, 3 ] BACKCOLOR BROWN //для расцветки по градиенту, иначе не работает FONTSIZE 12//&(font_button[2]) VERTICAL .T. ADJUST .F. ACTION ( Sect_Run_Tasks( &nam_exe_button ), Form_1.Setfocus, form_graph_tab() ) END BUTTONEX ........... NEXT Да Клипер и Харбор позволяет такое делать. А как же общие рекомендации - объявлять все переменные в начале функции. Какие последствия бывают за это ? Ну скорость может чуток падает или еще что-то есть ? Код рабочий, работает... Но по моему не читаемый. Как правильно оформить его ? Я для себя хочу понять, как правильно писать на МиниГуи... Извиняюсь за свое косноязычие....

gfilatov2002: Andrey пишет: Объявление переменных в цикле Вопрос понятен. Посмотрите, как это сделано в коде библиотеки без использования частных переменных: FOR nJ := 1 TO nMax(aData) cName := "yVal_Name_"+Ltrim(Str(nJ)) @ nBottom + 8, nI - IF(l3D, nDeep, nDeep + 8) LABEL &cName OF &parent; VALUE aYVals[nJ] AUTOSIZE; FONTCOLOR aClrFore; BACKCOLOR IF( lPrint, WHITE, aClrBack ); FONT _HMG_DefaultFontName SIZE _HMG_DefaultFontSize-1 nI += nWideB NEXT

Andrey: gfilatov2002 пишет: Посмотрите, как это сделано в коде библиотеки без использования частных переменных: Спасибо БОЛЬШОЕ !

Andrey: gfilatov2002 пишет: Петр пишет: цитата: я выложу код c_image.c после окончательной пришлифовка, т.е. более точного копирования поведения loadolepicture Большое спасибо! Но тогда уже это будет включено в следующую сборку А где в новой версии этот пример ?

gfilatov2002: Andrey пишет: А где в новой версии этот пример ? Нету Увы, так и не получил от Петра обещанный отшлифованный код c_image.c

Andrey: Григорий, а где можно посмотреть примеры вывода иконок на окно из ресурсов или файлов ? Так как иконки не имеют фона, то их можно выводить на форму - пока вместо PNG файлов. Только как выводить иконки без кнопок ? Пример: MiniGUI\SAMPLES\BASIC\ButtonEx - не подходит.

gfilatov2002: Andrey пишет: где можно посмотреть примеры вывода иконок на окно из ресурсов или файлов ? Посмотри, например, пример в папке samples\Advanced\IcoView

Andrey: gfilatov2002 пишет: Посмотри, например, пример в папке samples\Advanced\IcoView Что-то пример какой то замороченный, в смысле - много кода который не нужен. Как просто вывести иконку на форму ?

Vladimir: @ ... IMAGE <ControlName> Пример SAMPLES\BASIC\IMAGE_2 не оно?

Andrey: Vladimir пишет: Пример SAMPLES\BASIC\IMAGE_2 не оно? А ты туда попробуй иконку 64х64 поставить ! У меня не получилось ...

Vladimir: Виноват. Похоже, пропускает не все иконки. Иконка 128х128. Скачана из Интернет, но преобразована в XnView в полноцветную.

Andrey: А у меня ни в какую не идет ! Берет только 256 colors - а другие нет ! @ 230,270 IMAGE Image_2 PICTURE 'res\comp32x32.ico' Исходник здесь: http://files.mail.ru/P14ZZE

Andrey: Vladimir пишет: Иконка 128х128. Скачана из Интернет, но преобразована в XnView в полноцветную. 256-colors или Windows-XP формат цвета иконки ? Выложи иконку и программу. Глянуть хочется как нужно делать. Заранее спасибо.



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