On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
moderator


Пост N: 976
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 25.08.16 16:39. Заголовок: Документация по HwGUI


Наконец-то созрел для того, чтобы обновить документацию по HwGUI и решил начать с русской версии, которой до сих пор не было.
Вот первая часть: http://www.kresin.ru/hwgdoc.html.
Обращаю ваше внимание, что там, как и на многих других страницах сайта есть message board - можно писать комментарии, ругать за недостатки, сообщать о том, чего недостает, и т.п.

Спасибо: 1 
ПрофильЦитата Ответить
Ответов - 94 , стр: 1 2 3 4 5 All [только новые]





Пост N: 1221
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.09.16 08:35. Заголовок: alkresin пишет: 3.5...


alkresin пишет:
 цитата:
3.5. Обзор виджетов. ... Далее идут несколько виджетов, о которых мне почти нечего сказать. ... . Pager, Rebar, Animation - не очень представляю, где и зачем я мог бы их использовать...


Пример для Rebar http://my-files.ru/ubrt5z
В меню "Dialog" смотреть

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 1010
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 06.09.16 10:14. Заголовок: SergKis пишет: Ясно..


SergKis пишет:

 цитата:
Ясно же, надо или batы доводить (надеюсь посылать на инструкцию по написанию их тут не будем) или перходить на hbmk2, т.е. ткнули - получили положительный результат и полжительные эмоции.


Да кто ж мешает вам Hbmk использовать ? В новой локументации про это написано: 2.4. Сборка приложений с HwGUI

В bat файлах все нормально, надо только с hwg_qhtm.lib поправить - правильно Петр написал. Просто bcc32.cfg и TLink32.cfg действительно должны присутствовать, это делается всегда при установке/настройке Borland C. Я предпочитаю использовать bat, потому что с ним вижу все, что делаю: что запускается, какие библиотеки используются, какие опции компилятора/линкера, ...

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


Пост N: 237
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 06.09.16 10:44. Заголовок: alkresin пишет: Пр..



alkresin пишет:

 цитата:
Просто bcc32.cfg и TLink32.cfg действительно должны



или iLink32.cfg :)

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 1011
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 06.09.16 10:47. Заголовок: SergKis пишет: Этот..


SergKis пишет:

 цитата:
Этот блок кода надо выполнять всегда и в фокусе и не в фокусе. Пример: от выражения (см. выше для числа) уст. FontColor, одинаковый и для в фокусе и для не в фокусе, а BackColor для них разный


Не надо примешивать сюда изменение цветов в зависимости от содержимого, это другая песня: все, о чем здесь шла речь - это ColorInFocus, цвет GET'a, находящегося в фокусе.

 цитата:
и еще это труднозапоминаемое hwg_Isptreq


hwg_IsPtrEq() - Is Pointer Equal - так легче запомнить. Можно было бы использовать просто ( :;handle == hwg_GetFocus() ), но, насколько я помню, в xHarbour нельзя сравнивать POINTER'ы, так что эта функция здесь для совместимости. Что насчет добавления нового метода или переменной в класс, я делаю это с большой осторожностью и неохотой, только когда это действительно очень полезно - иначе через какое-то время класс превратится в монстра.

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 1012
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 06.09.16 11:17. Заголовок: SergKis пишет: Поня..


SergKis пишет:

 цитата:
Понял, что меня все время смущало в работе с цветом HEdit, переменные ::tColor и ::bColor все время меняют свои значения, т.е. ведут себя как рабочие переменные (::aColorOld), т.е. в классе нет переменных источников для цвета.


:tColor и :bColor определяют актуальные значения цвета виджета, точно так же, как, например, :nWidth и :nHeight - актуальные значения его размера, и :SetColor() меняет эти актуальные значения, так же, как и :Move() меняет актуальные значения размера. Если просто принять эту логику, то ничего не должно смущать.
Реализовать все это можно множеством разных способов, но нужны действительно серьезные основания, чтобы менять существующую реализацию.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 1222
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.09.16 12:50. Заголовок: alkresin пишет: Реал..


alkresin пишет:
 цитата:
Реализовать все это можно множеством разных способов, но нужны действительно серьезные основания, чтобы менять существующую реализацию


Я уже говорил, что принимать\менять - это вашо право, я излагаю (понятным мне языком чего я не понимаю в hwg)

 цитата:
все, о чем здесь шла речь - это ColorInFocus, цвет GET'a, находящегося в фокусе.


Возможно я беру шире, но пока не понимаю, как в GET (в фокусе\нет) реализовать чтобы циферки < 0 были красненькими, > 0 и <= 1000 синенькими и т.д., а фон для фокуса желтенький, не фокуса беленький.

 цитата:
hwg_IsPtrEq() - Is Pointer Equal - так легче запомнить


Я не понимаю, чем запись (это ж по всей проге такие конструкции писать) {|o| iif(hwg_Isptreq( o:handle, hwg_Getfocus() ), ..., ... ) } лучше к примеру {|o| iif(o:lFocused, ..., ...) }


Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 1013
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 06.09.16 14:15. Заголовок: SergKis пишет: Возм..


SergKis пишет:

 цитата:
Возможно я беру шире, но пока не понимаю, как в GET (в фокусе\нет) реализовать чтобы циферки < 0 были красненькими, > 0 и <= 1000 синенькими и т.д., а фон для фокуса желтенький, не фокуса беленький.


Примерно так:
INIT DIALOG oDlg ... 
oDlg:bColorinFocus := желтенький
...
@ ... GET ... VALID {|nVal,o|SetGetColor(nVal,o)}
...
Function SetGetColor( nVal, oGet )
Local tColor := Iif(nVal... )
oGet:SetColor( tColor,, .T. )
oGet:Refresh() // чтобы можно было использовать SetGetColor() вместо oGet:Refresh()
RETURN .T.



 цитата:
Я не понимаю, чем запись (это ж по всей проге такие конструкции писать) {|o| iif(hwg_Isptreq( o:handle, hwg_Getfocus() ), ..., ... ) } лучше к примеру {|o| iif(o:lFocused, ..., ...) }



Не лучше. Но если для каждого возможного улучшения создавать новые переменные и методы класса, ... - я об этом уже писал. К тому же, если вы не пишете для xHarbour, можете использовать iif( o:handle == hwg_Getfocus(), ... ). Ну и в крайнем случае, если реально очень надо, можно ведь сделать субкласс от Hedit() и добавить туда нужный вам метод, ООП для того и существует. И, конечно, насчет всей проги вы загнули )

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 1223
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.09.16 15:33. Заголовок: alkresin пишет: надо..


alkresin пишет:
 цитата:
надо, можно ведь сделать субкласс от Hedit() и добавить туда нужный вам метод, ООП для того и существует.


Этим всю весну и часть лета мы с товарищем и занимались, при этом сыпятся все ch команды (получается своя версия, с которой трудно слезть при изм. версий hwg). В основном мой товарищ, двигал (MDI, HBrowseEx свой, а до HEdit даже не дошли)
по семейным обстоятельствам, меня хватило в основном на примеры. Сечас нас съела, текучка и срочные изменения законодательсва.
В итоге решили, что переводим на 3.2 свою старую (уникодную версию Минигуи) и остаемся на ней, а hwg второй раз (при всех плюсах) откладывается в ящик. К нашему сожалению

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 1014
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 06.09.16 15:53. Заголовок: SergKis пишет: Этим..


SergKis пишет:

 цитата:
Этим всю весну и часть лета мы с товарищем и занимались, при этом сыпятся все ch команды (получается своя версия, с которой трудно слезть при изм. версий hwg).


Это вы долго что-то. Команды, конечно, добавляют неудобства в использование собственных субклассов, но изменяются они очень редко и проблем с этим быть не должно, тем более, что вам ведь не надо заменять весь guilib.ch. Достаточно просто создать свой заголовочный файл mycommands.ch с парой измененных команд (HEdit():New(... -> HEditEx():New(... ) и вставить #include "mycommands.ch" ПОСЛЕ #include "hwgui.ch" - тогда даже переименовывать команду не надо, возьмется ваша.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 1224
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.09.16 16:00. Заголовок: alkresin пишет: Прим..


alkresin пишет:
 цитата:
Примерно так:


Т.е. во WHEN ставим цвет для значения, поступающего в get, учитывая возврат .T.\.F., в VALID ставим цвет для значения, завершающего get,
определяем фокус
If hwg_Isptreq( oGet:handle, hwg_Getfocus() )
Else
EndIf
Если есть реальный алгоритм для значения по VALID его встраиваем, разделяя на ошибку\нет,
встраиваем действия after Get (с учетом ошибки\нет) ...
а Get не один, ...
вернулись к "танцу с бубном" по кругу


Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 1016
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 06.09.16 16:16. Заголовок: Что-то вы усложняете..


Что-то вы усложняете. Про WHEN вообще речи нет, а в VALID - да, надо вставить в кодоблок ваш алгоритм изменения цвета текста в зависимости от введенного значения. Куда-то же его все-равно придется вставить...

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 1225
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.09.16 16:25. Заголовок: alkresin пишет: Это ..


alkresin пишет:
 цитата:
Это вы долго что-то.


1. Время на это есть только вечером и частично в выходные.
2. Mdi практически с 0 в реальной структуре mdi
3. Меню тоже надо было под себя
4. За рыбу взят HBrowseEx, но все практически с 0, на отладке остановились
5. Старались не трогать базовые классы
6. ch команды надо делать по минигуи (тексты переносить надо)
вот и набралось, что не подняли. Пример mdi и только menu http://my-files.ru/23znwg




Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 1017
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 07.09.16 10:59. Заголовок: В русскую документац..


В русскую документацию добавлен раздел про классы HwGUI: http://www.kresin.ru/hwgdoc_classes.html.
Пока почти без пояснений и комментариев - будут добавляться по мере возможности, зато список классов, их переменных и методов полный и актуальный.

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 1020
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 16.09.16 17:21. Заголовок: Добавлен раздел про ..


Добавлен раздел про функции HwGUI: http://www.kresin.ru/hwgdoc_functions.html.
Комментариев на русском пока нет, зато список - полный.

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

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