Автор | Сообщение |
|
| moderator
|
Пост N: 976
Зарегистрирован: 06.07.06
|
|
Отправлено: 25.08.16 16:39. Заголовок: Документация по HwGUI
Наконец-то созрел для того, чтобы обновить документацию по HwGUI и решил начать с русской версии, которой до сих пор не было. Вот первая часть: http://www.kresin.ru/hwgdoc.html. Обращаю ваше внимание, что там, как и на многих других страницах сайта есть message board - можно писать комментарии, ругать за недостатки, сообщать о том, чего недостает, и т.п.
|
|
|
Новых ответов нет
, стр:
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" смотреть
|
|
|
|
| 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, потому что с ним вижу все, что делаю: что запускается, какие библиотеки используются, какие опции компилятора/линкера, ...
|
|
|
|
| постоянный участник
|
Пост N: 237
Зарегистрирован: 29.05.10
|
|
Отправлено: 06.09.16 10:44. Заголовок: alkresin пишет: Пр..
alkresin пишет: цитата: | Просто bcc32.cfg и TLink32.cfg действительно должны |
| или iLink32.cfg :)
|
|
|
|
| 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'ы, так что эта функция здесь для совместимости. Что насчет добавления нового метода или переменной в класс, я делаю это с большой осторожностью и неохотой, только когда это действительно очень полезно - иначе через какое-то время класс превратится в монстра.
|
|
|
|
| moderator
|
Пост N: 1012
Зарегистрирован: 06.07.06
|
|
Отправлено: 06.09.16 11:17. Заголовок: SergKis пишет: Поня..
SergKis пишет: цитата: | Понял, что меня все время смущало в работе с цветом HEdit, переменные ::tColor и ::bColor все время меняют свои значения, т.е. ведут себя как рабочие переменные (::aColorOld), т.е. в классе нет переменных источников для цвета. |
| :tColor и :bColor определяют актуальные значения цвета виджета, точно так же, как, например, :nWidth и :nHeight - актуальные значения его размера, и :SetColor() меняет эти актуальные значения, так же, как и :Move() меняет актуальные значения размера. Если просто принять эту логику, то ничего не должно смущать. Реализовать все это можно множеством разных способов, но нужны действительно серьезные основания, чтобы менять существующую реализацию.
|
|
|
|
| постоянный участник
|
Пост 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, ..., ...) }
|
|
|
|
| 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() и добавить туда нужный вам метод, ООП для того и существует. И, конечно, насчет всей проги вы загнули )
|
|
|
|
| постоянный участник
|
Пост N: 1223
Зарегистрирован: 17.02.12
|
|
Отправлено: 06.09.16 15:33. Заголовок: alkresin пишет: надо..
alkresin пишет: цитата: | надо, можно ведь сделать субкласс от Hedit() и добавить туда нужный вам метод, ООП для того и существует. |
| Этим всю весну и часть лета мы с товарищем и занимались, при этом сыпятся все ch команды (получается своя версия, с которой трудно слезть при изм. версий hwg). В основном мой товарищ, двигал (MDI, HBrowseEx свой, а до HEdit даже не дошли) по семейным обстоятельствам, меня хватило в основном на примеры. Сечас нас съела, текучка и срочные изменения законодательсва. В итоге решили, что переводим на 3.2 свою старую (уникодную версию Минигуи) и остаемся на ней, а hwg второй раз (при всех плюсах) откладывается в ящик. К нашему сожалению
|
|
|
|
| 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" - тогда даже переименовывать команду не надо, возьмется ваша.
|
|
|
|
| постоянный участник
|
Пост 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 не один, ... вернулись к "танцу с бубном" по кругу
|
|
|
|
| moderator
|
Пост N: 1016
Зарегистрирован: 06.07.06
|
|
Отправлено: 06.09.16 16:16. Заголовок: Что-то вы усложняете..
Что-то вы усложняете. Про WHEN вообще речи нет, а в VALID - да, надо вставить в кодоблок ваш алгоритм изменения цвета текста в зависимости от введенного значения. Куда-то же его все-равно придется вставить...
|
|
|
|
|
| постоянный участник
|
Пост 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
|
|
|
|
| moderator
|
Пост N: 1017
Зарегистрирован: 06.07.06
|
|
Отправлено: 07.09.16 10:59. Заголовок: В русскую документац..
В русскую документацию добавлен раздел про классы HwGUI: http://www.kresin.ru/hwgdoc_classes.html. Пока почти без пояснений и комментариев - будут добавляться по мере возможности, зато список классов, их переменных и методов полный и актуальный.
|
|
|
|
| moderator
|
Пост N: 1020
Зарегистрирован: 06.07.06
|
|
Отправлено: 16.09.16 17:21. Заголовок: Добавлен раздел про ..
|
|
|
Новых ответов нет
, стр:
1
2
3
4
5
All
[см. все]
|
|