Автор | Сообщение |
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.
| |
|
Ответов - 301
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
All
[только новые]
|
|
Dima
|
| |
Пост N: 2408
Зарегистрирован: 17.05.05
|
|
Отправлено: 11.06.12 21:19. Заголовок: Andrey Пошукай по п..
Andrey Пошукай по примерам "DEFINE TIMER"
| |
|
Andrey
|
| постоянный участник
|
Пост N: 2232
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.06.12 13:49. Заголовок: Dima пишет: Пошукай..
Dima пишет: цитата: | Пошукай по примерам "DEFINE TIMER" |
| Спасибо БОЛЬШОЕ Дима ! Нашел !
| |
|
Andrey
|
| постоянный участник
|
Пост N: 2233
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.06.12 13:54. Заголовок: Видимость переменных..
Видимость переменных или как сделать следующее ? Имею код: 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
|
| moderator
|
Пост N: 389
Зарегистрирован: 11.02.10
|
|
Отправлено: 14.06.12 16:06. Заголовок: Andrey пишет: при в..
Andrey пишет: цитата: | при вызове ExecTask(cTask,hWnd) - cTask всегда возвращает последний элемент массива ... Как нужно правильно сделать ? |
| Отправил исправленный рабочий вариант по почте
| |
|
Andrey
|
| постоянный участник
|
Пост N: 2243
Зарегистрирован: 12.09.06
|
|
Отправлено: 14.06.12 22:31. Заголовок: gfilatov2002 пишет: ..
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
|
| постоянный участник
|
Пост N: 312
Зарегистрирован: 13.10.05
|
|
Отправлено: 15.06.12 10:07. Заголовок: Что за программа ? В..
Что за программа ? Всю выложить можешь?
| |
|
gfilatov2002
|
| moderator
|
Пост N: 390
Зарегистрирован: 11.02.10
|
|
Отправлено: 18.06.12 17:15. Заголовок: Andrey пишет: PRIVA..
Andrey пишет: цитата: | PRIVATE можно использовать в коде программы ? |
| Да, если они связаны с использованием макро-переменных. Andrey пишет: цитата: | Подскажите как нужно правильно писать код в таких случаях ? |
| О каких случаях идет речь
| |
|
Andrey
|
| постоянный участник
|
Пост N: 2249
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.06.12 19:01. Заголовок: gfilatov2002 пишет: ..
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
|
| moderator
|
Пост N: 391
Зарегистрирован: 11.02.10
|
|
Отправлено: 18.06.12 21:08. Заголовок: Andrey пишет: Объяв..
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
|
| постоянный участник
|
Пост N: 2250
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.06.12 23:55. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Посмотрите, как это сделано в коде библиотеки без использования частных переменных: |
| Спасибо БОЛЬШОЕ !
| |
|
Andrey
|
| постоянный участник
|
Пост N: 2264
Зарегистрирован: 12.09.06
|
|
Отправлено: 10.07.12 21:09. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Петр пишет: цитата: я выложу код c_image.c после окончательной пришлифовка, т.е. более точного копирования поведения loadolepicture Большое спасибо! Но тогда уже это будет включено в следующую сборку |
| А где в новой версии этот пример ?
| |
|
|
gfilatov2002
|
| moderator
|
Пост N: 396
Зарегистрирован: 11.02.10
|
|
Отправлено: 11.07.12 10:25. Заголовок: Andrey пишет: А где..
Andrey пишет: цитата: | А где в новой версии этот пример ? |
| Нету Увы, так и не получил от Петра обещанный отшлифованный код c_image.c
| |
|
Andrey
|
| постоянный участник
|
Пост N: 2265
Зарегистрирован: 12.09.06
|
|
Отправлено: 11.07.12 11:15. Заголовок: Григорий, а где можн..
Григорий, а где можно посмотреть примеры вывода иконок на окно из ресурсов или файлов ? Так как иконки не имеют фона, то их можно выводить на форму - пока вместо PNG файлов. Только как выводить иконки без кнопок ? Пример: MiniGUI\SAMPLES\BASIC\ButtonEx - не подходит.
| |
|
gfilatov2002
|
| moderator
|
Пост N: 398
Зарегистрирован: 11.02.10
|
|
Отправлено: 11.07.12 11:25. Заголовок: Andrey пишет: где м..
Andrey пишет: цитата: | где можно посмотреть примеры вывода иконок на окно из ресурсов или файлов ? |
| Посмотри, например, пример в папке samples\Advanced\IcoView
| |
|
Andrey
|
| постоянный участник
|
Пост N: 2266
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.07.12 14:49. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Посмотри, например, пример в папке samples\Advanced\IcoView |
| Что-то пример какой то замороченный, в смысле - много кода который не нужен. Как просто вывести иконку на форму ?
| |
|
Vladimir
|
| |
Пост N: 10
Зарегистрирован: 27.07.10
|
|
Отправлено: 13.07.12 15:27. Заголовок: @ ... IMAGE <Con..
@ ... IMAGE <ControlName> Пример SAMPLES\BASIC\IMAGE_2 не оно?
| |
|
Andrey
|
| постоянный участник
|
Пост N: 2267
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.07.12 15:50. Заголовок: Vladimir пишет: При..
Vladimir пишет: цитата: | Пример SAMPLES\BASIC\IMAGE_2 не оно? |
| А ты туда попробуй иконку 64х64 поставить ! У меня не получилось ...
| |
|
Vladimir
|
| |
Пост N: 11
Зарегистрирован: 27.07.10
|
|
Отправлено: 13.07.12 16:53. Заголовок: Виноват. Похоже, про..
Виноват. Похоже, пропускает не все иконки. Иконка 128х128. Скачана из Интернет, но преобразована в XnView в полноцветную.
| |
|
Andrey
|
| постоянный участник
|
Пост N: 2268
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.07.12 17:05. Заголовок: А у меня ни в какую ..
А у меня ни в какую не идет ! Берет только 256 colors - а другие нет ! @ 230,270 IMAGE Image_2 PICTURE 'res\comp32x32.ico' Исходник здесь: http://files.mail.ru/P14ZZE
| |
|
Andrey
|
| постоянный участник
|
Пост N: 2269
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.07.12 17:08. Заголовок: Vladimir пишет: Ико..
Vladimir пишет: цитата: | Иконка 128х128. Скачана из Интернет, но преобразована в XnView в полноцветную. |
| 256-colors или Windows-XP формат цвета иконки ? Выложи иконку и программу. Глянуть хочется как нужно делать. Заранее спасибо.
| |
|
Ответов - 301
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
All
[только новые]
|
|
|