On-line: гостей 2. Всего: 2 [подробнее..]
АвторСообщение
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: 6215
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.03.19 12:17. Заголовок: Спасибо Григорий ! ..


Спасибо Григорий !

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




Пост N: 6229
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.04.19 14:51. Заголовок: Всем привет. Ошибка ..


Всем привет.
Ошибка начала появляться в работающей программе с 2017 года.
Ранее таких ошибок не появлялось... Что-то в новой версии появилась такая ошибка.
Вот лог-ошибки:
Error MGERROR/0 Window: unrecognized property 'MESSAGE'. Program terminated.
Called from MSGMINIGUIERROR(99) in module: h_error.prg
Called from SETPROPERTY(3785) in module: h_controlmisc.prg
Called from (b)WAIT_WINDOW_MY(266) in module: Source\WaitWin.prg
Called from _PROCESSINITPROCEDURE(1672) in module: h_windows.prg
Called from _ACTIVATEWINDOW(1487) in module: h_windows.prg
Called from WAIT_WINDOW_MY(315) in module: Source\WaitWin.prg
Called from WAITWINDOWERROR(157) in module: Source\WaitWin.prg


Вот код программы:
Скрытый текст

Почему ?

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




Пост N: 1483
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 03.04.19 15:00. Заголовок: Andrey пишет: Почем..


Andrey пишет:

 цитата:
Почему ?


SetFocus - это метод, а не свойство

Д.б.


 цитата:
DoMethod( cFrmName, "Message", "Setfocus" )




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




Пост N: 6230
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.04.19 18:34. Заголовок: Блин, точно ! :sm12..


Блин, точно !
Раньше работало, я сейчас синтаксис стал строже...
Спасибо Григорий !

А для Tsbrowse тоже нужно исправлять на метод ?
Раньше писал так - Setproperty( "Form_3Tst", oBrw, "Setfocus" ) и всё работало вроде ...

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




Пост N: 6235
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.04.19 18:28. Заголовок: Всем привет ! Как и..


Всем привет !

Как изменить свойства у кнопке на форме, т.е. нужно поменять иконки на кнопке ?
          cIco1x1 := "iUsb64x1"  ;  cIco1x2 := "iUsb64x2" 
......
@ ... BUTTONEX BUTTON_Copy .... ;
ICON cIco1x1 ... ;
.... FLAT NOXPSTYLE HANDCURSOR NOTABSTOP ;
BACKCOLOR aGrOverB1 GRADIENTFILL aGrFillB1 ;
ON MOUSEHOVER ( This.Fontcolor := GRAY , This.GradientFill := aGrFillB1 , This.Icon := cIco1x2) ;
ON MOUSELEAVE ( This.Fontcolor := BLACK , This.GradientOver := aGrOverB1 , This.Icon := cIco1x1) ;
ACTION ....

Нужно заменить иконки у свойств: ON MOUSEHOVER и ON MOUSELEAVE ?

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




Пост N: 1486
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.04.19 21:11. Заголовок: Andrey пишет: Нужно..


Andrey пишет:

 цитата:
Нужно заменить иконки у свойств: ON MOUSEHOVER и ON MOUSELEAVE


Попробуй

 цитата:

ON MOUSEHOVER ( This.Fontcolor := GRAY , This.GradientFill := aGrFillB1 , This.Picture := cIco1x2) ;
ON MOUSELEAVE ( This.Fontcolor := BLACK , This.GradientOver := aGrOverB1 , This.Picture := cIco1x1) ;



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




Пост N: 6236
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.04.19 21:18. Заголовок: Не понял... Кнопка ..


Не понял...
Кнопка в программе показывается с одними иконками, при наступление нужного события,
нужно на этой же кнопке заменить иконки.
Как к этому свойству обращаться ?
       SetProperty( ThisWindow.Name, "BUTTON_Copy", "????", ??? )   

Или нужно удалять этот объект BUTTON_Copy и строить его заново на форме ?

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




Пост N: 1487
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.04.19 21:27. Заголовок: Andrey пишет: Не по..


Andrey пишет:

 цитата:
Не понял...


Вот рабочий код из примера Basic\ButtonEx
// horizontal buttonex with icon 

@ 135 + 35 + 40, 5 + 82 + 30 BUTTONEX OButton_4 ;
CAPTION "&Login" ;
ICON "res\keys.ico" ;
FLAT WIDTH 80 HEIGHT 30 FONT "MS Sans serif" SIZE 9 ;
FONTCOLOR BLUE ;
BOLD ;
BACKCOLOR WHITE ;
on mousehover this.Picture := 'res\globus.ico';
on mouseleave this.Picture := 'res\keys.ico';

ACTION {|| Tone( 800 ) } TOOLTIP "BUTTONEX 4 with ICON - horizontal"


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




Пост N: 6237
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.04.19 00:28. Заголовок: Мне нужно изменить н..


Мне нужно изменить на форме уже показываемую кнопку.
Сделаем модификацию:

 
aGrFillB1 := { { 0.5, CLR_OK , CLR_WHITE }, { 0.5, CLR_WHITE , CLR_OK } }
aGrOverB1 := { { 0.5, CLR_ORANGE, CLR_YELLOW }, { 0.5, CLR_YELLOW, CLR_ORANGE } }
cIco1x1 := "res\Usb64x1.ico" ; cIco1x2 := "res\Usb64x2.ico"

@ 135 + 35 + 40, 5 + 82 + 30 BUTTONEX OButton_4 ;
CAPTION "&Copy USB" ;
ICON "res\Usb64x1.ico" ;
......
BACKCOLOR aGrOverB1 GRADIENTFILL aGrFillB1 ;
ON MOUSEHOVER ( This.Fontcolor := GRAY , This.GradientFill := aGrFillB1 , This.Icon := cIco1x2) ;
ON MOUSELEAVE ( This.Fontcolor := BLACK , This.GradientOver := aGrOverB1 , This.Icon := cIco1x1) ;
ACTION {|| ChangeButton(ThisWindow.Name, This.Name) }

Function ChangeButton(cForm, cObj)

SetProperty( cForm, cObj, "Caption", "новая иконка" )
SetProperty( cForm, cObj, "Icon", "res\new1.ico" )
SetProperty( cForm, cObj, "????", ??? ) // для on mousehover
SetProperty( cForm, cObj, "????", ??? ) // для on mouseleave

Return Nil

И как сохранить This.Fontcolor, This.GradientFill, This.GradientOver установленные первоначально на кнопке ?

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



Пост N: 2331
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.04.19 09:20. Заголовок: Andrey пишет Мне нуж..


Andrey пишет
 цитата:
Мне нужно изменить на форме уже показываемую кнопку


Как то так (твой пример MsgEdit.prg)
 
LOCAL cI1, cI2
...
nX := nWidth - nWBtn*3 - nG*3
@ nY, nX BUTTONEX Btn_Prn WIDTH nWBtn HEIGHT nHBtn CAPTION aBtnCapt[1] ICON aBtnIco[1,1] ;
NOHOTLIGHT NOXPSTYLE HANDCURSOR FONT cBtnFN SIZE nBtnFS BOLD ;
FONTCOLOR aBtnFClr BACKCOLOR aBtnBClr[1] ;
ON MOUSEHOVER ( This.Backcolor := BLACK , This.Fontcolor := YELLOW, This.Icon := cI1 ) ;
ON MOUSELEAVE ( This.Backcolor := aBtnBClr[1], This.Fontcolor := WHITE , This.Icon := cI2 ) ;
ACTION {|| MsgDebug("Подключить самостоятельно из MiniGUI\SAMPLES\Basic\MiniPrint_3"),;
This.Cargo[1] := 2, ;
cI1 := iif( This.Cargo[1] == 1, This.Cargo[2], This.Cargo[4] ), ;
cI2 := iif( This.Cargo[1] == 1, This.Cargo[3], This.Cargo[5] ), ;
this.Lbl0.Setfocus } ;
ON INIT {|| This.Cargo := Array(5), This.Cargo[1] := 1, ;
This.Cargo[2] := aBtnIco[1,2], ;
This.Cargo[3] := aBtnIco[1,1], ;
This.Cargo[4] := aBtnIco[2,2], ;
This.Cargo[5] := aBtnIco[2,1], ;
cI1 := This.Cargo[2], ;
cI2 := This.Cargo[3] ;
}

Аналогично можно поступить и с др. свойствами кнопки, увеличив кол-во элементов в This.Cargo массиве

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



Пост N: 2332
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.04.19 09:53. Заголовок: PS Точнее (без перем..


PS
Точнее (без переменных LOCAL) можно так
 
@ nY, nX BUTTONEX Btn_Prn WIDTH nWBtn HEIGHT nHBtn CAPTION aBtnCapt[1] ICON aBtnIco[1,1] ;
NOHOTLIGHT NOXPSTYLE HANDCURSOR FONT cBtnFN SIZE nBtnFS BOLD ;
FONTCOLOR aBtnFClr BACKCOLOR aBtnBClr[1] ;
ON MOUSEHOVER ( This.Backcolor := BLACK , This.Fontcolor := YELLOW, This.Icon := This.Cargo[2] ) ;
ON MOUSELEAVE ( This.Backcolor := aBtnBClr[1], This.Fontcolor := WHITE , This.Icon := This.Cargo[3] ) ;
ACTION {|| MsgDebug("Подключить самостоятельно из MiniGUI\SAMPLES\Basic\MiniPrint_3"),;
This.Cargo[1] := iif( This.Cargo[1] == 1, 2, 1 ), ;
This.Cargo[2] := iif( This.Cargo[1] == 1, This.Cargo[4], This.Cargo[6] ), ;
This.Cargo[3] := iif( This.Cargo[1] == 1, This.Cargo[5], This.Cargo[7] ), ;
this.Lbl0.Setfocus } ;
ON INIT {|| This.Cargo := Array(7), This.Cargo[1] := 1, ;
This.Cargo[2] := aBtnIco[1,2], ;
This.Cargo[3] := aBtnIco[1,1], ;
This.Cargo[4] := aBtnIco[1,2], ;
This.Cargo[5] := aBtnIco[1,1], ;
This.Cargo[6] := aBtnIco[2,2], ;
This.Cargo[7] := aBtnIco[2,1] ;
}

После ACTION смена иконок на кнопке

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




Пост N: 6238
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.04.19 11:10. Заголовок: SergKis пишет: Точн..


SergKis пишет:

 цитата:
Точнее (без переменных LOCAL) можно так


Да уж ... Ни за что бы не догадался...
Заработало ! Спасибо БОЛЬШОЕ !
Только вот не совсем понимаю как сделать смену иконки в другой функции ?
Вот так у меня ранее было:
 
FUNCTION MyInitFormMain()

// Отключить копирование на флешку
IF M->lPubFlaskaNot
M->lFlash := .F.
Form_Main.Button_Copy.Caption := "Создать архив и" + CRLF + "копировать на ДИСК"
Form_Main.Button_Copy.Icon := "iHDD64"
ELSE
M->lFlash := .T.
Form_Main.Button_Copy.Caption := "Создать архив и" + CRLF + "копировать на флешку"
Form_Main.Button_Copy.Icon := "iCopyUsb"
ENDIF

RETURN NIL


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



Пост N: 2333
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.04.19 11:44. Заголовок: Andrey Похоже у теб..


Andrey
Похоже у тебя hover-ов нет, если это на action Button_Copy, то замени Form_Main.Button_copy. на This.
Если есть, то положи иконки в Cargo, как в примере (по 2е пары) и добавь в action
This.Caption := iif( This.Cargo[1] == 1, "Создать ... на ДИСК", "Создать ... на флешку" )
Но телепатов нет додумывать

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




Пост N: 6240
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.04.19 11:51. Заголовок: SergKis пишет: Похо..


SergKis пишет:

 цитата:
Похоже у тебя hover-ов нет,


Есть ховеры, просто я код переделываю на новый с ховерами.
А функция MyInitFormMain() после инициализации формы отрабатывает.
Вот и не знаю как сделать:
    IF M->lPubFlaskaNot  
// показ иконки "iHDD64x1" и "iHDD64x2"
ELSE
// показ иконки "iCopyUsbx1" и "iCopyUsbx2"
ENDIF

Просто после изменения (по кнопке Настройка программы), мне нужно сменить показ иконок,
т.е. я вызываю эту функцию - MyInitFormMain().
на кнопке Button_Copy я сделаю:
          ON INIT {|| This.Cargo := Array(7), This.Cargo[1] := M->lPubFlaskaNot, ;  
This.Cargo[2] := aBtnIco[1,2], ;
This.Cargo[3] := aBtnIco[1,1], ;
This.Cargo[4] := aBtnIco[1,2], ;
This.Cargo[5] := aBtnIco[1,1], ;
This.Cargo[6] := aBtnIco[2,2], ;
This.Cargo[7] := aBtnIco[2,1] ;
}

А как сменить иконки ?

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



Пост N: 2334
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.04.19 12:25. Заголовок: Andrey MsgEdit.prg ..


Andrey
MsgEdit.prg - твой пример и что ты засовывал в массив aBtnIco по элеметам, тебе лучше знать.
Посмотри, что там и сделай по аналогии для выше указанных парных иконок

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



Пост N: 2336
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.04.19 12:35. Заголовок: Andrey пишет Просто ..


Andrey пишет
 цитата:
Просто после изменения (по кнопке Настройка программы), мне нужно сменить показ иконок


Делай сразу на кнопке "Copy", сначала к примеру Copy to disk, кликнули по ней -> Copy to USB
зачем лишняя кнопка "Настройка"
Добавь только TOOLTIP "Уточните куда COPY" или более развернуто

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




Пост N: 6242
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.04.19 12:43. Заголовок: Как получить/изменит..


Как получить/изменить This.Cargo из другой функции:
  This.Cargo[2] := iif( M->lPubFlaskaNot, This.Cargo[4], This.Cargo[6] ), ;  
This.Cargo[3] := iif( M->lPubFlaskaNot, This.Cargo[5], This.Cargo[7] ), ;

Т.е. как можно сделать ?
    SetProperty( cForm, "Button_Copy", "Cargo", ??? )  // для on mousehover  
SetProperty( cForm, "Button_Copy", "Cargo", ??? ) // для on mouseleave

Не знаю как правильно сделать:
    SetProperty( cForm, "Button_Copy", "Cargo", iif( M->lPubFlaskaNot, Button_Copy.Cargo[4], Button_Copy.Cargo[6] ) )   
SetProperty( cForm, "Button_Copy", "Cargo", iif( M->lPubFlaskaNot, Button_Copy.Cargo[5], Button_Copy.Cargo[7] ) )


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




Пост N: 6243
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.04.19 12:45. Заголовок: SergKis пишет: Дела..


SergKis пишет:

 цитата:
Делай сразу на кнопке "Copy", сначала к примеру Copy to disk, кликнули по ней -> Copy to USB
зачем лишняя кнопка "Настройка"


Да там несколько настроек для проги.
А отображение иконки связано со сменой переменной M->lPubFlaskaNot.
Дополнительный запрос юзеру совсем не нужен.

Давай сделаю тест, чтобы понятней было ?

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



Пост N: 2337
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.04.19 12:52. Заголовок: Andrey Ты не первый..


Andrey
Ты не первый год замужем на MiniGui, основы запомни или запиши и держи под рукой (в help смотри почаще по командам).
Забыл, посмотри i_this.ch, i_window.ch
Трудно, поставь получение ppo файла и посмотри как там меняется псевдо ООП на функции
Получается ты просто копипастишь все подряд ничего не понимая
Разберись разок до конца

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




Пост N: 6244
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.04.19 14:49. Заголовок: Спасибо ОГРОМНОЕ ! ..


Спасибо ОГРОМНОЕ !
Теперь понял как делать.
Для тех кому интересно, привожу код:
Скрытый текст


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