Автор | Сообщение |
Andrey
|
| постоянный участник
|
Пост N: 1929
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.11.11 21:36. Заголовок: Примеры из Минигуи -ошибки, вопросы.....
Всем привет. Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ? А заодно может и исправить и добавить новые.... Очень красочный пример: \MiniGUI\SAMPLES\Advanced\AVI_Animation - не работает под Win7 (наверно AVI-шки нет в ресурсах) Предложение Григорию: Можно ли добавить еще один пример с отдельным AVI-файлом в ресурсах проекта и показом такого же бегунка ? Пример: \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
|
| постоянный участник
|
Пост N: 2281
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.07.12 21:30. Заголовок: Привет. Подскажите к..
Привет. Подскажите как можно сделать следующее.... В начале программы всегда идет объявления ОКНA: DEFINE WINDOW Form_1 AT 0, 344 WIDTH 410 HEIGHT 411 ... и т.д. Изменение параметров и расположение, чтение значений делается через Form_1 Ну например: Function ChangeVersion() Local TypeVersion := Form_1.RadioGroup_1.Value Function SetValue(cDescription,cImage,cPath) Form_1.Label_3.Value := cDescription Form_1.Icon_Big.Icon := cImage Form_1.Text_1.Value := cPath А как можно прочитать/изменить ОКНО если его задать внешне, т.е. имя ОКНА приходит из другой программы ? Макроподстановка не проходит... STATIC MyForm FUNCTION MyEditVers( cWindows ) MyForm := cWindows ...... DEFINE WINDOW &MyForm AT 0, 344 WIDTH 410 HEIGHT 411 ... и т.д. ...... Center WINDOW &MyForm ACTIVATE WINDOW &MyForm Function ChangeVersion() Local TypeVersion := &MyForm.RadioGroup_1.Value // - не работает Function SetValue(cDescription,cImage,cPath) &MyForm.Label_3.Value := cDescription // - не работает &MyForm.Icon_Big.Icon := cImage // - не работает &MyForm.Text_1.Value := cPath // - не работает Заранее спасибо за ответ ! В новой документации MiniGuiPdf.pdf - не нашел. Есть только глава 16. Test Function
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 407
Зарегистрирован: 11.02.10
|
|
Отправлено: 30.07.12 10:35. Заголовок: Andrey пишет: В нов..
Andrey пишет: цитата: | В новой документации MiniGuiPdf.pdf - не нашел. |
| По-видимому, плохо искал Обрати внимание на команду DECLARE WINDOW <Form>, которая прямо предназначена для таких вещей Также в таких случаях удобнее использовать функцию SetProperty() вместо псевдо-ООП комманд: Function SetValue(cDescription,cImage,cPath) SetProperty('MyForm','Label_3','Value', cDescription) SetProperty('MyForm','Icon_Big','Icon', cImage) SetProperty('MyForm',Text_1','Value', cPath) и функцию GetProperty(): Function ChangeVersion() Local TypeVersion := GetProperty('MyForm','RadioGroup_1','Value')
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 2282
Зарегистрирован: 12.09.06
|
|
Отправлено: 30.07.12 11:11. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: Согласен .... gfilatov2002 пишет: цитата: | Обрати внимание на команду DECLARE WINDOW <Form>, которая прямо предназначена для таких вещей |
| А есть пример, а то из описания плохо пока понимаю. gfilatov2002 пишет: цитата: | Также в таких случаях удобнее использовать функцию SetProperty() вместо псевдо-ООП комманд: |
| Спасибо БОЛЬШОЕ, то что надо !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 2283
Зарегистрирован: 12.09.06
|
|
Отправлено: 31.07.12 13:55. Заголовок: А как сделать form..
А как сделать form_1.refesh() для моего случая ? Напоминаю, у меня идет определение окна через статик переменную: MyForm := cWindows ...... DEFINE WINDOW &MyForm AT 0, 344 WIDTH 410 HEIGHT 411 ... и т.д. Дело в том что я цвет ОКНА меняю по ходу работы самой программы: SetProperty( MyForm, "BackColor", aNewColor )
|
|
|
Dima
|
| |
Пост N: 2476
Зарегистрирован: 17.05.05
|
|
Отправлено: 31.07.12 21:32. Заголовок: Andrey пишет: А как..
Andrey пишет: цитата: | А как сделать form_1.refesh() для моего случая ? |
| Ни как ;) Может все таки refresh ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 2284
Зарегистрирован: 12.09.06
|
|
Отправлено: 31.07.12 22:10. Заголовок: Dima пишет: Может в..
Dima пишет: Ошибся малость при переносе на форум.... Дело в том что такое не проходит: & MyForm.refesh() Пробовал: Domethod( MyForm, "Refresh" ) - ничего не происходит. То есть мне нужно перерисовать форму, все объекты которые на ней лежат. Как это сделать ?
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 408
Зарегистрирован: 11.02.10
|
|
Отправлено: 03.08.12 12:04. Заголовок: Andrey пишет: мне н..
Andrey пишет: цитата: | мне нужно перерисовать форму, все объекты которые на ней лежат. |
| Обшей команды Refresh для всей формы не существует, но Вы можете использовать перерисовку каждого элемента формы по отдельности, как это сделано в примере Color из папки samples\Basic\Color. цитата: | ITEM 'Set Form_1 BackColor' ACTION ( Form_1.BackColor := GetColor(), ; Form_1.Label_1.BackColor := Form_1.BackColor, ; Form_1.Check_1.BackColor := Form_1.BackColor, ; Form_1.Radio_1.BackColor := Form_1.BackColor, ; Form_1.Frame_1.BackColor := Form_1.BackColor, ; Form_1.Slider_1.BackColor := Form_1.BackColor, ; Form_1.Hide, Form_1.Show ) |
| Если не хочется перечислять все элементы формы вручную, то можно использовать массив с именами всех этих элементов из примера Form Controls в папке samples\Basic\Form_Controls: цитата: | /******************************************************************************/ Function _GetArrayOfAllControlsForForm ( cFormName ) /******************************************************************************/ Local nFormHandle , i , nControlCount , aRetVal := {} , x nFormHandle := GetFormHandle ( cFormName ) nControlCount := Len ( _HMG_aControlHandles ) For i := 1 To nControlCount If _HMG_aControlParentHandles == nFormHandle If ValType( _HMG_aControlHandles ) == 'N' IF ! Empty( _HMG_aControlNames ) If Ascan( aRetVal, _HMG_aControlNames ) == 0 Aadd( aRetVal, _HMG_aControlNames ) EndIf ENDIF ElseIf ValType( _HMG_aControlHandles ) == 'A' For x := 1 To Len ( _HMG_aControlHandles ) IF !Empty( _HMG_aControlNames ) If Ascan( aRetVal, _HMG_aControlNames ) == 0 Aadd( aRetVal, _HMG_aControlNames ) EndIf ENDIF Next x EndIf EndIf Next i Return Asort( aRetVal ) |
|
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 2285
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.08.12 14:16. Заголовок: Спасибо БОЛЬШОЕ ! :..
Спасибо БОЛЬШОЕ !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 2294
Зарегистрирован: 12.09.06
|
|
Отправлено: 16.08.12 01:01. Заголовок: Можно ли с помощью М..
Можно ли с помощью МиниГуи сделать следующее: 1) PNG файл 128х128 загрузить в память и преобразовать в 128х128 ICO и сохранить файл ? 2) PNG файл любого размера "нарезать" на заданные размеры (для примера 128х128) ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 2297
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.08.12 15:50. Заголовок: Сделал обучающий при..
Сделал обучающий пример по иконкам. Не могу заставить компилироваться 2 примера из одного файла: build.bat call hbmk2.bat %* demo1.hbp call hbmk2.bat %* demo2.hbp Пишет ошибку: building... S:\SAMPLES\IconsToForm\build.log Процесс не может получить доступ к файлу, так как этот файл занят другим процессом. Процесс не может получить доступ к файлу, так как этот файл занят другим процессом. Harbour 3.2.0dev (Rev. 17966) Как побороть это ? Содержание: demo1.hbp Скрытый текст
# Incremental-режим компиляции -inc # папка где будут все *.obj -workdir=OBJ1 # Имя EXE-модуля -odemo1.exe # включить путь к MiniGui и своим *.ch и *.fmg -incpath=Z:\MiniGUI\Include # перечисляем все *.prg demo.prg # Ресурсы demo.rc # Пути к основным и добавочным *.lib -lminigui -LZ:\MiniGUI\LIB\
| Содержание: demo2.hbp Скрытый текст
# Incremental-режим компиляции -inc # папка где будут все *.obj -workdir=OBJ2 # Имя EXE-модуля -odemo2.exe # включить путь к MiniGui и своим *.ch и *.fmg -incpath=Z:\MiniGUI\Include # перечисляем все *.prg demo.prg # Ресурсы demo.rc # Пути к основным и добавочным *.lib -lminigui -LZ:\MiniGUI\LIB\
|
|
|
|
AlexMyr
|
| |
Пост N: 569
Зарегистрирован: 11.06.10
|
|
Отправлено: 20.08.12 16:01. Заголовок: Посмотрел hbp файлы,..
Посмотрел hbp файлы, вопрос: demo.prg это один файл или он разный и лежит в разных папках? где содержимое hbmk2.bat? Так пробовал? call hbmk2.bat %* demo*.hbp
|
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 2298
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.08.12 16:35. Заголовок: AlexMyr пишет: вопр..
AlexMyr пишет: цитата: | вопрос: demo.prg это один файл или он разный и лежит в разных папках? |
| Это один и тот же файл. AlexMyr пишет: цитата: | Так пробовал? call hbmk2.bat %* demo*.hbp |
| Попробовал ! Получилось !!! Спасибо БОЛЬШОЕ !!!
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 2302
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.08.12 12:21. Заголовок: Всем привет ! Подск..
Всем привет ! Подскажите пожалуйста, как задавать цвет STATUSBAR-а ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 2328
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.09.12 14:57. Заголовок: МиниГуи - пример SAM..
МиниГуи - пример SAMPLES\BASIC\DirectoryRecurse Если в папки записать файлы без расширений, то ничего НЕ ПОКАЗЫВАЕТ ! Почему ? Папка для пробы здесь http://files.mail.ru/QJS1VX
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 2407
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.11.12 20:11. Заголовок: Можно ли узнать како..
Можно ли узнать какой тип картинки записан в ресурсе EXE-ника ? Т.е. у меня в rc файле лежат два разных файла: DEMO1 BITMAP "res\LOGO_DEMO.BMP" DEMO2 JPG "res\harbour-logo.jpg" А в программе я хочу определить какой тип файла, чтобы вычислить размер рисунка: // если тип файла "BMP" IF ???? ______aSize := BmpSize( cFile ) ELSE ______aSize := JpgSize( cFile ) ENDIF nWidth := aSize[1] nHeight := aSize[2] И почему в ХЕЛПЕРе нет описание функции JpgSize( cFile ) и hb_GetImageSize() ? Нашел только в примере \MiniGUI\SAMPLES\Advanced\JpgViewer, да и то с переназначением(вызовом) функции hb_GetImageSize() ? Да и то эта функция выдает размер файла на диске, а не в ресурсе !!! Облом... Что нельзя было сделать общую функцию определения размера картинки независимо от типа файла и типа размещения (т.е. файл на диске или файл в ресурсе) ??? Может уже есть такая функция, а я не нашел...
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 2487
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.12.12 21:34. Заголовок: Всем привет. Как реа..
Всем привет. Как реализовать следующее: Имею объект ГРИД: DEFINE GRID Grid_Report ............... HEADERS {'№','Наименование отчета', 'Файл' } WIDTHS { 30,430, 120 } ITEMS LoadReport() VALUE 1 HEADERIMAGES aImages BACKCOLOR { 159, 191, 236 } TOOLTIP 'Выбор отчета/F4-Редактирование отчета' ONDBLCLICK LoadViewFr3() END GRID ....... ///////////////// FUNCTION LoadViewFr3() ??? Как узнать выбранный элемент массива и название файла ? Как можно назначить клавишу (допустим F4) - чтобы вызывалась отдельная функция ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 2489
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.12.12 12:52. Заголовок: Разобрался я с элеме..
Разобрался я с элементами меню ГРИДА... И как назначить горячую клавишу на форме.. вот результат, если кому интересно... http://files.mail.ru/RNWL47
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 431
Зарегистрирован: 11.02.10
|
|
Отправлено: 19.12.12 14:50. Заголовок: Andrey пишет: Разоб..
Andrey пишет: цитата: | Разобрался я с элементами меню ГРИДА... И как назначить горячую клавишу на форме |
| Супер! Но вместо дополнительной функции GetColValue( xObj, xForm, nCol ) можно использовать стандарный объект Cell (row, col) Например, так: цитата: | FUNCTION LoadViewFr3() LOCAL cMsg := Form_1.Grid_Report.Cell( this.value, 3 ) LOCAL cMsg2 := Form_1.Grid_Report.Cell( this.value, 2 ) MsgInfo( cMsg ) MsgInfo( cMsg2 ) //MsgInfo( GetColValue( "Grid_Report", "Form_1", 3 ) ) //MsgInfo( GetColValue( "Grid_Report", "Form_1", 2 ) ) RETURN NIL |
|
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 2490
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.12.12 15:50. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: Спасибо БОЛЬШОЕ ! Как насчет моего письма ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 2493
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.12.12 09:34. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | можно использовать стандарный объект Cell (row, col) |
| Для мышки и ENTER это работает ! А по горячей клавише F4 - вылетает с ошибкой.... Как можно исправить ? Исходник здесь. http://files.mail.ru/42OT6H
|
|
|
Ответов - 301
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
All
[только новые]
|
|