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



Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]


Andrey
постоянный участник




Пост N: 3905
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.01.15 11:49. Заголовок: Спасибо БОЛЬШОЕ ! :..


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

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




Пост N: 3908
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.01.15 21:09. Заголовок: А что за ошибка така..


А что за ошибка такая ?
Подробней информация как можно получить ?

Error MGERROR/0 Grid: ITEMS length mismatch. Program terminated.
Called from MSGMINIGUIERROR(91)
Called from _DEFINEGRID(140)
Called from ACHOICE_HMG(230)
Called from ACHOICEMENU(142)
Called from LISTSPRAVKI(286)
Called from (b)MYINITFORMSPR(173)
Called from (b)METRO3BUTTON(40)
Called from _DOCONTROLEVENTPROCEDURE(1658)
Called from EVENTS(1472)
Called from _DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(1380)
Called from HANDBOOKS(83)
Called from (b)MAIN(105)
Called from _PROCESSINITPROCEDURE(1498)
Called from _ACTIVATEWINDOW(1364)


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




Пост N: 463
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.01.15 21:59. Заголовок: Andrey _DEFINEGRID(..


Andrey
_DEFINEGRID(140)
открываешь h_grid.prg
FUNCTION _DefineGrid ( ControlName, ParentFormName, x, y, w, h, aHeaders, aWidths, aRows, value, ;
fontname, fontsize, tooltip, change, dblclick, aHeadClick, gotfocus, lostfocus, nogrid, ;
aImage, aJust, break, HelpId , bold, italic, underline, strikeout, ownerdata, ondispinfo, ;
itemcount, editable, dynamicforecolor, dynamicbackcolor, multiselect, editcontrols, ;
backcolor, fontcolor, nId, columnvalid, columnwhen, validmessages, showheaders, aImageHeader, ;
NoTabStop, celled, lCheckboxes, lockcolumns )
...
goto line 140 :
 
...
IF ValType ( aRows ) != 'U'
IF Len ( aRows ) > 0
IF Len ( aRows[1] ) != Len ( aHeaders ) // а тут бяка
MsgMiniGuiError ( "Grid: ITEMS length mismatch." ) // line 140
ENDIF
ENDIF
ENDIF
...

если не понятно, открываешь i_grid.ch и смотришь DEFINE GRID ...
как ложаться параметры ... и делаешь выводы


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




Пост N: 3909
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.01.15 14:58. Заголовок: SergKis пишет: откр..


SergKis пишет:

 цитата:
открываешь h_grid.prg



Взял это файл, поставил к себе в проект.
Перед IF ValType ( aRows ) != 'U'
поставил: MsgDebug(aRows,"====",aHeaders,"---",Len ( aRows[1] ), Len ( aHeaders ))
После компиляции и запуска на этой строке получаю:
MsgDebug(Значение_массива,"====",{'Select menu'},"---", 41, 1) и далее вылет по этой же ошибке....
GRID состоит из ОДНОГО столбца, заголовок есть - тоже один ! Почему должна срабатывать ошибка ?
Не пойму я что-то ничего в этом....
А если я делаю SHOWHEADERS .F. тогда этот aHeaders вообще не надо учитывать !

Пример был рабочим - растащил на части - не работает...


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




Пост N: 3912
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.01.15 23:25. Заголовок: Andrey пишет: Приме..


Andrey пишет:

 цитата:
Пример был рабочим - растащил на части - не работает...


Блин, уже не первый раз залетаю, что GRID должен на входе иметь не одинарный массив, а вложенный....
Вставил в рабочий пример - h_grid.prg, в нем натыкал отладки, собираешь пример и видишь - где сам накосячил....
Вопрос решен ! Спасибо SergKis за подсказку решения проблеммы !!!

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




Пост N: 3913
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.01.15 20:54. Заголовок: Открываю новую форму..


Открываю новую форму, задаю шрифт и размер на эту форму, далее вызываю функцию, которая строит объекты на форме.
Как получить в этой функции, размер и наименование шрифта ?
Можно конечно и передавать параметры в новую функцию, но это не есть хорошо.
Я видал что можно и так делать:
cFontName := _HMG_DefaultFontName // из MiniGUI.Init()
nFontSize := _HMG_DefaultFontSize // из MiniGUI.Init()
Или это относиться ТОЛЬКО при открытии задачи ?
Поясните пожалуйста....

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




Пост N: 464
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.01.15 21:32. Заголовок: Andrey открываешь h..


Andrey
открываешь h_windows.prg и :
 
FUNCTION _DefineWindow ( FormName, Caption, x, y, w, h, nominimize, nomaximize, nosize, nosysmenu, nocaption, aMin, aMax, ;
InitProcedure, ReleaseProcedure, MouseDragProcedure, SizeProcedure, ClickProcedure, MouseMoveProcedure, aRGB, PaintProcedure, ;
noshow, topmost, main, icon, child, fontname, fontsize, NotifyIconName, NotifyIconTooltip, NotifyIconLeftClick, ;
GotFocus, LostFocus, VirtualHeight, VirtualWidth, scrollleft, scrollright, scrollup, scrolldown, hscrollbox, vscrollbox, helpbutton, ;
MaximizeProcedure, MinimizeProcedure, cursor, NoAutoRelease, InteractiveCloseProcedure, ;
RestoreProcedure, MoveProcedure, DropProcedure, mdi, palette, NotifyIconDblClick, cPanelParent, panel )
...
_HMG_ActiveFontName := IFCHARACTER( FontName, FontName, "" )

_HMG_ActiveFontSize := IFNUMBER( FontSize, FontSize, 0 )
...

если empty(_HMG_ActiveFontName), то берешь _HMG_DefaultFontName
аналогично _HMG_ActiveFontSize и _HMG_DefaultFontSize



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




Пост N: 3914
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.01.15 19:54. Заголовок: SergKis пишет: откр..


SergKis пишет:

 цитата:
открываешь h_windows.prg и :


Спасибо !!!

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




Пост N: 3915
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.01.15 20:00. Заголовок: Как отловить ошибку ..


Как отловить ошибку в МиниГуи ?

В терминалке было так:
bErrHandler := ERRORBLOCK( {|var| BREAK(var)} )
//Простая обработка ошибок
BEGIN SEQUENCE
nJ := LEN( aRelation )
IF nJ > 0
SET RELATION TO
FOR nI := 1 TO nJ
cTemp1:=aRelation[ nI, 1 ] ; cTemp2:=aRelation[ nI, 2 ]
dbSetRelation( cTemp2, {|| &cTemp1}, cTemp1 )
NEXT
ENDIF

MSG( " Не могу установить SET RELATION "+cTemp1+" INTO "+cTemp2+;
" [цикл="+ALLTRIM(STR(nI))+"]", 5 )
RETURN .F.
END SEQUENCE
ERRORBLOCK(bErrHandler)


При ошибках всё прекрасно работало.

В МиниГуи теперь получаю:


Как сделать, чтобы такого не было ?

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




Пост N: 465
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.01.15 20:25. Заголовок: Andrey пишет:Как отл..


Andrey пишет:
 цитата:
Как отловить ошибку в МиниГуи ?


см. SAMPLES\BASIC\MyErrorFunc

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




Пост N: 3916
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.01.15 21:15. Заголовок: SergKis пишет: см. ..


SergKis пишет:

 цитата:
см. SAMPLES\BASIC\MyErrorFunc


Спасибо за это !

Только при неправильном dbSetRelation( cTemp2, {|| &cTemp1}, cTemp1 )
программа вылетает БЕЗ ОШИБКИ с таким видом:


Как это побороть ? Чтобы ошибка была ?

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




Пост N: 3935
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.01.15 23:17. Заголовок: Andrey пишет: Тольк..


Andrey пишет:

 цитата:
Только при неправильном dbSetRelation( cTemp2, {|| &cTemp1}, cTemp1 )
программа вылетает БЕЗ ОШИБКИ с таким видом:



Народ, а у вас как вылетает при неправильно заданном dbSetRelation() ?

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




Пост N: 4426
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.01.15 23:41. Заголовок: Andrey пишет: Народ..


Andrey пишет:

 цитата:
Народ, а у вас как вылетает при неправильно заданном dbSetRelation() ?


У меня ни как. Таких ошибок просто не делаю.

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




Пост N: 3944
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.02.15 17:32. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
С помощью WinAPI надо переопределить statusbar item как самописный (ownerdraw),
послав ему собщение SendMessage( hwndSb, SB_SETTEXT, hb_BitOr( IDS_STATUSBAR, SBT_OWNERDRAW ), IDS_STATUSBAR ).

В первом приближении это может выглядеть как в примере ниже
Скрытый текст



А можете эту программ чуток подробне прокоментировать ?
Не совсем понял что делает и когда:
SET EVENTS FUNCTION TO MYEVENTS

Как в основной программе задать цвет и фон StatusBar'a.

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




Пост N: 715
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.02.15 17:56. Заголовок: Andrey пишет: Как в..


Andrey пишет:

 цитата:
Как в основной программе задать цвет и фон StatusBar'a


По шагам:
1) получаем хэндл статусбара
hwndSb := GetControlHandle ( _HMG_ActiveMessageBarname, _HMG_ActiveFormName )
2) переназначаем требуемый участок этого статусбара как ownerdraw
SendMessage( hwndSb, SB_SETTEXT, hb_BitOr( IDS_STATUSBAR, SBT_OWNERDRAW ), IDS_STATUSBAR )
3) обрабатываем в пользовательской функции MyEvents() событие WM_DRAWITEM, в котором сами рисуем надпись на заданном участке.

См. доработанный пример ниже
Скрытый текст



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




Пост N: 3945
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.02.15 18:43. Заголовок: Вылетает по ошибке. ..


Вылетает по ошибке.
IF i > 0 .AND. _IsControlDefined ( "StatusBar" , _HMG_aFormNames )

Error BASE/1081 Argument error: +
Called from _ISCONTROLDEFINED(1039)
Called from MYEVENTS(55)
Called from UPDATEWINDOW(0)
Called from EVENTS(634)
Called from MYEVENTS(72)
Called from SHOWWINDOW(0)
Called from _ACTIVATEWINDOW(1360)
Called from MAIN(37)


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




Пост N: 716
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.02.15 18:47. Заголовок: Andrey пишет: Вылет..


Andrey пишет:

 цитата:
Вылетает по ошибке


Это из-за форматирования форума - уже поправил код в сообщении выше

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




Пост N: 3946
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.02.15 21:37. Заголовок: Работает ! Осталось ..


Работает ! Осталось как то параметры цвета передавать ....

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




Пост N: 4483
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.02.15 22:14. Заголовок: Andrey пишет: Остал..


Andrey пишет:

 цитата:
Осталось как то параметры цвета передавать ...


Они задаются в этом примере в MyEvents() и похоже красятся все ITEMы а как покрасит конкретный ?

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




Пост N: 717
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.02.15 22:38. Заголовок: Dima пишет: как по..


Dima пишет:

 цитата:
как покрасит конкретный ?


Для этого надо сделать само-нарисованным (Ownerdraw) только этот конкретный участок статусной строки.
См. рабочий пример ниже
Скрытый текст


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