On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
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.



Спасибо: 0 
Профиль
Ответов - 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



Спасибо: 0 
Профиль
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')



Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 2282
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.07.12 11:11. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
По-видимому, плохо искал


Согласен ....

gfilatov2002 пишет:

 цитата:
Обрати внимание на команду DECLARE WINDOW <Form>, которая прямо предназначена для таких вещей


А есть пример, а то из описания плохо пока понимаю.

gfilatov2002 пишет:

 цитата:
Также в таких случаях удобнее использовать функцию SetProperty() вместо псевдо-ООП комманд:


Спасибо БОЛЬШОЕ, то что надо !

Спасибо: 0 
Профиль
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 )


Спасибо: 0 
Профиль
Dima
администратор




Пост N: 2476
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 31.07.12 21:32. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А как сделать

form_1.refesh() для моего случая ?


Ни как ;) Может все таки refresh ?

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 2284
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.07.12 22:10. Заголовок: Dima пишет: Может в..


Dima пишет:

 цитата:
Может все таки refresh ?



Ошибся малость при переносе на форум....

Дело в том что такое не проходит:
&MyForm.refesh()

Пробовал:
Domethod( MyForm, "Refresh" ) - ничего не происходит.

То есть мне нужно перерисовать форму, все объекты которые на ней лежат.
Как это сделать ?



Спасибо: 0 
Профиль
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 )



Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 2285
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.08.12 14:16. Заголовок: Спасибо БОЛЬШОЕ ! :..


Спасибо БОЛЬШОЕ !

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 2294
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.08.12 01:01. Заголовок: Можно ли с помощью М..


Можно ли с помощью МиниГуи сделать следующее:
1) PNG файл 128х128 загрузить в память и преобразовать в 128х128 ICO и сохранить файл ?
2) PNG файл любого размера "нарезать" на заданные размеры (для примера 128х128) ?



Спасибо: 0 
Профиль
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
Скрытый текст

Содержание: demo2.hbp
Скрытый текст



Спасибо: 0 
Профиль
AlexMyr



Пост N: 569
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 20.08.12 16:01. Заголовок: Посмотрел hbp файлы,..


Посмотрел hbp файлы, вопрос: demo.prg это один файл или он разный и лежит в разных папках?
где содержимое hbmk2.bat?

Так пробовал?
call hbmk2.bat %* demo*.hbp

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 2298
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.08.12 16:35. Заголовок: AlexMyr пишет: вопр..


AlexMyr пишет:

 цитата:
вопрос: demo.prg это один файл или он разный и лежит в разных папках?



Это один и тот же файл.

AlexMyr пишет:

 цитата:
Так пробовал?
call hbmk2.bat %* demo*.hbp



Попробовал ! Получилось !!! Спасибо БОЛЬШОЕ !!!

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 2302
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.08.12 12:21. Заголовок: Всем привет ! Подск..


Всем привет !

Подскажите пожалуйста, как задавать цвет STATUSBAR-а ?

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 2328
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.09.12 14:57. Заголовок: МиниГуи - пример SAM..


МиниГуи - пример SAMPLES\BASIC\DirectoryRecurse

Если в папки записать файлы без расширений, то ничего НЕ ПОКАЗЫВАЕТ !
Почему ?

Папка для пробы здесь http://files.mail.ru/QJS1VX


Спасибо: 0 
Профиль
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() ? Да и то эта функция выдает размер файла на диске, а не в ресурсе !!!
Облом...

Что нельзя было сделать общую функцию определения размера картинки
независимо от типа файла и типа размещения (т.е. файл на диске или файл в ресурсе) ???

Может уже есть такая функция, а я не нашел...



Спасибо: 0 
Профиль
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) - чтобы вызывалась отдельная функция ?

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 2489
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.12.12 12:52. Заголовок: Разобрался я с элеме..


Разобрался я с элементами меню ГРИДА...
И как назначить горячую клавишу на форме..

вот результат, если кому интересно... http://files.mail.ru/RNWL47


Спасибо: 0 
Профиль
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



Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 2490
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.12.12 15:50. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Например, так:


Спасибо БОЛЬШОЕ !

Как насчет моего письма ?

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 2493
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.12.12 09:34. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
можно использовать стандарный объект Cell (row, col)



Для мышки и ENTER это работает !
А по горячей клавише F4 - вылетает с ошибкой....

Как можно исправить ?
Исходник здесь. http://files.mail.ru/42OT6H

Спасибо: 0 
Профиль
Ответов - 301 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 0
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет