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

HwGui 2.21

alkresin: Приветствую всех! Выпустил сегодня очередной релиз: HwGui 2.21 build 1. Как обычно, zip с исходниками - на Sourceforge, бинарники для Bcc 5.1 и Mingw 4.8.2 - у меня на http://www.kresin.ru/hwgui.html

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

alkresin: AndreyZh пишет: Ничего не пересобирал. Взял бинарники с Вашего сайта. Я спросил, потому что в вашем первом листинге было: xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6633) Copyright 1999-2010, http://www.xharbour.org http://www.harbour-project.org/ Т.е., вы собираете xHarbour'ом HwGUI-библиотеки, сделанные Harbour'ом ? Ничего хорошего из этого не может получиться. Есть исходник 866: 5% интерфейса и 95% "математики"... хотелось бы интерфейс переделать под гуи, оставив остальное, как есть Я все-таки не понял. Это остальное формирует строки, прописанные непосредственно в исходниках, которые потом использует интерфейсная часть?

alkresin: Vlad04 пишет: oExcel := GetActiveObject( "Excel.Application" ) ... CreateObject( "Excel.Application" ) Попробуйте win_OleCreateObject(), это из библиотеки hbwin

Dima: Vlad04 пишет: Попробовал пересобрать стары проект, ошибка выскакивает при вызове Excel Указал бы на какой строке что ли..


AndreyZh: Всё перепуталось... ну и ладно alkresin пишет: Я спросил, потому что в вашем первом листинге было: xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6633) Copyright 1999-2010, http://www.xharbour.org http://www.harbour-project.org/ Т.е., вы собираете xHarbour'ом HwGUI-библиотеки, сделанные Harbour'ом ? Ничего хорошего из этого не может получиться. Не пересобирал, а взял дистрибутив с бинарниками… Первый раз тупо попытался собрать пример, используя рабочий xHarbour, наткнувшись на ошибку по echo остальные попытки делал уже на Harbouur 3.0 alkresin пишет: Я все-таки не понял. Это остальное формирует строки, прописанные непосредственно в исходниках, которые потом использует интерфейсная часть? Пока это не важно, а для меня неспешно нужно понять работоспособность и пригодность инструмента, хотя бы на приложенных примерах. Увы для этого мало времени, т.к. приходится поддерживать и постоянно развивать два огромных консольных проекта. На Ваш инструмент "заглядываюсь" давно и мне он очень потенциально интересен по двум соображениям: 1. В нём реализован разумный Гуёвый минимум, что в принципе потенциально облегчит изучение и миграцию. К тому же появился нормальный рускоязычный мануал; 2. Учитывая "непредсказуемость" государства Российского поддержка Linux является огромным козырем, а учить собираюсь лишь возможности поддерживаемые одновременно во всех ОС... это же одна из причин, что продолжаю писать консольные программы Спасибо Вам за Вашу полезную разработку!!!

AndreyZh: Возможно "пригодиться". При попытке собрать проект hwgui из сырцов дало ошибку на отсутствие ch файла, которого нигде нет MAKE Version 5.2 Copyright (c) 1987, 2000 Borland c:\xHarbour\bin\harbour.exe -iinclude;\include -n -q0 -w -es2 -gc0 source\winapi\hipedit.prg -oobj\b32\hipedit.c source\winapi\hipedit.prg(12) Error F0029 Can't open #include file: 'hbclass.ch' ** error 1 ** deleting obj\b32\hipedit.c

alkresin: AndreyZh пишет: Can't open #include file: 'hbclass.ch' Это Харборовский файл (он и в xHarbour есть), в его /include. У вас, похоже, HB_PATH не установлен, поэтому получилось c:\xHarbour\bin\harbour.exe -iinclude;\include -n -q0 -w -es2 -gc0 source\winapi\hipedit.prg -oobj\b32\hipedit.c вместо c:\xHarbour\bin\harbour.exe -iinclude;c:\xHarbour\include -n -q0 -w -es2 -gc0 source\winapi\hipedit.prg -oobj\b32\hipedit.c

alkresin: AndreyZh пишет: остальные попытки делал уже на Harbouur 3.0 А где вы его взяли? На сайте ночная сборка - 3.2

AndreyZh: Вроде бы собрал HWGUI из исходников при помощи xHarbour... Однако при сборке любых примеров вылетает одинаковая ошибка xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6633) Copyright 1999-2010, http://www.xharbour.org http://www.harbour-project.org/ Compiling 'tab.prg'... Lines 57, Functions/Procedures 2 Generating C source output to 'tab.c'... Done. Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland tab.c: Borland Resource Compiler Version 5.40 Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. Borland Resource Compiler Version 5.40 Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: Unresolved external '_HB_IS_TIMEFLAG' referenced from C:\HWGUI\LIB\HWGUI.LIB|misc Error: Unresolved external '_HB_FUN_HB_TSTOSTR' referenced from C:\HWGUI\LIB\HWGUI.LIB|hbrowse

alkresin: Этих функций в xHarbour нет. Просто закомментируйте строку с вызовом HB_IS_TIMEFLAG в misc.c и HB_TSTOSTR в hbrowse.prg, Если вы не используете тип данных DATETIME (я, например, не использую), то проблем не будет. Я поставлю вокруг них #ifndef _XHARBOUR_

AndreyZh: Спасибо за подсказку. Закоментировал - примеры собираются. Если интересно: в helpdemo при нажатии F1 вылет с диагностическим окном ОС

alkresin: Исправил. Там надо в misc.c, функция HB_FUNC( HWG_GETHELPDATA ) поменять hb_parnl на HB_PARHANDLE и hb_retnl на HB_RETHANDLE, функция HB_FUNC( HWG_WINHELP ), строчка hb_retni( WinHelp( ( HWND ) hb_parnl( 1 ), HB_PARSTR( 2, &hStr, NULL ), тоже поменять hb_parnl на HB_PARHANDLE

AndreyZh: Доброе утро Александр. По мере нахождения времени пытаюсь вникнуть в Ваш инструмент и в принципе все предположения о нём и ожидания оправдываются… 1. Интересны ли Вам ошибки? Например в примерах: grid_4.prg - лишняя строка oServer:Close() вызывающая ошибку; testtray.prg - вылет при запуске: Error BASE/1004 Class: 'NIL' has no exported method: HANDLE Called from ->HANDLE(0) Called from source\winapi\hwindow.prg->HMAINWINDOW:INITTRAY(397) Called from testtray.prg->MAIN(15) 2. Маленький вопрос. Стандартный серый цвет скучноват. Область окон и контролов могу украсить. Можно ли? Менять оформление области меню и/или заголовка окна - они как бы "сливаются"

AndreyZh: Вот и сейчас... попытался использовать, как бы очевидную вещь. Полностью код: [pre2] * -------------------------------------------------------------------------------------------------- * Произвожу другие эксперименты в окне диалогов. Попробую Grid и просмотр таблиц в дос кодировке PROC pgDialogGet() LOCA oModDlg LOCA oIcon:= HIcon():AddFile("Bob.ico") // Открываю Dos таблицу в соответствующей кодировке - якобы преобразование будут на лету? USE ("hle.dbf") EXCLUSIVE NEW CODEPAGE (cgCodePage) // Задаём метод при закрытии окна - закрыть таблицу INIT DIALOG oModDlg TITLE " Модальное окно для теста"; AT 150,180 SIZE 800,300 ICON oIcon; BACKCOLOR hwg_ColorC2N(cgBackCol) NOEXIT; ON EXIT {||HLE->(DbCloseArea())} @ 20,257 SAY "Алиас: "+Alias() SIZE 100, 18 BACKCOLOR hwg_ColorC2N(cgBackCol) @ 680,250 BUTTON "Выход" ID IDCANCEL SIZE 100, 32 ACTIVATE DIALOG oModDlg RETU [/pre2] После добавления выделенной команды, закрывающей таблицу программа вываливается по ошибке: Error BASE/1066 Argument error: conditional Called from source\winapi\hdialog.prg->HWG_ENDDIALOG(515) Called from source\winapi\hdialog.prg->ONDLGCOMMAND(368) Called from source\winapi\hdialog.prg->(b)(_INITSTATICS00003)(0) Called from source\winapi\hdialog.prg->HDIALOG:ONEVENT(196) Called from ->HWG_DLGBOXINDIRECT(0) Called from source\winapi\hdialog.prg->HDIALOG:ACTIVATE(141) Called from test.prg->PGDIALOGGET(80) Called from test.prg->(b)MAIN(32) Called from source\winapi\hwindow.prg->ONCOMMAND(607) Called from source\winapi\hwindow.prg->(b)HMAINWINDOW(289) Called from source\winapi\hwindow.prg->HMAINWINDOW:ONEVENT(379) Called from ->HWG_ACTIVATEMAINWINDOW(0) Called from source\winapi\hwindow.prg->HMAINWINDOW:ACTIVATE(368) Called from test.prg->MAIN(59) HWGUI 2.21 Build 5 Date:11/14/18 Time:10:56:04

alkresin: AndreyZh пишет: ON EXIT {||HLE->(DbCloseArea())} Кодоблок для on exit всегда должен возвращать логическое значение - результат проверки, можно ли закрывать окно/диалог. Если это .F. - диалог не будет закрыт. Вам надо написать: ON EXIT {||HLE->(DbCloseArea()),.T.}

alkresin: AndreyZh пишет: Интересны ли Вам ошибки? Да, конечно. Что касается grid_4 - исправлю, конечно. Grid и listbox - те классы, которые писали бразильские коллеги и в полезности которых я сильно сомневаюсь, т.к. они не кроссплатформенны (в gtk таких родных просто нет) и для них есть универсальная замена - hbrowse, гораздо более функциональная. А testray я уже исправил и расширил несколько дней тому назад (см. SVN) - там надо а testtray.rc изменить название файла иконки, вместо pim.ico (такого в images Просто нет) на, например, ok.ico. Менять оформление области меню и/или заголовка окна - они как бы "сливаются" Такой возможности сейчас в HwGUI нет. Это области системные, я не уверен, что вообще можно это делать. Можно, конечно, поискать пути. Один из вариантов с меню - не делать системного иеню вообще, а вместо этого поставить наверху панель с кнопками и на одну из кнопок посадить контекстное меню. Так сейчас, например, в броузерах делают - кнопка с тремя полосками.

AndreyZh: Спасибо за информацию... Про "Grid и listbox - те классы, которые писали бразильские коллеги и в полезности которых я сильно сомневаюсь, т.к. они не кроссплатформенны" забыл, а интересны только кроссплатформенные возможности. Вникать в HwGUI могу только в "перерывах", но буду стараться, по мере возможности

alkresin: Выпустил релиз HwGUI 2.21 build 6 [*] HIcon():AddFile() automatically adds file extension (ico or png) if it isn't defined. [*] Added support of the icon in a main window for Designer's forms. [!] Fixes, corrections.

AndreyZh: Извините, но не совсем понял настройки шрифтов [ WIDTH <nWidth> ] [ HEIGHT <nHeight> ] [ WEIGHT <nWeight> ] - как влияют значения. В примерах обычно WIDTH 0 HEIGHT -13, а изменения значений приводят к непонятным результатам

alkresin: Про WIDTH забудьте, я когда-то его ввел, потому что он есть в структуре шрифта winapi, но на что он реально влияет, до сих пор не знаю. HEIGHT (высота) - главная характеристика размера шрифта. Чем больше положительное значение или чем меньше отрицательное - тем больше шрифт. Отрицательное связано с высотой символа, а положительное - с высотой ячейки (символ вместе с пустотами). WEIGHT определяет жирность. Для нормального WEIGHT=400, для жирного - 700, другие значения не работают). Это не я придумал, это winapi.

AndreyZh: Спасибо! Александр, я понимаю, что мануал Вы пишете по мере нахождения на это времени. Можно попросить Вас, когда будет возможность описать класс ProgressBar, т.к. из примера мне сложно понять свойства и методы, а так же BROWSE?



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