Форум » GUI » hwgui » Ответить

hwgui

Pasha: Что-то я совсем запутался Сделал svn commit по адресу: https://hwgui.svn.sourceforge.net/svnroot/hwgui Последний коммит был 2012-09-25 19:30 UTC-0300 Luis Fernando Basso <lfbasso at via-rs.net> На сайте проекта и в майл-листе вижу, что коммиты были и после этой даты. Но что-то не найду новый адрес А ветвь, куда я сбросил изменения, заморожена и не развивается ?

Ответов - 300, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All

PSP: AlexMyr пишет: По разному обрабатывается color_3dlight, в текущей версии (черный фон) и 216с (серый фон) А версия Харбор одинаковая?

AlexMyr: PSP пишет: А версия Харбор одинаковая? Да, Version: Harbour 3.2.0dev (r1305100828) Compiler: MinGW GNU C 4.7.2 (32-bit) Platform: Windows Vista 6.0.6002 Service Pack 2

Vlad04: AlexMyr Сделал изменения в huchet , могу выслать изменения если надо. Надо . email: orsv04 sobaka mail.ru А вообще, идея HwGUI пока непонятна. Смотрим вышеизложенный пример. Переменная локальная local oMainWnd , инициализирует ГЛАВНОЕ окно. Видимость её в пределах функции!


AlexMyr: Vlad04 пишет: Надо . email: Выслал Vlad04 пишет: А вообще, идея HwGUI пока непонятна. Идея иметь Gui. , а по поводу Vlad04 пишет: Смотрим вышеизложенный пример. Переменная локальная local oMainWnd , инициализирует ГЛАВНОЕ окно. Видимость её в пределах функции! и что настораживает?

Vlad04: Идея иметь Gui Это цель. и что настораживает? На форме , к примеру есть контролы. Генерируем событие какого нибудь контрола, меняющие свойства ГЛавного ОКНА или другого контрола. Как в данном случае сделать ? Я уже писал, выражение - oMainWnd:title:='New' не прокатывает. В других системах с учетом специфики их грамматики( MiniGUI, Делфи) все нормально

AlexMyr: Vlad04 пишет: Я уже писал, выражение - oMainWnd:title:='New' не прокатывает. В других системах с учетом специфики их грамматики( MiniGUI, Делфи) все нормально Для hwgui делаем так #include "windows.ch" #include "guilib.ch" func main() local oMainWnd INIT WINDOW oMainWnd MAIN TITLE "color3dlight" color COLOR_3DLIGHT; AT 0,0 SIZE 800,400 on init {|o|hwg_SetWindowText(o:handle,o:title+=", "+dtos(date()))} oMainWnd:Activate() return nil

alkresin: AlexMyr пишет: По разному обрабатывается color_3dlight, в текущей версии (черный фон) и 216с (серый фон) Изначально цвет, указываемый после COLOR, обозначал системный цвет Windows, все эти COLOR_3DLIGHT и др. - из Windows API. В текущей версии, действительно, как я вижу, это дело изменено, константа типа COLOR_3DLIGHT не имеет значения, ее код ( 22 ) интерпретируется как сконвертированное из RGB long int код цвета, которым заполняется окно при обработке события WM_PAINT.

alkresin: Vlad04 пишет: Переменная локальная local oMainWnd , инициализирует ГЛАВНОЕ окно. Видимость её в пределах функции! Объект, указывающий на главное окно, всегда можно получить при помощи HWindow():GetMain()

alkresin: Vlad04 пишет: А вообще, идея HwGUI пока непонятна Хороший вопрос :). Идея, замысел HwGUI - небольшая, компактная, быстрая, легко расширяемая GUI библиотека. Ее инструментарий должен быть минимален, но достаточен для реализации любых GUI интерфейсов. Необходимый минимум переменных и методов классов - чем их меньше, тем быстрее работает программа - не забывайте, что это не C, здесь при обращении к любой переменной (или методу) объекта происходит поиск этой переменной. Да, этот поиск реализован эффективно, это не перебор элементов массива, сопровождаемый сравнением строковых имен, но, тем не менее, чем меньше данных у объекта, тем быстрее происходит обращение к ним. Ну и, чем меньше кода, тем легче с ним разбираться ( при нормальной структурированности ). Есть желание/необходимость расширить функциональность какого-либо класса - лучше всего для этого создать класс - наследник, и там уже реализовать все, что душе угодно; в некоторых случаях достаточно использовать кодоблоки - элементы существующего класса - :bPaint для отрисовки окна, :bOther - для обработки сообщений, не обрабатываемых этим классом и др.

Vlad04: Идея понятна, реализация нет :bPaint для отрисовки окна, :bOther - для обработки сообщений, не обрабатываемых этим классом и др Примеры нужны. Попробовал "как обычно" - не получаются и элементарные действия. У меня сложные Get формы редактирования browse. С проверкой условий ДО, ПОСЛЕ, передачей фокуса , изменением шаблона редактирования Edit одних полей по условиям других. Картотека, словом .

AlexMyr: Vlad04 пишет: Примеры нужны. Посмотрите примеры из hwgui/samples/get, да и вообще все примеры в hwgui/samples

alkresin: Vlad04 пишет: У меня сложные Get формы редактирования browse. С проверкой условий ДО, ПОСЛЕ, передачей фокуса , изменением шаблона редактирования Edit одних полей по условиям других. Условия ДО, ПОСЛЕ реализованы в hbrowse - у hcolumn есть соответствующие кодоблоки :bWhen, bValid. Кроме того, вы можете изменить стандартный редактор ячейки ( метод :Edit() ), установив кодоблок oBrowse:bEnter, пример реализации посмотрите в hwgui/utils/dbc/dbchw.prg - там :bEnter указывает на функцию EdRec(), реализующую свой редактор ячейки, там как раз и "изменение шаблона редактирования Edit одних полей по условиям других" есть.

alkresin: Обновил Huchet. Исходники программы - мои рабочие на сегодняшний день, xml файлы примеров приведены в соответствие с HwGUI 2.16c ( изменены названия функций ).

AlexMyr: alkresin пишет: Обновил Huchet. Скачал, собрал - все нормально. Запускаю, вхожу в меню модуль\банк и получаю Error DBFNTX/1201 Файл не индексирован Called from ->DBSEEK(0) Called from general.prg->(b)READTBINFO(459) Called from source\hbrowse.prg->FLDSTR(1904) Called from source\hbrowse.prg->HBROWSE:LINEOUT(1048) Called from source\hbrowse.prg->HBROWSE:PAINT(760) Called from source\hbrowse.prg->HBROWSE:ONEVENT(300) Called from ->HWG_REDRAWWINDOW(0) Called from source\hbrowse.prg->HBROWSE:REFRESH(1870) Called from general.prg->HSUBSYS:RUN(1226) Called from general.prg->(b)SETWINDOW(157) Called from source\hwindow.prg->ONCOMMAND(508) Called from source\hwindow.prg->(b)HMAINWINDOW(227) Called from source\hwindow.prg->HMAINWINDOW:ONEVENT(303) Called from ->HWG_ACTIVATEMAINWINDOW(0) Called from source\hwindow.prg->HMAINWINDOW:ACTIVATE(292) Called from general.prg->MAIN(138) HWGUI 2.16c Build 1002 Harbour 3.2.0dev (r1304251940) Date:15/05/13 Time:12:32:32 Поискал ф-ю переиндексации - нет такой, или плохо искал

alkresin: А почему сообщения - DBFNTX ? Вы, кажется, собираете при помощи своего hbp ? Надо там прописать опцию компиляции -dRDD_CDX, или собирать приложенным bat'ником. Индексы все - cdx.

AlexMyr: alkresin пишет: -dRDD_CDX помогло, спасибо И если индексы cdx, почему сразу не прописать rddSetdefault("DBFCDX"). Может тогда в general.ini опцию завести?

AlexMyr: А конфигурационные файлы Вы просто в редакторе набираете или есть утилита для этого?

alkresin: AlexMyr пишет: И если индексы cdx, почему сразу не прописать rddSetdefault("DBFCDX") DBFCDX - в этом demo примере, могут быть и другие RDD - Leto, Ads, да и DBFNTX теоретически может быть. Может тогда в general.ini опцию завести? Есть там такие опции - cDefDriver, например, datalias - только тогда надо его скомпилировать с поддержкой всех нужных RDD. А конфигурационные файлы Вы просто в редакторе набираете или есть утилита для этого? В редакторе.

Vlad04: Программа: dbchw.exe файл: dbchw.prg строка 744 Функция FUNCTION Calcul() Добавил кнопку очистить поле от предыдущих данных @ 50,70 BUTTON "CLear " SIZE 80, 26 on CLICK {||cExpr:=Space(290)} Как я написал не работает. Как правильно написать ?

AlexMyr: Вот так: @ 100,10 GET oExpr VAR cExpr SIZE 290,24 Atail( oDlg:aControls ):Anchor := ANCHOR_TOPABS+ANCHOR_LEFTABS+ANCHOR_RIGHTABS @ 10,40 BUTTON "Calc it!" SIZE 80, 26 ON CLICK bCalcBtn @ 50,70 BUTTON "CLear " SIZE 80, 26 on CLICK {||cExpr:=Space(290),oExpr:Refresh(),oExpr:SetFocus()}



полная версия страницы