On-line: i3t4j6, Pasha, гостей 1. Всего: 3 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 7419
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.06.23 12:50. Заголовок: Как заменить иконку в MOUSEHOVER и MOUSELEAVE ?


Правлю старые исходники, переделывать крупно не хочется.
Нужно заменить две иконки - {"iLogErr64x1","iLogErr64x2"} на { "iLogOk64x1", "iLogOk64x2" }
Как это сделать ?
      @ ,  BUTTONEX BUTTON_Log ...   ICON "iLogErr64x1"  ; 
....
ON MOUSEHOVER ( SetProperty(ThisWindow.Name, This.Name, "ICON", "iLogErr64x2" ) ,;
SetProperty(ThisWindow.Name, This.Name, "fontcolor", aFBtnClr2 ) ) ;
ON MOUSELEAVE ( SetProperty(ThisWindow.Name, This.Name, "ICON", "iLogErr64x1" ) ,;
SetProperty(ThisWindow.Name, This.Name, "fontcolor", aFBtnClr1 ) ) ;

Если делаю так
SetProperty( cForm, "oBut_Log", "Icon", "iLogOk64x1")

то иконка меняется один раз.
Как заменить иконку в MOUSEHOVER и MOUSELEAVE ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 12 [только новые]


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




Пост N: 4307
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.06.23 15:50. Заголовок: Andrey птшет Как зам..


Andrey птшет
 цитата:
Как заменить иконку в MOUSEHOVER и MOUSELEAVE ?


 
@ , BUTTONEX BUTTON_Log ... ICON "iLogErr64x1" ;
....
ON MOUSEHOVER {|o| o := This.Cargo, This.Icon := iif( o:nMode == 1, o:a1[1], o:a1[2] ), ;
This.FontColor := aFBtnClr2 ) } ;
ON MOUSELEAVE {|o| o:= This.Cargo, This.Icon := iif( o:nMode == 1, o:a2[1], o:a2[2] ) ,;
This.FontColor := aFBtnClr1 ) } ;
This.BUTTON_Log.Cargo := oHmgData()
This.BUTTON_Log.Cargo:a1 := {"iLogErr64x1","iLogErr64x2"}
This.BUTTON_Log.Cargo:a2 := {"iLogOk64x1", "iLogOk64x2"}
This.BUTTON_Log.Cargo:nMode := 1


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




Пост N: 7420
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.06.23 16:47. Заголовок: Это классный вариант..


Это классный вариант ! Спасибо !
А к свойствам MOUSEHOVER и MOUSELEAVE доступ через SetProperty( ) есть ?
Или нужно убить всю кнопку и заново её создать на форме ?

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




Пост N: 4308
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.06.23 17:19. Заголовок: Andrey пишет А к сво..


Andrey пишет
 цитата:
А к свойствам MOUSEHOVER и MOUSELEAVE доступ через SetProperty( ) есть ?


Не понял твоего вопроса , команды This... - это команды препроцессора (короче писать), внутри их Set\GetProperty(...)
Смотри i_this.ch или ф-ии Set\GetProperty(...) работу с параметрами

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




Пост N: 7421
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.06.23 17:29. Заголовок: SergKis пишет: Не п..


SergKis пишет:

 цитата:
Не понял твоего вопроса


Ну типа такого:
 
STATIC bStat1, bStat2
bStat2 := {|| SetProperty(ThisWindow.Name, This.Name, "ICON", "iLogOk64x2"), SetProperty(ThisWindow.Name, This.Name, "fontcolor", aFBtnClr2) }
bStat1 := {|| SetProperty(ThisWindow.Name, This.Name, "ICON", "iLogOk64x1"), SetProperty(ThisWindow.Name, This.Name, "fontcolor", aFBtnClr1) }
SetProperty( cForm, "oBut_Log", "MOUSEHOVER", bStat2)
SetProperty( cForm, "oBut_Log", "MOUSELEAVE", bStat1)
SetProperty( cForm, "oBut_Log", "Icon", "iLogOk64x1")

Или ещё как то по другому ?

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




Пост N: 4309
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.06.23 17:35. Заголовок: Andrey Смотри i_but..


Andrey
Смотри i_buton.ch DEFINE BUTTONEX ...
Базовые названия ON GOTFOCUS, ON LOSTFOCUS, а ON MOUSEHOVER, ON MOUSELEAVE - это альтернативные названия
В Set\GetProperty() используются базовые названия , так же посмотри на этот счет (пост 4304 и далее) тема "Новая версия ..."
PS
Не стоит так писать, как ты делаешь, получается из серии "масляная каша, каша масляная", т.е. писать в Set\GetProperty() This... Можно сразу This.Icon := ... - и там и там исп. среда This. Ты находишься в событии кнопки, значит стоит This среда для кнопки

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




Пост N: 7422
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.06.23 17:55. Заголовок: Вот так можно ? :sm..


Вот так можно ?
STATIC bStat1, bStat2  
bStat2 := {|| This.Icon := "iLogOk64x2", This.Fontcolor := aFBtnClr2 }
bStat1 := {|| This.Icon := "iLogOk64x1", This.Fontcolor := aFBtnClr1 }
SetProperty( cForm, "oBut_Log", "MOUSEHOVER", bStat2)
SetProperty( cForm, "oBut_Log", "MOUSELEAVE", bStat1)
SetProperty( cForm, "oBut_Log", "Icon", "iLogOk64x1")


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




Пост N: 4310
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.06.23 17:59. Заголовок: Andrey Две первых S..


Andrey
Две первых SetProperty() нельзя, прочитай внимательно, что я написал выше про названия
PS
Добавь в hbp файл параметр -po=... для получения файла после препроцессора (сделай маленький prg для теста) с командами
bStat2 := {|| SetProperty(ThisWindow.Name, This.Name, "ICON", "iLogOk64x2"), SetProperty(ThisWindow.Name, This.Name, "fontcolor", aFBtnClr2) }
и
bStat2 := {|| This.Icon := "iLogOk64x2", This.Fontcolor := aFBtnClr2 }
посмотри, что получишь, возможно удивишься

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




Пост N: 7423
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.06.23 18:04. Заголовок: SetProperty( cForm..


  SetProperty( cForm, "oBut_Log", "gotfocus", bStat2)   
SetProperty( cForm, "oBut_Log", "lostfocus", bStat1)

Опять поторопился... А так ?

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




Пост N: 4311
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.06.23 18:07. Заголовок: Andrey Тему и Пост ..


Andrey
Тему и Пост указанный посмотри, там ключевые слова прописаны списком

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




Пост N: 7424
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.06.23 18:56. Заголовок: Да, просмотрел... :..


Да, просмотрел...
      This.("oBut_Log").OnGotFocus  := bStat2 
This.("oBut_Log").OnLostFocus := bStat1

Синтаксис удобней писать ! Спасибо !

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




Пост N: 4312
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.06.23 19:05. Заголовок: Andrey пишет T..


Andrey пишет
 цитата:
This.("oBut_Log").OnGotFocus := bStat2
This.("oBut_Log").OnLostFocus := bStat1
Синтаксис удобней писать !


Опять поторопился. Удобней
This.oBut_Log.OnGotFocus := bStat2
This.oBut_Log.OnLostFocus := bStat1
или
cObj := "oBut_Log"
DEFINE BUTTONEX &cObj ...
...
This.(cObj).OnGotFocus := bStat2
This.(cObj).OnLostFocus := bStat1

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




Пост N: 7425
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.06.23 19:34. Заголовок: SergKis пишет: Опят..


SergKis пишет:

 цитата:
Опять поторопился. Удобней
This.oBut_Log.OnGotFocus := bStat2
This.oBut_Log.OnLostFocus := bStat1


Да это уже мелочи...
Я понял что там лучше ставить переменную, просто здесь это в качестве простоты сделал.
Спасибо БОЛЬШОЕ !

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 77
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет