Форум » 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: Вышел build 3 - исправлено несколько ошибок.

Andrey: Всем привет ! А как решается проблема которая существует всегда - подбор высоты фонта для разных разрешениях экрана ? Есть ли функция такая в HwGui, которая бы давала размер фонта автоматом ?

alkresin: Нет такой функции и я не очень представляю, как она должна работать. Что принять за базовое значение? И, если речи идет о том, чтобы текст имел оптимальный для пользователя размер, то имеет значение и физический размер экрана и, извините, острота зрения пользователя.


Andrey: alkresin пишет: Что принять за базовое значение? Да я вот тоже с этим мучаюсь на МиниГуи. Парк компов разный и разрешение экрана у всех разные. Хотелось бы узнать как делают программисты в этом случае ? Я сделал для своих программ такую универсальную функцию: [pre2]Function ModeSizeFont() LOCAL nSize IF GetDesktopHeight() == 600 nSize := 10 ELSEIF GetDesktopHeight() == 768 nSize := 12 ELSEIF GetDesktopHeight() == 800 nSize := 14 ELSEIF GetDesktopHeight() >= 1050 .OR. GetDesktopHeight() <= 1080 nSize := 16 ELSEIF GetDesktopHeight() == 1152 nSize := 18 ELSEIF GetDesktopHeight() >= 1200 nSize := 20 ELSE nSize := 15 ENDIF // Проверка установки БОЛЬШОГО фонта в настройках системы nSize := nSize - IIF(Large2Fonts(),2,0) RETURN nSize[/pre2] И при создании форм задаю всегда такой размер фонта на форму. Для кнопок уменьшаю размер фонта на -2 или увеличиваю для других объектов. Вот и интересно, правильный у меня подход к этому или нет.

Haz: Andrey пишет: и интересно, правильный у меня подход к этому или нет А я форму крашу в жёлтый, и мне интересно правильно или нет?

alkresin: Можно и так. Но лучше предоставлять пользователю возможность самому выбирать подходящий для него шрифт и хранить его где-нибудь в настройках программы.

alkresin: Собрал в виде отдельного пакета HwGUI tutorial и выложил на страницу HwGUI: http://www.kresin.ru/hwgui.html. Если кто не в курсе - это небольшая программа, где представлены базовые возможности HwGUI. Разбитые по разделам фрагменты кода, которые можно модифицировать и сразу запускать на выполнение, для этого не нужен ни сам HwGUI, ни Harbour, ни С.

PSP: Что-то не взлетает Error BASE/1081 Argument error: + Called from tutor.prg->BUILDTREE(169) Called from tutor.prg->MAIN(112) HWGUI 2.20 Build 3 Date:10/17/18 Time:14:34:28 hb_out.log ------------------------------------------------------------------------ Application Internal Error - C:\Users\Администратор\Desktop\hwguitutor\tutor.exe Terminated at: 2018-10-17 14:35:32 Unrecoverable error 9001: Error recovery failure Called from FOPEN(0) Called from HXMLDOC:READ(229) in source\common\xml\hxmldoc.prg Called from BUILDTREE(169) in tutor.prg Called from MAIN(112) in tutor.prg -------------------------------------------------------------------------

alkresin: Очень странно. Я пробовал на двух компьютерах, с XP и с 10-кой, все нормально. Такое может быть, если нет файла tutor.xml. У вас там с ним ничего не случилось?

PSP: Нет, всё на месте [pre2] Том в устройстве C не имеет метки. Серийный номер тома: 7E11-1684 Содержимое папки C:\Users\Администратор\Desktop\hwguitutor 17.10.2018 16:07 <DIR> . 17.10.2018 16:07 <DIR> .. 17.10.2018 10:59 <DIR> harbour 17.10.2018 16:06 405 hb_out.log 17.10.2018 15:54 1 917 440 hwgrun.exe 17.10.2018 11:00 140 hwgrun.xml 17.10.2018 10:59 <DIR> hwgui 17.10.2018 15:54 1 866 752 tutor.exe 17.10.2018 15:48 954 tutor.xml 01.10.2018 10:30 41 549 tutor_eng.xml 7 файлов 3 827 240 байт [/pre2] Еще раз скачал архив - то же самое.

Dima: Наверное русские буквы в пути не катят

PSP: Dima пишет: Наверное русские буквы в пути не катят Да, опередил ты меня))) Если папку с прогой перенести в корень, то она запускается.

alkresin: Точно. Дело в русских буквах в имени каталога. А вот почему это вдруг стало проблемой, надо выяснить.

alkresin: Хм... hb_argv[0] возвращает "????" вместо русского названия каталога. Я и не подозревал...

alkresin: Лечится, как выяснилось, если собрать приложение в UNICODE режиме. Вечерком сделаю.

alkresin: Собрал в UNICODE, залил.

Dima: alkresin пишет: Собрал в UNICODE, залил А без UNICODE не лечится проблема ?

alkresin: Лечится, если заблаговременно, лучше всего - в init procedure, установить требуюмую codepage - в нашем случае "RU1251".

alkresin: Вышел build 4: [*] XML parsing procedure catch more errors and doesn't hang on them now. [*] HTree, HTreeNode: bAction is renamed to bClick. [+] nBorder variable added to HSayBmp class to draw the border, if needed. [+] cFormName variable added to the HRepTmpl class to keep the path and name [!] Few bugs and compile time warnings fixed.

alkresin: Вышел build 5: [*] Now you may define a negative size value of a window or dialog, this mean that absolute value of the size is the size of client area, not a whole window rectangle. [+] ON CLICK, ON DBLCLICK clauses added to @...BITMAP and @...ICON commands. [*] compatibility of gtk and winapi versions improved. [!] Few important fixes.

nick_mi: Александр Добрый день. Собрал DBCHW и DBCHWx и открыл локальную базу. При попытке выйти за нижнюю запись получил ошибку в DBCHW и DBCHWx лог для DBCHWx: Error BASE/1132 Bound error: array access Called from source\winapi\hbrowse.prg->HBROWSE:EDIT(1725) Called from source\winapi\hbrowse.prg->HBROWSE:PAINT(823) Called from source\winapi\hbrowse.prg->HBROWSE:ONEVENT(300) Called from ->HWG_ACTIVATEMDIWINDOW(0) Called from source\winapi\hwindow.prg->HMAINWINDOW:ACTIVATE(361) Called from dbchw.prg->MAIN(296) HWGUI 2.21 Build 5 Date:05/11/18 Time:18:23:38

alkresin: Ошибку нашел, исправил. Спасибо. Теперь или берите свежие исходники с SVN, или ждите следующего релиза - в течение месяца, наверное, будет: я теперь чаще делаю релизы из-за GuiServer'а. Бинарники dbchw - локальную версию и под LetoDB тоже обновил.

AndreyZh: Извините за ламерский вопрос. Решил посмотреть примеры, а батник dld.bat выдаёт ошибку: xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6633) Copyright 1999-2010, http://www.xharbour.org http://www.harbour-project.org/ Compiling 'grid_1.prg'... Lines 74, Functions/Procedures 6 Generating C source output to 'grid_1.c'... Done. Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland grid_1.c: 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 Fatal: Unable to open file 'ECHO.LIB' Где эта библиотека находится?

Dima: AndreyZh пишет: батник dld.bat выдаёт ошибку Возможно в нем нужно исправить пути , на свои

AndreyZh: Dima пишет: Возможно в нем нужно исправить пути , на свои Перестроил, как Александр пишет в мануале, но в батнике вообще нет ссылки на эту библиотеку. Может быть её хочет bcc?

alkresin: AndreyZh пишет: Решил посмотреть примеры, а батник dld.bat выдаёт ошибку: bld.bat, наверное ? А в этом bat упоминается где-нибудь echo.lib? Я, честно говоря, даже не представляю пока, что это за библиотека и с какой стати она требуется. Может, что-то связанное непосредственно с xHarbour?

alkresin: Удалите из батника последнюю строчку 'del b32.bc', чтобы посмотреть на этот b32.bc - линк-файл, формируемый батником. Может, когда вы его правили, где-то кавычка случайно пропала и из строчек 'echo ...' образовался вызов библиотеки echo.lib.

AndreyZh: alkresin пишет: bld.bat, наверное ? А в этом bat упоминается где-нибудь echo.lib? Я, честно говоря, даже не представляю пока, что это за библиотека и с какой стати она требуется. Может, что-то связанное непосредственно с xHarbour? Конечно bld.bat. Подключил Харбор согласно совету: set HB_PATH=C:\hb30 Однако ошибка сохранилась. Полностью сообщения батника: Harbour 3.0.0 (Rev. 16951) Copyright (c) 1999-2011, http://harbour-project.org/ Compiling 'grid_1.prg'... 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 Lines 3565, Functions/Procedures 6 Generating C source output to 'grid_1.c'... Done. Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland grid_1.c: 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 Fatal: Unable to open file 'ECHO.LIB'

AndreyZh: alkresin пишет: Удалите из батника последнюю строчку 'del b32.bc', чтобы посмотреть на этот b32.bc - линк-файл, формируемый батником. Может, когда вы его правили, где-то кавычка случайно пропала и из строчек 'echo ...' образовался вызов библиотеки echo.lib. Уже делал... просто стыдно задавать детские вопросы: c0w32.obj + grid_1.obj, + grid_1.exe, + grid_1.map, + ..\lib\hwgui.lib + ..\lib\procmisc.lib + ..\lib\hbxml.lib + ..\lib\hwgdebug.lib + echo ..\lib\hwg_qhtm.lib + ..\lib\hbactivex.lib + C:\hb30\lib\rtl.lib + C:\hb30\lib\vm.lib + C:\hb30\lib\gtgui.lib + C:\hb30\lib\lang.lib + C:\hb30\lib\codepage.lib + C:\hb30\lib\macro.lib + C:\hb30\lib\rdd.lib + C:\hb30\lib\dbfntx.lib + C:\hb30\lib\dbfcdx.lib + C:\hb30\lib\dbffpt.lib + C:\hb30\lib\common.lib + C:\hb30\lib\pp.lib + C:\hb30\lib\hsx.lib + C:\hb30\lib\hbsix.lib + cw32.lib + import32.lib, obj\hwgui_xp.res

alkresin: Ну вот, вы же видите эту строчку: echo ..\lib\hwg_qhtm.lib + . Никаких echo здесь не должно быть.

AndreyZh: alkresin пишет: Ну вот, вы же видите эту строчку: echo ..\lib\hwg_qhtm.lib + . Никаких echo здесь не должно быть. Спасибо! Осталось понять где она в батнике из поставки подсовывается?

alkresin: Да, это в батнике ошибка, там в строчке if exist %HWGUI_INSTALL%\lib\hwg_qhtm.lib echo echo %HWGUI_INSTALL%\lib\hwg_qhtm.lib + >> b32.bc второе echo надо убрать. У меня оно не выскакивает, потому что hwg_qhtm.lib нет.

AndreyZh: Ошибка в строке 35 bld.bat - дважды echo... Однако сейчас посыпались другие сообщения: Harbour 3.0.0 (Rev. 16951) Copyright (c) 1999-2011, http://harbour-project.org/ Compiling 'grid_1.prg'... Lines 3565, Functions/Procedures 6 Generating C source output to 'grid_1.c'... Done. Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland grid_1.c: 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_PCREPOS_LIBRARY' referenced from C:\XHARBOUR\LIB\RTL.LIB|regex Error: Unresolved external '_hb_setGetOSCP' referenced from C:\HWGUI\LIB\HWGUI.LIB|draw Error: Unresolved external '_hb_parstr' referenced from C:\HWGUI\LIB\HWGUI.LIB|draw Error: Unresolved external '_hb_strfree' referenced from C:\HWGUI\LIB\HWGUI.LIB|draw Error: Unresolved external '_hb_extIsNil' referenced from C:\HWGUI\LIB\HWGUI.LIB|draw Error: Unresolved external '_hb_storvni' referenced from C:\HWGUI\LIB\HWGUI.LIB|draw Error: Unresolved external '_hb_itemCopyStr' referenced from C:\HWGUI\LIB\HWGUI.LIB|drawtext Error: Unresolved external '_hb_itemEqual' referenced from C:\HWGUI\LIB\HWGUI.LIB|drawtext Error: Unresolved external '_hb_itemPutStr' referenced from C:\HWGUI\LIB\HWGUI.LIB|drawtext Error: Unresolved external '_hb_retstrlen' referenced from C:\HWGUI\LIB\HWGUI.LIB|misc Error: Unresolved external '_hb_retstr' referenced from C:\HWGUI\LIB\HWGUI.LIB|misc Error: Unresolved external '_hb_itemGetStr' referenced from C:\HWGUI\LIB\HWGUI.LIB|window Error: Unresolved external '_hb_itemPutCLPtr' referenced from C:\HWGUI\LIB\HWGUI.LIB|window Error: Unresolved external '_hb_cdpFindExt' referenced from C:\HWGUI\LIB\HWGUI.LIB|window Error: Unresolved external '_hb_vmSetCDP' referenced from C:\HWGUI\LIB\HWGUI.LIB|window Error: Unresolved external '_hb_parstr_u16' referenced from C:\HWGUI\LIB\HWGUI.LIB|window Error: Unresolved external '_hb_strnull' referenced from C:\HWGUI\LIB\HWGUI.LIB|misc Error: Unresolved external '_hb_arrayGetStr' referenced from C:\HWGUI\LIB\HWGUI.LIB|control Error: Unresolved external '_hb_storstr' referenced from C:\HWGUI\LIB\HWGUI.LIB|control Error: Unresolved external '_HB_FUN___CLSLOCKDEF' referenced from C:\HWGUI\LIB\HWGUI.LIB|hdialog Error: Unresolved external '_HB_FUN___CLSUNLOCKDEF' referenced from C:\HWGUI\LIB\HWGUI.LIB|hdialog Error: Unresolved external '_hb_itemCopyStrU16' referenced from C:\HWGUI\LIB\HWGUI.LIB|dialog Error: Unresolved external '_HB_FUN_HB_ASCAN' referenced from C:\HWGUI\LIB\HWGUI.LIB|hcombo Error: Unresolved external '_HB_FUN_HB_TSTOSTR' referenced from C:\HWGUI\LIB\HWGUI.LIB|hbrowse Error: Unresolved external '_HB_FUN_HB_NUMTOHEX' referenced from C:\HWGUI\LIB\HWGUI.LIB|guimain Error: Unresolved external '_hb_strunshare' referenced from C:\HWGUI\LIB\HWGUI.LIB|commond Error: Unresolved external '_hb_storstrlen' referenced from C:\HWGUI\LIB\HWGUI.LIB|commond

AndreyZh: Тупо бросил все *.lib & *.ch в соответствующие каталоги Харбор. Список ошибок сборки уменьшился: Harbour 3.0.0 (Rev. 16951) Copyright (c) 1999-2011, http://harbour-project.org/ Compiling 'grid_1.prg'... Lines 3565, Functions/Procedures 6 Generating C source output to 'grid_1.c'... Done. Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland grid_1.c: 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_extIsNil' referenced from C:\HWGUI\LIB\HWGUI.LIB|draw Error: Unresolved external '_hb_itemEqual' referenced from C:\HWGUI\LIB\HWGUI.LIB|drawtext

AndreyZh: Позвольте так же скопировать вопрос без ответа со страницы мануала. Для меня он так же актуален: Георгий 14 May, 2017, 0:37 Ответить Здравствуйте, Возможно ли решить следующую задачу: - Проект на Harbour 3.2, среда MS Windows, кодировка .prg CP866; - Все файлы проекта (.dbf и текстовые) в CP866; - hwgui. Хотелось бы сохранить CP866 для исходников и .dbf, но видеть окна и виджеты в читаемом виде, без ручной перекодировки в CP1251 всего, что туда отправляется/принимается. Как это лучше сделать?

alkresin: AndreyZh пишет: Тупо бросил все *.lib & *.ch в соответствующие каталоги Харбор. Список ошибок сборки уменьшился: Откуда бросил, из xHarbour? Лучше так не делать - такая путаница начнется... Если вы собрали HwGUI с xHarbour, то и примеры надо строить с ним: пути в батнике должны быть к xHarbour. Разберитесь, что чем у вас собрано. Вот эти hb_extIsNil и hb_itemEqual есть в Harbour и отсутствуют в xHarbour

alkresin: AndreyZh пишет: Хотелось бы сохранить CP866 для исходников и .dbf, но видеть окна и виджеты в читаемом виде, без ручной перекодировки в CP1251 всего, что туда отправляется/принимается. С dbf все достаточно просто, надо при открытии файла указывать codepage 866. Если для программы указана hb_cdpSelect("RU1251"), то все будет автоматически конвертироваться. А вот с исходниками я не понял. Почему они на 866, они писались для консоли? Если так, то их все-равно переделывать ?

Vlad04: Попробовал пересобрать стары проект, ошибка выскакивает при вызове Excel oExcel := GetActiveObject( "Excel.Application" ) Res:=.t. hwg_Msginfo("Старт Excel - активация 1 !" ) CATCH Res:=.f. TRY oExcel := CreateObject( "Excel.Application" ) ....

AndreyZh: alkresin пишет: Откуда бросил, из xHarbour? Ничего не пересобирал. Взял бинарники с Вашего сайта. В последней сборке примера из hwgui библы и ch кинул в соответствующие каталоги харбора alkresin пишет: С dbf все достаточно просто, надо при открытии файла указывать codepage 866. Если для программы указана hb_cdpSelect("RU1251"), то все будет автоматически конвертироваться. А вот с исходниками я не понял. Почему они на 866, они писались для консоли? Если так, то их все-равно переделывать ? Есть исходник 866: 5% интерфейса и 95% "математики"... хотелось бы интерфейс переделать под гуи, оставив остальное, как есть Спасибо за подсказки. Завтра будет время - ещё "поиграюсь"

Andrey: AndreyZh пишет: Возможно ли решить следующую задачу: - Проект на Harbour 3.2, среда MS Windows, кодировка .prg CP866; - Все файлы проекта (.dbf и текстовые) в CP866; - hwgui. Хотелось бы сохранить CP866 для исходников и .dbf, но видеть окна и виджеты в читаемом виде, без ручной перекодировки в CP1251 всего, что туда отправляется/принимается. Как это лучше сделать? У меня тоже был проект на терминалке на хХарборе. Сейчас переделал на МиниГуи: базы в 866 кодировке, экран 1251. Исходники переделал под 1251, чтобы редактором нормальными пользоваться и вывод в лог-файлы была кодировка 1251 (делаю юзеру запуск лог-файла с notepad'ом). Убил времени порядочно, пока осваивал, да и не всегда время позволяло, зато теперь задача классно смотрится и работает, сейчас пробую переходить на МиниГуи и MS VC2017 64bit, получается.

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?

alkresin: Я постараюсь. Если ProgressBar достаточно прост, там всего-ничего, то Browse...

AndreyZh: Сильно не отвлекайтесь на меня... "смотрю" во время "отдыха". Часто использую функции *Token(), которые в "других" библиотеках, соответственно стандартный сборщик не видит библ. Добавил в bld.bat if exist %HRB_DIR%\lib\ct.lib echo %HRB_DIR%\lib\ct.lib + >> b32.bc if exist %HRB_DIR%\lib\xhb.lib echo %HRB_DIR%\lib\xhb.lib + >> b32.bc т.е. для xHarbour & Harbour соответсвенно

nick_mi: Александр добрый день! Выскочила ошибка в DBCHW. Ошибкам проявляется в том случае, если кликнуть мышкой правее последнего поля таблицы. Такой ошибки не было в версии 2.18 build 2. Error BASE/1132 Bound error: array access Called from source\winapi\hbrowse.prg->HBROWSE:BUTTONDOWN(1517) Called from source\winapi\hbrowse.prg->HBROWSE:ONEVENT(393) Called from ->HWG_ACTIVATEMDIWINDOW(0) Called from source\winapi\hwindow.prg->HMAINWINDOW:ACTIVATE(361) Called from dbchw.prg->MAIN(296) HWGUI 2.21 Build 6 Date:21/11/18 Time:15:56:18 И еще одно замечание. В версии 2.18 build 2. все открытые индексы были в списке открытых индексов, и можно было выбрать любой индекс. Сейчас остается только один последний индекс. Это теперь так всегда будет?

alkresin: nick_mi пишет: Error BASE/1132 Bound error: array access Called from source\winapi\hbrowse.prg->HBROWSE:BUTTONDOWN(1517) Исправил, залил на SVN. В версии 2.18 build 2. все открытые индексы были в списке открытых индексов, и можно было выбрать любой индекс. Сейчас остается только один последний индекс. Это если индексы в нескольких файлах и вы их открываете по одному (Open index)? Да, там стоял просто set index to, я сейчас добавил additive. Но это уже очень давно не менялось.

AndreyZh: Продолжу? Детские вопросы. Теперь по кнопкам 1. @ 10, 636 BUTTON "Очистка списка АкцМ" SIZE 200, 32 BACKCOLOR hwg_ColorC2N(cgBackCol) COLOR hwg_ColorC2N(cgColor) Не меняет ни цвета текста, ни фона - обычный черный на сером 2. Здесь две проблемы сразу: @ 10, 636 OWNERBUTTON ob1 OF oMainWind ID 108 TEXT "Очистка списка АкцМ" SIZE 200, 32 BACKCOLOR hwg_ColorC2N(cgBackCol) Это меняет фон, но текст остаётся черным Сделал эксперимент с двумя вариантами @ 10, 636 OWNERBUTTON ob1 OF oMainWind ID 108 TEXT "Очистка списка АкцМ" SIZE 200, 32 BACKCOLOR hwg_ColorC2N(cgBackCol) COLOR {||.T.} @ 220,636 OWNERBUTTON ob2 OF oMainWind ID 109 TEXT "Определить алкокоды" SIZE 200, 32 BACKCOLOR hwg_ColorC2N(cgBackCol) COLOR hwg_ColorC2N(cgColor) Выдаёт ошибки компиляции Compiling 'OprId.prg'... OprId.prg(56) Error E0030 Syntax error: "syntax error at '{'" OprId.prg(57) Error E0022 Invalid lvalue: '()'

AndreyZh: Позвольте так же замечания по инструкции? Просто смотреть примеры не могу, а посему пытаюсь сделать что-то полезное... 1. Смотря какой-то пример увидел функцию hwg_Selectfile("Файл из БД УСЕга", "*.*") Захотел посмотреть, как использовать - её вообще нет в описании, начал изучать методом тыка… Оказывается она сменяет текущий каталог. 2. Решил вставить в форму EDITBOX - нужное работает. Увидел, что создаётся объект. Как его использовать - смотрю описание класса: METHODS New( oWndParent, nId, vari, bSetGet, nStyle, nLeft, nTop, nWidth, nHeight, ; oFont, bInit, bSize, bGfocus, bLfocus, ctooltip, ; tcolor, bcolor, cPicture, lNoBorder, nMaxLength, lPassword, bKeyDown, bChange ) Activate() onEvent( msg, wParam, lParam ) Init() Refresh() Value( xValue ) SETGET SelStart( nStart ) SETGET SelLength( nLength ) SETGET ParsePict( cPicture, vari ) Начитаю тыкаться: записать в поле, взять в поле... не получается смотрю кучу примеров, где есть editbox, в каком-то нахожу oEdit:SetText("") - значит типа вставляет текст, получилось. Как взять - с потолка пишу с:=oEdit:GetText() - получается... НО ЭТИ МЕТОДЫ ВООБЩЕ НЕ УПОМИНАЮТСЯ у класса!

AndreyZh: Ещё ошибочка... Мне нужно в одной области ввести несколько строк. Насколько понял GET и EDITBOX это не позволяют? Нашел HCEDIT. При сборке xHarbour вылетает по ошибке компиляции Error: Unresolved external '_HB_FUN_HB_AT' referenced from C:\XHARBOUR\LIB\PROCMISC.LIB|hcedit Error: Unresolved external '_HB_FUN_HB_RAT' referenced from C:\XHARBOUR\LIB\PROCMISC.LIB|hcedit В xHarbour Нет HB_At() и HB_Rat(), но есть At(), Rat() Вставив заплатку в программу: FUNC HB_At(c,b); RETU At(c,b) FUNC HB_RAt(c,b); RETU Rat(c,b) Всё собралось и работает, как ожидалось...

alkresin: AndreyZh пишет: @ 10, 636 BUTTON ... BACKCOLOR hwg_ColorC2N(cgBackCol) ... В стандартной кнопке цвета не меняются, она целиком отрисовывается системой. @ 220,636 OWNERBUTTON ...TEXT "Определить алкокоды" SIZE 200, 32 BACKCOLOR hwg_ColorC2N(cgBackCol) COLOR hwg_ColorC2N(cgColor) COLOR здесь должен находиться рядом с TEXT, так определена команда: @ 220,636 OWNERBUTTON ...TEXT "Определить алкокоды" COLOR hwg_ColorC2N(cgColor) ... С OWNERBUTTON рекомендую использовать стили (HStyle) - см. примеры в HwGui Tutor. А чтобы стандартные контролы выглядели прилично, не забывайте прилинковывыть WindowsXP.Manifest, как в samples/bld.bat.

alkresin: AndreyZh пишет: hwg_Selectfile("Файл из БД УСЕга", "*.*") Захотел посмотреть, как использовать - её вообще нет в описании ?? http://www.kresin.ru/hwgdoc_functions.html#Functions1 - там в самом начале. Функции, кстати, есть в документации все. Не все с комментариями, но, по крайней мере, с параметрами и с отметкой, если только для Windows. с:=oEdit:GetText() - получается... НО ЭТИ МЕТОДЫ ВООБЩЕ НЕ УПОМИНАЮТСЯ у класса! Они унаследованы от родительского класса HControl. Кстати, лучше использовать Value(): string := oEdit:Value oEdit:Value := string

alkresin: AndreyZh пишет: Мне нужно в одной области ввести несколько строк. @ ... EDITBOX ... STYLE ES_MULTILINE - стандартный edit контрол. А HCEdit - более навороченный. А hb_at(), hb_rat(), действительно, надо будет переопределить через #ifdef __XARBOUR__

AndreyZh: Спасибо Александр за ответы! Буду разбираться дальше...

AndreyZh: Добрый день Александр! Появилось время посмотреть и сразу кучка непоняток [img]https://storage.olegon.ru/supermag/ЕГАИС%20и%20УТМ/errhwgui1.jpg[/img] #include "windows.ch" #include "guilib.ch" #define CRLF (CHR(13)+CHR(10)) #define TRUE .T. #define FALSE .F. // Мои любимые команды #xcommand FOR <i>:=<s> TO <n> DO <*statement*> =>; FOR <i>:=<s> TO <n> ; <statement> ; END #xcommand IF <cond> THEN <*statement*> =>; IF <cond> ; <statement>; ENDIF #xcommand DEFAULT <p> TO <v> [, <p2> TO <v2> ] => ; <p> := IF(<p> == NIL, <v>, <p>) ; [; <p2> := IF (<p2> == NIL, <v2>, <p2>) ] // Список настраиваемых цветов программы STAT cgBackCol := "000033" // Фон для контролов STAT cgColor := "ffff99" // Шрифт для контролов STAT cgCodePage := "RU866" // Кодовая страница внешних Dbf файлов // Глобальные для программы переменные, вызываемые из разных процедур STAT oBitmap // Картинка QR кода отражаемая на экране STAT oBtmp // Объект BITMAP *STAT oEdit // Объект преобразуемого кода * -------------------------------------------------------------------------------------------------- * Освоение окон и меню PROC Main() LOCA nWidthScr := hwg_GetDesktopWidth() // Ширина экрана в пикселах. LOCA nHeightScr := hwg_GetDesktopHeight() // Высота экрана в пикселах. LOCA nwW:=0, nwH:=0, nbW:=0, nbH:=0, nControl:=0, nTop:=0 LOCA oFont, oArial, oeW, oeH LOCA oIcon:= HIcon():AddFile("Bob.ico") PRIV oEdit // Даю стартовую картинку. При вводе знаков генерации QR кода она будет перерисовываться oBitmap := HBitmap():AddFile("Zhdun.bmp") PREPARE FONT oFont NAME "MS Sans Serif" WIDTH 0 HEIGHT -13 PREPARE FONT oArial NAME "Arial Cyr" WEIGHT 700 HEIGHT -12 // Инициализация главного окна - размер в половину экрана // Размеры главного окна - позиционирование других контролов nwW := Int(nWidthScr/2) // Ширина окна nwH := Int(nHeightScr/2) // Высота окна INIT WINDOW oMainWind MAIN; TITLE " Ввод, отражение в главном окне и печать QR кода"; ICON oIcon FONT oFont; AT 1,1 SIZE nwW,nwH BACKCOLOR hwg_ColorC2N("cccccc") oMainWind:Center() // Центрирую окно // Расчет размера картинки в четверть исходного окна nbW := Int(nwW/4) nbH := Int(nwH/4) // Рисую картинку по центру в половину окна - команда растягивает на всю указанную область - это лучше, чем фон окна @ Int(nWidthScr/5.6),Int(nHeightScr/7) BITMAP oBitmap ID 1001 SIZE nbW, nbH ON CLICK {||pDemo()} ********************* * Правильно ли понимаю, что ряд команд не "возвращает" объект и его приходится определять через опу // Определяю глобальный объект контрола из потокового автоматического добавления в массив контролов nControl := Len(oMainWind:aControls) oBtmp := oMainWind:aControls[nControl] ******************** * Криво отражается обрамление на W10 что видно на скрине oBtmp:nBorder := 10 //*** Добавляю контролы для ввода информации и кнопки, вызывающие действия над картинкой QR кода // Координаты верхней линии объектов nTop := nwH - 70 // Область ввода преобразуемых знаков @ 10,nTop-26 SAY "Внесите знаки: " FONT oArial SIZE 200, 26 BACKCOLOR hwg_ColorC2N("cccccc") * @ 106,nTop-30 EDITBOX oEdit SIZE 390, 56 ON LOSTFOCUS {||lChBitmap()} STYLE ES_MULTILINE @ 106,nTop-30 EDITBOX oEdit SIZE 390, 56 STYLE ES_MULTILINE @ 10,nTop BUTTON "Показать" SIZE 80, 26 ON CLICK {||lChBitmap()} // Активируются все объекты окна и ожидание события ************************** * Вылет при выполнеии * oEdit:SetFocus() * Error BASE/1004 Class: 'NIL' has no exported method: SETFOCUS ACTIVATE WINDOW oMainWind RETU * -------------------------------------------------------------------------------------------------- * При вводе знаков генерации QR кода, а точнее при потере фокуса на EDIT она будет перерисовываться FUNC lChBitmap() * LOCA cTxt:="17N00000ABLPONIUZUK05Z0212110060000251417714923913814124721320664222" LOCA cPict:="" // cTxt:=Alltrim(oEdit:value) *********************************************** * Вылет при любой ссылки на объект oEdit при любом назначении, что PRIV, что STAT LOCA cTxt:=Alltrim(MEMV->oEdit:GetText()) hwg_Msginfo(cTxt) // Не преобразую, если ничего не введено IF Empty(cTxt) THEN RETU .F. // Создаю новый файл картинки QR кода и перегружаю его в объект cPict := cQRGen(cTxt,"","qr.bmp") * hwg_Msginfo(cPict) * MEMV->oBtmp:Release() * MEMV->oBitmap := HBitmap():AddFile(cPict) * MEMV->oBtmp:Refresh() RETU .F. * -------------------------------------------------------------------------------------------------- * Процедура заглушка для разрабатываемых режимов PROC pDummy() RETU * -------------------------------------------------------------------------------------------------- * Проверка переданных параметров PROC pDemo() LOCA nW:=hwg_GetDesktopWidth(), nH:=hwg_GetDesktopHeight() * LOCA nwW:=oMainWind:Width, nwH:=oMainWind:Height * hwg_Msginfo("Ширина экрана: "+Str(nW)+" высота экрана: "+Str(nH)+CRLF+"Ширина окна: "+Str(nwW)+" высота окна: "+Str(nwH)) hwg_Msginfo("Ширина экрана: "+Str(nW)+" высота экрана: "+Str(nH)+CRLF+"Количество контролов: "+Str(Len(oMainWind:aControls))) RETU

AndreyZh: Начал пробовать EDITBOX по Вашему совету. Сейчас заменил EDITBOX на @ 106,nTop-30 HCEDIT oEdit1 SIZE 390, 56 ON LOSTFOCUS {||cgTxt:=oEdit1:GetText(), lChBitmap(), .F.} Объект oEdit1 стал везде виден

AndreyZh: Так же работает конструкция: STAT oGet Proc Main() …. @ 106,nTop-30 GET oGet VAR cgTxt STYLE ES_MULTILINE SIZE 390, 56 и даже так работает, как ожидается: @ 106,nTop-30 GET oGet VAR cgTxt SIZE 390, 56 VALID {||lChBitmap()} STYLE ES_MULTILINE … FUNC lChBitmap() hwg_Msginfo(oGet:Value)

alkresin: Как я понял, проблемы три: 1) * Правильно ли понимаю, что ряд команд не "возвращает" объект и его приходится определять через опу Неправильно). В данном случае вместо: @ ... BITMAP oBitmap ID 1001 SIZE nbW, nbH ON CLICK {||pDemo()} надо @ ... BITMAP oBtmp SHOW oBitmap ID 1001 SIZE nbW, nbH ON CLICK {||pDemo()} 2) с EDITBOX и oEdit Здесь аналогично, должно быть: @ 106,nTop-30 EDITBOX oEdit CAPTION "" иначе, если как вас, oEdit воспринимается как CAPTION - см. соответствующую команду в документации, или в guilib.sh 3) border - это надо посмотреть.

AndreyZh: Спасибо! Ещё раз почитаю мануал и попробую... Кстати @ x,y,GET не нашел в описаниях - смотрел по *.ch

alkresin: AndreyZh пишет: Кстати @ x,y,GET не нашел в описаниях http://www.kresin.ru/hwgdoc_commands.html#Commands4 И в doc/hwgdoc_commands.html в том же месте. С border разобрался, исправил.

AndreyZh: alkresin пишет: И в doc/hwgdoc_commands.html в том же месте Вы пополняете документацию быстрее, чем я скачиваю от туда информацию... клянусь, что 2 недели назад этого раздела не было... Первый учебный пример вроде бы заработал, как хочу и многим, как утилитка может полезна "просмотр и печать в любом размере QR кодов". Исходник могу разместить, но он использует стороннюю DLL, а так скачать всё можно Программа формирования QR кодов З.Ы. Ждите повышения "интереса" к Вашей разработке, а когда у меня будет время - продолжу освоение?

alkresin: AndreyZh пишет: Вы пополняете документацию быстрее, чем я скачиваю от туда информацию... клянусь, что 2 недели назад этого раздела не было... Был. Клясться не буду, но честное слово дам.

taras56: orland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland test.c: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: Unresolved external '_hb_extIsNil' referenced from C:\HARBOUR\LIB\HWGUI.LIB|window Error: Unresolved external '_hb_itemEqual' referenced from C:\HARBOUR\LIB\HWGUI.LIB|drawtext каталоги c:\harbour ( в папки include и lib добавлены файлы из hwgui 2.21) c:\bcc в примере модуль а.prg ком. файл cld.bat так-же ошибка

taras56: f:\Taras\_Win\kresin\huchet\source>rem @echo off f:\Taras\_Win\kresin\huchet\source>set HRB_DIR=c:\harbour f:\Taras\_Win\kresin\huchet\source>set HWGUI_INSTALL=c:\myapps\hwgui_216c f:\Taras\_Win\kresin\huchet\source>c:\harbour\bin\harbour general.prg -n -dRDD_CDX -ic:\harbour\include;c:\harbour\contrib\rdd_ads;c:\myapps\hwgui_216c\include Harbour 3.2.0dev (r1802131223) Copyright (c) 1999-2018, https://harbour.github.io/ Compiling 'general.prg'... 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 100 100 200 300 400 500 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 Lines 6111, Functions/Procedures 58 Generating C source output to 'general.c'... Done. f:\Taras\_Win\kresin\huchet\source>c:\harbour\bin\harbour procpass.prg -n -dRDD_CDX -ic:\harbour\include;c:\myapps\hwgui_216c\include Harbour 3.2.0dev (r1802131223) Copyright (c) 1999-2018, https://harbour.github.io/ Compiling 'procpass.prg'... 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 Lines 1696, Functions/Procedures 2 Generating C source output to 'procpass.c'... Done. f:\Taras\_Win\kresin\huchet\source>c:\harbour\bin\harbour procs3.prg -n -dRDD_CDX -ic:\harbour\include;c:\myapps\hwgui_216c\include Harbour 3.2.0dev (r1802131223) Copyright (c) 1999-2018, https://harbour.github.io/ Compiling 'procs3.prg'... 100 100 200 300 400 500 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 100 200 300 400 Lines 4622, Functions/Procedures 21 Generating C source output to 'procs3.c'... Done. f:\Taras\_Win\kresin\huchet\source>c:\harbour\bin\harbour procflt.prg -n -dRDD_CDX -ic:\harbour\include;c:\myapps\hwgui_216c\include Harbour 3.2.0dev (r1802131223) Copyright (c) 1999-2018, https://harbour.github.io/ Compiling 'procflt.prg'... 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 100 Lines 1974, Functions/Procedures 4 Generating C source output to 'procflt.c'... Done. f:\Taras\_Win\kresin\huchet\source>bcc32 -c -O2 -tW -M -Ic:\harbour\include general.c procpass.c procs3.c procflt.c Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland general.c: procpass.c: procs3.c: procflt.c: f:\Taras\_Win\kresin\huchet\source>brc32 -r general.rc Borland Resource Compiler Version 5.40 Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. f:\Taras\_Win\kresin\huchet\source>echo c0w32.obj + 1>b32.bc f:\Taras\_Win\kresin\huchet\source>echo general.obj + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo procs3.obj + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo procflt.obj + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo procpass.obj, + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo general.exe, + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo general.map, + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo c:\myapps\hwgui_216c\lib\hwgui.lib + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo c:\myapps\hwgui_216c\lib\procmisc.lib + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo c:\myapps\hwgui_216c\lib\hbxml.lib + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>if exist c:\harbour\lib\hbvm.lib goto hrb f:\Taras\_Win\kresin\huchet\source>echo c:\harbour\lib\hbrtl.lib + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo c:\harbour\lib\hbvm.lib + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo c:\harbour\lib\gtwin.lib + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>if exist c:\harbour\lib\gtgui.lib echo c:\harbour\lib\gtgui.lib + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>if not exist c:\harbour\lib\gtgui.lib echo c:\harbour\lib\gtwin.lib + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo c:\harbour\lib\hblang.lib + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo c:\harbour\lib\hbcpage.lib + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo c:\harbour\lib\hbmacro.lib + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo c:\harbour\lib\hbrdd.lib + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo c:\harbour\lib\rddntx.lib + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo c:\harbour\lib\rddcdx.lib + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo c:\harbour\lib\rddfpt.lib + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo c:\harbour\lib\hbcommon.lib + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo c:\harbour\lib\hbdebug.lib + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo c:\harbour\lib\hbpp.lib + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo c:\harbour\lib\hbhsx.lib + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo c:\harbour\lib\hbsix.lib + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo c:\harbour\lib\hbpcre.lib + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo cw32.lib + 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo import32.lib, 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>echo general.res 1>>b32.bc f:\Taras\_Win\kresin\huchet\source>ilink32 -Gn -aa -Tpe -s -v @b32.bc Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: Unresolved external '_hb_extIsNil' referenced from C:\HARBOUR\LIB\HWGUI.LIB|draw Error: Unresolved external '_hb_itemEqual' referenced from C:\HARBOUR\LIB\HWGUI.LIB|drawtext f:\Taras\_Win\kresin\huchet\source>del *.tds f:\Taras\_Win\kresin\huchet\source>del *.c f:\Taras\_Win\kresin\huchet\source>del *.map f:\Taras\_Win\kresin\huchet\source>del *.obj f:\Taras\_Win\kresin\huchet\source>del *.res f:\Taras\_Win\kresin\huchet\source>del b32.bc f:\Taras\_Win\kresin\huchet\source>copy general.exe ..\general.exe ЌҐ г¤ Ґвбп - ©вЁ гЄ § --л© д ©«. f:\Taras\_Win\kresin\huchet\source>del general.exe ============================ Использую только бинарники GWGUI.lib 689152 дата 02.11.2018 для BCC Harbour 3.2 lib для BCC от 3.0 (3.2 всс нет) но с 3.0 все то=же самое xHarbour не использую вовсе без графики HWGUI одну прогу свою собрал работает (расчет расхода бензина по дневнику считает расход за заправку-месяц-год-с начала эксплуатации авто) Чуть поправил...тут был Дима

taras56: Ошибка компиляции модуля commands.prg FUNCTION VvType( y, x ) Private c123 prdbf := "X" prsdf := prdelim := prcsv := " " @ y, x SAY "[ ] DBF" @ y+1, x SAY "[ ] SDF" @ y+2, x SAY "[ ] Delimited" @ y+3, x SAY "[ ] CSV" @ y, 23 GET prdbf PICTURE "X" VALID VldType( prdbf, 1, y, x ) @ y+1, x+1 GET prsdf PICTURE "X" VALID VldType( prsdf, 2, y, x ) @ y+2, x+1 GET prdelim PICTURE "X" VALID VldType( prdelim, 3, y, x ) @ y+2, x+14 SAY "With" GET cdelim PICTURE "X" WHEN prdelim == "X" @ y+3, x+1 GET prcsv PICTURE "X" VALID VldType( prcsv, 4, y, x ) @ y+3, x+9 SAY "delimiter" GET cDelim2 PICTURE "X" WHEN prcsv == "X" @ y+4, x+9 SAY "quote" GET cquo PICTURE "X" WHEN prcsv == "X" c123:=Padr(cDateF,10) @ y+5, x+1 SAY "date format" GET c123 PICTURE "XXXXXXXXXX" WHEN prcsv == "X" RETURN Nil //=== Ошибка сборки (не хватает библиотеки xhb.lib rem set path=c:\softools\mingw\bin @SET HRB_DIR=c:\harbour %HRB_DIR%\bin\harbour dbc /n /i%HRB_DIR%\include /dGTWVT >harbour.out %HRB_DIR%\bin\harbour move /n /i%HRB_DIR%\include >>harbour.out %HRB_DIR%\bin\harbour lang /n /i%HRB_DIR%\include >>harbour.out %HRB_DIR%\bin\harbour modistru /n /i%HRB_DIR%\include >>harbour.out %HRB_DIR%\bin\harbour commands /n /i%HRB_DIR%\include >>harbour.out %HRB_DIR%\bin\harbour view /n /i%HRB_DIR%\include >>harbour.out %HRB_DIR%\bin\harbour query /n /i%HRB_DIR%\include >>harbour.out %HRB_DIR%\bin\harbour pechdbc /n /i%HRB_DIR%\include >>harbour.out %HRB_DIR%\bin\harbour prcmenu /n /i%HRB_DIR%\include >>harbour.out %HRB_DIR%\bin\harbour errorsys /n /i%HRB_DIR%\include >>harbour.out %HRB_DIR%\bin\harbour procs1 /n /i%HRB_DIR%\include >>harbour.out %HRB_DIR%\bin\harbour procs3 /n /i%HRB_DIR%\include >>harbour.out %HRB_DIR%\bin\harbour procs5 /n /i%HRB_DIR%\include >>harbour.out %HRB_DIR%\bin\harbour procs7 /n /i%HRB_DIR%\include >>harbour.out %HRB_DIR%\bin\harbour procs8 /n /i%HRB_DIR%\include >>harbour.out %HRB_DIR%\bin\harbour procared /n /i%HRB_DIR%\include >>harbour.out %HRB_DIR%\bin\harbour procscri /n /i%HRB_DIR%\include /d__NO_HWGUI__ >>harbour.out rem The following line is for Borland C and gtwin rem bcc32 -edbch.exe -O2 -I%HRB_DIR%\include -L%HRB_DIR%\lib hbrtl.lib gtwin.lib hbvm.lib hbpp.lib hbcommon.lib hbmacro.lib hbrdd.lib rddntx.lib rddcdx.lib rddfpt.lib hbsix.lib hblang.lib hbcpage.lib hbct.lib dbc.c lang.c move.c modistru.c commands.c view.c query.c pechdbc.c prcmenu.c errorsys.c procs1.c procs3.c procs5.c procs7.c procs8.c procared.c procscri.c procs_c.c >>harbour.out rem The following line is for Borland C and gtwvt bcc32 -edbch.exe -O2 -tW -I%HRB_DIR%\include -L%HRB_DIR%\lib hbrtl.lib gtwvt.lib hbvm.lib hbpp.lib hbcommon.lib hbmacro.lib hbrdd.lib rddntx.lib rddcdx.lib rddfpt.lib hbsix.lib hblang.lib hbcpage.lib hbpcre.lib xhb.lib dbc.c lang.c move.c modistru.c commands.c view.c query.c pechdbc.c prcmenu.c errorsys.c procs1.c procs3.c procs5.c procs7.c procs8.c procared.c procscri.c procs_c.c >>harbour.out rem The following two lines are for Mingw and gtwvt rem gcc -Wall -mno-cygwin -c -I%HRB_DIR%/include dbc.c lang.c move.c modistru.c commands.c view.c query.c pechdbc.c prcmenu.c errorsys.c procs1.c procs3.c procs5.c procs7.c procs8.c procared.c procini.c procscri.c procs_c.c rem gcc -Wall -mwindows -odbch.exe dbc.o lang.o move.o modistru.o commands.o view.o query.o pechdbc.o prcmenu.o errorsys.o procs1.o procs3.o procs5.o procs7.o procs8.o procared.o procini.o procscri.o procs_c.o -Lc:\harbour/lib/win/mingw -Wl,--start-group -lhbvm -lhbrtl -lgtwvt -lhblang -lhbrdd -lhbmacro -lhbpp -lrddntx -lrddcdx -lrddfpt -lhbsix -lhbcommon -lhbcpage -lhbct -luser32 -lgdi32 -lwinspool -lcomctl32 -luuid -lkernel32 -lws2_32 -Wl,--end-group @del *.obj @del *.o @del dbc.c @del move.c @del lang.c @del modistru.c @del commands.c @del view.c @del query.c @del pechdbc.c @del prcmenu.c @del errorsys.c @del procs1.c @del procs3.c @del procs5.c @del procs7.c @del procs8.c @del procared.c @del procscri.c

alkresin: taras56 пишет: Использую только бинарники Т.е., вы используете готовые библиотеки от Harbour 3.0 и HwGUI (собранные на Harbour 3.2)? Так не получится. Если будете использовать Harbour 3.0, то соберите HwGUI из исходников под ним. Только придется удалить/закомментировать 2 последние функции в hwgui/source/winapi/drawtext.c ( GetFontsCallback и HB_FUNC( HWG_GETFONTSLIST ) ). Я это дело поправлю с помощью #if ... #endif. Если же будете пользоваться Harbour 3.2 и bcc, то скачайте исходники и соберите - это нетрудно, в случае чего поможем.

taras56: мой e-mail tarasow@orskmail.ru если есть весь комплект Harbour 3.2 вышли. так может в модуле drawtext.c закоментировать эти 2 функции и obj подключить во время сборки ? Собрал DBCH 3.10 в варианте GtWin пришлось добавить 3 библиотеки hbpcre.lib xhb.lib gtwvt.lib , а prg модуль procs.c есть (в исходниках только procs.c ? тоже нужен . не люблю навороченных командных файлов и условных трансляций так это почему ? Error: Unresolved external '_hb_extIsNil' referenced from C:\HARBOUR\LIB\HWGUI.LIB|window Error: Unresolved external '_hb_itemEqual' referenced from C:\HARBOUR\LIB\HWGUI.LIB|drawtext Прошу прощения 16 лет начальником отпахал.

taras56: Функции модуля drawtext.c GetFontsCallback и HB_FUNC( HWG_GETFONTSLIST ) закрыл #if defined( __XHARBOUR__) ... #endif но все равно прет Error: Unresolved external '_hb_extIsNil' referenced from C:\HARBOUR\LIB\HWGUI.LIB|window ????

alkresin: _hb_extIsNil - это из-за того, что вы используете библиотеки от разных версий Harbour. Выложил вот здесь Harbour 3.2? самый последний, собранный с bcc 5.5.1. С ним не будет ни _hb_extIsNil, ни _hb_itemEqual. а prg модуль procs.c есть (в исходниках только procs.c ? тоже нужен . Может, procs_c.c ? Это чистый C файл, prg такого нет.

taras56: 1.Заменил в Harbour папки bin include lib 2.перетранслировал и пересобрал hwgui Спас ! а можно ВСС 551 заменить на 582 ? какие при этом проблемы ? Буду осваивать HwGui когда-то alaska юзал но была сырая , разработчики не дружественны да и язык плохо знаю пришлось проект Расчет ЗП юзать на windows xp до смерти проекта 2013 год (ОАО РЖД полностью ушло на Sap r3)

alkresin: taras56 пишет: а можно ВСС 551 заменить на 582 ? какие при этом проблемы ? Когда-то пробовал. Насколько помню, проблем не было. Остался на 5.5.1, поскольку заметных преимуществ у 5.8.2 не нашел.

Andrey: alkresin пишет: Остался на 5.5.1, поскольку заметных преимуществ у 5.8.2 не нашел. Не совсем правы. Если предстоит подключать много картинок, то 5.5.1 не соберет ОДИН ресурсный файл больше 500 Кб. Нужно будет разбивать на части (что я и делаю). Если внутрь ехе-ника нужно подключить один ресурсный файл (1 картинка, вшить внутрь базу, dll, ехе-ник и т.д.) больше 400-500 Кб (не знаю от чего зависит), то тогда нужно переходить на 5.8.2. У меня есть своя программа куда я включаю чужой ехе-ник (драйвера) размером 17 Мб. Люблю программу состоящую из одного ехе-ника. Далее 5.5.1 допускает только ОДИН файл с несколькими размерами иконок (библиотека иконок), если будет несколько таких файлов, то будет тупая ошибка: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Fatal: Access violation. Link terminated. hbmk2[SpravED]: Error: Running linker. 2 Эта ошибка выдаётся ещё в том случае , если линковщик не может присоединить ресурсы (что в ресурсном файле). Нужно брать и комментировать каждую строку в ресурсном файле и смотреть какой ресурс (картинка, иконка и т.д.) не нравиться линковщику. Очень капризен к форматам картинок. Как делать по частям несколько ресурсных файлов, смотрите у Григория в МиниГуи - пример Tsb_Export(9.87).7z

taras56: Как заставить Harbour выдавать строку ошибки и тип ошибки ? Приходится транслировать Clipper 5.3b в окне DOSBOX 0.74 но и там засада: 369K available Compiling BENZIN.PRG guilib.ch(1060) Error C2085 Too many match markers in #translate or #command guilib.ch(1060) Fatal C3043 #include error используются #include "hwgui.ch" с применением команд графики

Dima: taras56 пишет: Как заставить Harbour выдавать строку ошибки и тип ошибки ? http://clipper.borda.ru/?1-4-0-00000446-000-0-0-1244791715

taras56: Поток в файл направляется но там нет конкретики номера строки где ошибка (+файл если в *.ch ошибка) и тип ошибка (в чем проблема) пример: (то что было в посте N 7 только из под клиппера) Harbour 3.2.0dev (r1811161533) Copyright (c) 1999-2018, https://harbour.github.io/ Compiling 'benzin.prg' and generating preprocessed output to 'benzin.ppo'... 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 100 3 errors No code generated.

alkresin: Andrey пишет: Не совсем правы. Охотно верю, я его всерьез не тестировал. А проблемы с файлом ресурсов не очень волнуют - я это не использую вообще, потому-что не кросс-платформенно. > Если внутрь ехе-ника нужно подключить один ресурсный файл (1 картинка, вшить внутрь базу, dll, ехе-ник и т.д.) А что, разве можно (базу, dll, exe )? Даже не подозревал.

alkresin: taras56 пишет: Как заставить Harbour выдавать строку ошибки и тип ошибки ? В первый раз слышу, что есть такая проблема. Прямо сейчас написал prg c ошибкой, запустил 'harbour a.prg' - ошибка с номером строки вышла на экран, harbour a.prg >a1.out 2>a2.out - вышла в файл a2.out. Кстати, рекомендую флаг /q при компиляции, чтобы не вылезали эти номера строк (100 200 ...).

Andrey: alkresin пишет: А что, разве можно (базу, dll, exe )? Даже не подозревал. Да можно ! Подготовить дистрибутив и пустые базы закатать в ехе-ник. Это на любителя. У меня есть своя программа куда я включаю чужой ехе-ник (драйвера) размером 17 Мб. Так как при установки нужны ключи запуска для этих драйверов, вот я и сделал кнопки: установить драйвера, удалить драйвера и инфо о драйвере.

taras56: alkresin Спас за подсказку. Вопрос ? Чего не хватает что в окнах были надписи Кириллица Пример: #include "guilib.ch" #include "dbstruct.ch" #include "hbclass.ch" #include "hxml.ch" REQUEST HB_CODEPAGE_RU866 REQUEST HB_CODEPAGE_RU1251 REQUEST HB_LANG_RUWIN ANNOUNCE HB_GTSYS REQUEST HB_GT_GUI_DEFAULT Function Main Public oMainWnd, oFont Public aCombo := {"Первый","Второй" } //======================================================== Set Date Format "dd/mm/yyyy" // ввод данных PREPARE FONT oFont NAME "Times New Roman" WIDTH 0 HEIGHT -13 a1:=hb_langSelect( "RUWIN" ) // язык Russian Windows-1251 a2:=HB_SETCODEPAGE("RU1251") // кодовая страница Russian Windows-1251 a3:=hb_cdpSelect( "RU1251" ) SET EPOCH TO 1960 a4:=HB_TRANSLATE("Заголовок главного окна "+a1+" "+a2+" "+a3 , "RU866", "RU1251" ) INIT WINDOW oMainWnd TITLE a4 ; FONT oFont ; ON EXIT {||hwg_MsgYesNo("Завершить программу ?")} @ 20,10 EDITBOX "Привет !" SIZE 200,30 @ 270,10 COMBOBOX aCombo SIZE 100, 150 TOOLTIP "Combobox" @ 220,400 BUTTON "Завершить" SIZE 180,60 ON CLICK {||oMainWnd:Close()} MENU OF oMainWnd MENUITEM "Кнопка 1" ACTION hwg_MsgInfo("Кнопка 1 выполнить") ENDMENU ACTIVATE WINDOW oMainWnd CLOSE ALL Return

AndreyZh: taras56 пишет: Вопрос ? Чего не хватает что в окнах были надписи Кириллица Ни каких назначений "языков" не нужно, а достаточно, что-бы исходник был в Win кодировке

Dima: taras56 пишет: HB_TRANSLATE("Заголовок главного окна "+a1+" "+a2+" "+a3 , "RU866", "RU1251" ) А для чего HB_TRANSLATE ? Кодировка исходника в RU866 ? Сделай в ANSI.

taras56: Для windows разработка графических программ с hwgui я использую Notepad++ 7.5.9 кодировка Кириллица Windows 1251 это правильно ? моя прога уже отображает Кириллицу кроме виджета: @ 20,10 EDITBOX "Привет !!" SIZE 200,40 последняя версия исходников: #include "guilib.ch" #include "dbstruct.ch" #include "hbclass.ch" #include "hxml.ch" REQUEST HB_CODEPAGE_RU866 REQUEST HB_CODEPAGE_RU1251 REQUEST HB_LANG_RUWIN ANNOUNCE HB_GTSYS REQUEST HB_GT_GUI_DEFAULT Function Main Public oMainWnd, oFont Public aCombo := {"Первый","Второй" } //======================================================== Set Date Format "dd/mm/yyyy" // ввод данных PREPARE FONT oFont NAME "Times New Roman" WIDTH 0 HEIGHT -13 a1:=hb_langSelect( "RUWIN" ) // язык Russian Windows-1251 a2:=HB_SETCODEPAGE("RU1251") // кодовая страница Russian Windows-1251 a3:=hb_cdpSelect( "RU1251" ) SET EPOCH TO 1960 INIT WINDOW oMainWnd TITLE " Главное окно"+a1+a2+A3 ; FONT oFont ; ON EXIT {||hwg_MsgYesNo("Завершить программу ?")} @ 20,10 EDITBOX "Привет !!" SIZE 200,40 @ 270,10 COMBOBOX aCombo SIZE 100, 150 TOOLTIP "Combobox" @ 220,400 BUTTON "Завершить" SIZE 180,60 ON CLICK {||oMainWnd:Close()} MENU OF oMainWnd MENUITEM "Кнопка 1" ACTION hwg_MsgInfo("Кнопка 1 выполнить") ENDMENU ACTIVATE WINDOW oMainWnd CLOSE ALL Return

alkresin: Откомпилировал ваш пример - все правильно отображает, включая editbox. Кстати, HB_SETCODEPAGE() не нужен, вместо него уже давно используется hb_cdpSelect(). Странно, что при сборке вы не получаете ошибку об undefined reference. Какой у вас сейчас Harbour?

taras56: Копия экрана . https://i.postimg.cc/zG4KGSq3/image.png Harboour 3.2 взял по вашей ссылке Harbour 3.2.0dev (r1811161533) Copyright (c) 1999-2018, https://harbour.github.io/ с Ним построил заново библиотеки hwgui Про редактор исходников. Какой используете ? раньше под Dos и Windows 98,xp использовал МЕ Еще вопрос прогу надо смотреть в библах ссылки у меня есть но под только DOS

alkresin: taras56 пишет: Harboour 3.2 взял по вашей ссылке Тогда тем более настораживает, что вы не получили undefined reference на hb_setcodepage. Мне пришлось эту строку удалить, иначе пример не компилировался. Похоже, что у вас где-то к 3.2 примешались библиотеки от 3.0. Может, из-за этого и с editbox проблема. Про редактор исходников. Какой используете ? Far с плагинами для подсветки синтаксиса, списка функций и пр. прогу надо смотреть в библах В смысле, просматиривать .lib - файлы? Мне достаточно простого просмотровщика Far'а по F3 - нужное слово можно найти, а большего и не надо.

taras56: папок Bin Include lib (удалил все прежде) туда дописал include hwgui 2.21 b6 и построенные библиотеки c исходников Gwgui 2.21 b6 переписал их в c:\harboour\lib //-------------------------------------------------- повторил все еще раз программа test не идет editbox список библиотек Содержимое папки c:\Harbour\lib 05.12.2018 13:03 <DIR> . 05.12.2018 13:03 <DIR> .. 05.12.2018 13:03 0 1 05.12.2018 12:56 <DIR> 3rd 03.12.2018 13:23 67 072 bz2.lib 03.12.2018 14:14 134 656 expat.lib 03.12.2018 13:22 4 608 gtcgi.lib 03.12.2018 13:22 7 680 gtgui.lib 03.12.2018 13:22 10 240 gtpca.lib 03.12.2018 13:22 8 704 gtstd.lib 03.12.2018 13:22 20 480 gtwin.lib 03.12.2018 14:14 52 224 gtwvg-bcc.lib 03.12.2018 14:14 504 320 gtwvg.lib 03.12.2018 13:22 59 904 gtwvt.lib 03.12.2018 13:22 180 068 harbour-32-bcc.lib 05.12.2018 12:58 25 600 hbactivex.lib 03.12.2018 14:14 1 536 hbamf-bcc.lib 03.12.2018 14:14 30 720 hbamf.lib 03.12.2018 14:14 22 016 hbblat.lib 03.12.2018 14:14 8 704 hbblink-bcc.lib 03.12.2018 14:14 16 896 hbblink.lib 03.12.2018 14:14 1 536 hbbz2-bcc.lib 03.12.2018 14:14 10 752 hbbz2.lib 03.12.2018 14:14 1 024 hbbz2io-bcc.lib 03.12.2018 14:14 11 264 hbbz2io.lib 03.12.2018 14:14 1 024 hbcomio-bcc.lib 03.12.2018 14:14 7 168 hbcomio.lib 03.12.2018 14:14 1 536 hbcomm-bcc.lib 03.12.2018 14:14 6 656 hbcomm.lib 03.12.2018 13:19 134 144 hbcommon.lib 03.12.2018 13:22 719 360 hbcpage.lib 03.12.2018 13:19 327 680 hbcplr.lib 03.12.2018 13:23 47 104 hbct-bcc.lib 03.12.2018 13:23 337 920 hbct.lib 03.12.2018 13:22 196 096 hbdebug.lib 03.12.2018 14:14 34 304 hbexpat.lib 03.12.2018 13:22 101 376 hbextern.lib 03.12.2018 13:23 1 024 hbformat-bcc.lib 03.12.2018 13:23 55 296 hbformat.lib 03.12.2018 14:14 3 584 hbfoxpro-bcc.lib 03.12.2018 14:14 17 920 hbfoxpro.lib 03.12.2018 13:23 2 560 hbfship-bcc.lib 03.12.2018 13:23 25 088 hbfship.lib 03.12.2018 14:14 3 584 hbgt-bcc.lib 03.12.2018 14:14 30 208 hbgt.lib 03.12.2018 14:14 1 024 hbgzio-bcc.lib 03.12.2018 14:14 8 192 hbgzio.lib 03.12.2018 14:14 40 448 hbhpdf-bcc.lib 03.12.2018 14:14 107 008 hbhpdf.lib 03.12.2018 13:22 19 968 hbhsx.lib 03.12.2018 14:14 6 656 hbhttpd-bcc.lib 03.12.2018 14:14 60 928 hbhttpd.lib 03.12.2018 13:22 177 152 hblang.lib 03.12.2018 14:14 1 536 hblzf-bcc.lib 03.12.2018 14:14 5 632 hblzf.lib 03.12.2018 13:22 66 048 hbmacro.lib 03.12.2018 13:21 5 120 hbmaindllh.lib 03.12.2018 13:21 25 600 hbmaindllp.lib 03.12.2018 13:21 2 560 hbmainstd.lib 03.12.2018 13:21 5 632 hbmainwin.lib 03.12.2018 14:14 1 024 hbmemio-bcc.lib 03.12.2018 14:14 13 824 hbmemio.lib 03.12.2018 14:14 15 360 hbmisc-bcc.lib 03.12.2018 14:14 109 056 hbmisc.lib 03.12.2018 14:14 2 048 hbmlzo-bcc.lib 03.12.2018 14:14 6 144 hbmlzo.lib 03.12.2018 14:14 9 728 hbmxml-bcc.lib 03.12.2018 14:14 28 672 hbmxml.lib 03.12.2018 13:23 4 096 hbmzip-bcc.lib 03.12.2018 13:23 23 552 hbmzip.lib 03.12.2018 13:23 4 608 hbnetio-bcc.lib 03.12.2018 13:23 50 688 hbnetio.lib 03.12.2018 14:14 26 624 hbnf-bcc.lib 03.12.2018 14:14 340 480 hbnf.lib 03.12.2018 13:19 7 680 hbnortl.lib 03.12.2018 13:22 6 656 hbnulrdd.lib 03.12.2018 14:14 5 120 hbodbc-bcc.lib 03.12.2018 14:14 34 304 hbodbc.lib 03.12.2018 14:14 2 048 hboslib-bcc.lib 03.12.2018 14:14 6 144 hboslib.lib 03.12.2018 13:19 262 656 hbpcre.lib 03.12.2018 14:14 1 536 hbpipeio-bcc.lib 03.12.2018 14:14 6 144 hbpipeio.lib 03.12.2018 13:19 259 072 hbpp.lib 03.12.2018 13:22 233 984 hbrdd.lib 03.12.2018 13:22 2 276 864 hbrtl.lib 03.12.2018 13:22 53 248 hbsix.lib 03.12.2018 14:14 1 536 hbsms-bcc.lib 03.12.2018 14:14 8 192 hbsms.lib 03.12.2018 14:14 15 872 hbsqlit3-bcc.lib 03.12.2018 14:14 50 688 hbsqlit3.lib 03.12.2018 14:14 1 024 hbtcpio-bcc.lib 03.12.2018 14:14 6 656 hbtcpio.lib 03.12.2018 14:14 1 024 hbtest-bcc.lib 03.12.2018 14:14 8 192 hbtest.lib 03.12.2018 14:14 3 584 hbtinymt-bcc.lib 03.12.2018 14:14 12 800 hbtinymt.lib 03.12.2018 13:23 7 680 hbtip-bcc.lib 03.12.2018 13:23 210 432 hbtip.lib 03.12.2018 14:14 4 608 hbtpathy-bcc.lib 03.12.2018 14:14 15 360 hbtpathy.lib 03.12.2018 13:22 46 080 hbuddall.lib 03.12.2018 13:22 46 080 hbusrrdd.lib 03.12.2018 13:21 444 416 hbvm.lib 03.12.2018 13:21 547 840 hbvmmt.lib 03.12.2018 13:23 69 632 hbwin-bcc.lib 03.12.2018 13:23 342 016 hbwin.lib 03.12.2018 14:14 2 560 hbxdiff-bcc.lib 03.12.2018 14:14 10 240 hbxdiff.lib 05.12.2018 12:57 14 336 hbxml.lib 03.12.2018 13:23 6 144 hbxpp-bcc.lib 03.12.2018 13:23 65 024 hbxpp.lib 03.12.2018 14:14 5 632 hbzebra-bcc.lib 03.12.2018 14:14 68 608 hbzebra.lib 03.12.2018 14:14 3 072 hbziparc-bcc.lib 03.12.2018 14:14 12 800 hbziparc.lib 03.12.2018 13:19 76 800 hbzlib.lib 05.12.2018 12:57 25 600 hwgdebug.lib 05.12.2018 12:57 689 152 hwgui.lib 05.12.2018 12:57 689 152 hwguimt.lib 05.12.2018 12:58 173 056 hwg_extctrl.lib 05.12.2018 12:58 12 288 hwg_qhtm.lib 03.12.2018 13:19 254 464 jpeg.lib 03.12.2018 13:23 783 872 libhpdf.lib 03.12.2018 13:23 4 608 lzf.lib 03.12.2018 13:23 5 632 minilzo.lib 03.12.2018 13:23 31 744 minizip.lib 03.12.2018 13:23 46 592 mxml.lib 03.12.2018 13:19 236 032 png.lib 05.12.2018 12:57 88 576 procmisc.lib 03.12.2018 14:14 2 048 rddbm-bcc.lib 03.12.2018 14:14 14 848 rddbm.lib 03.12.2018 13:22 138 240 rddcdx.lib 03.12.2018 13:22 40 960 rddfpt.lib 03.12.2018 13:22 58 368 rddnsx.lib 03.12.2018 13:22 54 784 rddntx.lib 03.12.2018 13:23 1 024 rddsql-bcc.lib 03.12.2018 13:23 24 576 rddsql.lib 03.12.2018 14:14 1 024 sddodbc-bcc.lib 03.12.2018 14:14 13 824 sddodbc.lib 03.12.2018 14:14 1 024 sddsqlt3-bcc.lib 03.12.2018 14:14 8 704 sddsqlt3.lib 03.12.2018 13:23 509 952 sqlite3.lib 03.12.2018 13:19 334 336 tiff.lib 03.12.2018 13:23 5 632 tinymt.lib 03.12.2018 13:23 51 712 xdiff.lib 03.12.2018 14:14 60 416 xhb-bcc.lib 03.12.2018 14:14 561 664 xhb.lib 145 файлов 14 591 332 байт 3 папок 51 502 538 752 байт свободно

alkresin: Ну а hb_setcodepage по-прежнему на месте и не вызывает ошибку при сборке? туда дописал include hwgui 2.21 b6 и построенные библиотеки c исходников Gwgui 2.21 b6 переписал их в c:\harboour\lib В этом нет необходимости, достаточно в bat-нике для сборки указать путь к HwGUI заголовкам и библиотекам, как, собственно, и сделано в samples/bld.bat

taras56: Файл по препроцессора: #line 8 "test.prg" EXTERNAL HB_CODEPAGE_RU866 EXTERNAL HB_CODEPAGE_RU1251 EXTERNAL HB_LANG_RUWIN ANNOUNCE HB_GTSYS EXTERNAL HB_GT_GUI_DEFAULT Function Main Public oMainWnd, oFont Public aCombo := {"Первый","Второй" } Set( 4, "dd/mm/yyyy" ) oFont := HFont():Add( "Times New Roman", 0, -13,,, iif( .F.,1,0 ), iif( .F.,1,0 ), iif( .F.,1,0 ) ) a1:=hb_langSelect( "RUWIN" ) a2:=HB_SETCODEPAGE("RU1251") a3:=hb_cdpSelect( "RU1251" ) Set( 5, 1960 ) oMainWnd := HMainWindow():New( Iif(.F.,2,1),,,,,,,," Главное окно"+a1+a2+A3,,,oFont,,{||hwg_MsgYesNo("Завершить программу ?")},,,,,,,,,,,, ) HEdit():New(,," Привет !!",,,20,10,200, 40,,,,,,,,,,.F.,,.F.,, ) HComboBox():New(,,,,,270,10,100, 150,aCombo,,,,,,"Combobox", .F.,.F.,,,,, ) HButton():New(,,,220,400,180, 60,"Завершить",,,,,{||oMainWnd:Close()},,, ) Hwg_BeginMenu( oMainWnd,, ) Hwg_DefineMenuItem( "Кнопка 1",, {|| hwg_MsgInfo("Кнопка 1 выполнить")}, .F.,,,, .F., .F. ) Hwg_EndMenu() oMainWnd:Activate( !.F., .F., .F., .F., ) dbCloseAll() ; dbSelectArea( "1" ) ; __SetFormat( NIL ) Return

alkresin: У вас, наверное, xhb.lib в сборочном батнике сидит? Это он поддерживает hb_setcodepage. Ничего криминального в этом, конечно, нет, но попробуйте все же использовать для сборки samples/bld.bat без добавления каких-либо других библиотек.

taras56: библиотеку убрал xhb.lib и HB_SETCODEPAGE("RU1251") обращение убрал программа строится. bld.bat работает (не понятно зачем файлы *.rc *.res и как они связаны с файлом WindowsXP.Manifest ) но , с виджетом editbox то-же самое (нет русского) хотя модуль учет ВАШ строится и с языками все норма. не пойму в чем дело

alkresin: taras56 пишет: не понятно зачем файлы *.rc *.res и как они связаны с файлом WindowsXP.Manifest Это так называемые файлы ресурсов, а WindowsXP.Manifest желателен, чтобы работали стили Windows и все элементы выглядели, как и в др. Windows программах с виджетом editbox то-же самое (нет русского) Чудеса... Ну раз такая магия, я бы попробовал вместо того текста что-нибудь другое туда ввести. Кстати, русские буквы вводятся в этот Editbox?

taras56: Спас alkresin ! Все заработало как надо. Причина не понятна . или текст перебил или из-за предыдущей многострочной команды. Теперь понял для чего Вирус-червь Морриса пересылал по узлам исходник , уже на узле транслировал и строил прогу и ее выполнял переползая на другие узлы.

taras56: Не строится. ссылка на функцию не разрешается hwg_GetFontsList() в описании есть (без ограничение по ОС) , нет в библиотеках ? Нужен исходник примера редактирование файла DBF в графике ?

alkresin: taras56 пишет: ссылка на функцию не разрешается hwg_GetFontsList() Вы ее, наверное, закомментировали, когда пробовали Harbour 3.0. Раскомментируйте, она в drawtext.c Нужен исходник примера редактирование файла DBF в графике ? Так и samples/dbview умеет редактировать dbf, и utils/dbc.

taras56: === Фрагмент исходника (не трогал) drawtext.c 2.21 b6 от транслирован и есть в библиотеке но в исходнике условная компиляция я еще не очень разбираюсь правильно ли написано : ........................ HB_RETHANDLE( f ); } #if defined( __XHARBOUR__) int CALLBACK GetFontsCallback( ENUMLOGFONTEX *lpelfe, NEWTEXTMETRICEX *lpntme, DWORD FontType, LPARAM lParam ) { HB_SYMBOL_UNUSED( lpntme ); HB_SYMBOL_UNUSED( FontType ); HB_SYMBOL_UNUSED( lParam ); HB_ITEMPUTSTR( pFontsItem, (LPCTSTR)lpelfe->elfFullName ); if( !hb_itemEqual( pFontsItem, pFontsItemLast ) ) { HB_ITEMPUTSTR( pFontsItemLast, (LPCTSTR)lpelfe->elfFullName ); hb_arrayAdd( aFontsList, pFontsItem ); } return 1; } HB_FUNC( HWG_GETFONTSLIST ) { LOGFONT lf; HWND hwnd=GetDesktopWindow(); HDC hDC = GetDC( hwnd ); memset(&lf, 0, sizeof(lf)); lf.lfCharSet = DEFAULT_CHARSET; aFontsList = hb_itemArrayNew( 0 ); pFontsItem = hb_itemPutC( NULL, "" ); pFontsItemLast = hb_itemPutC( NULL, "" ); EnumFontFamiliesEx( hDC, &lf, (FONTENUMPROC)GetFontsCallback, 0, 0 ); hb_itemRelease( pFontsItem ); hb_itemRelease( pFontsItemLast ); hb_itemReturnRelease( aFontsList ); } #endif

alkresin: taras56 пишет: правильно ли написано : ........................ HB_RETHANDLE( f ); } #if defined( __XHARBOUR__) Нет. Должно быть: #if __HARBOUR__ - 0 > 0x030000 или вообще уберите условную компиляцию.

alkresin: Большое обновление документации по классам. Все переменные помечены как RW (можно устанавливать и читать) и R (только для чтения) и упорядочены по этому признаку. Непомеченные не должны использоваться в программах. Пропущены только несколько классов (HListbox, HGrid, HRebar, HToolbar, HPager), которые я не использую.

alkresin: Вышел новый релиз HwGUI: 2.22 [+] HGraph: :aColors, :aPens added to draw graphs with different colors. [+] hwg_SaveBitmap( cFileName, hBitmap ) function added. [+] New class added, HPanelHea, and appropiate command ADD HEADER PANEL as a customizable alternative for a window title bar. [+] HPanel: new variable added :lDragWin. If .t., dragging the panel you move the window. [+] New cross-platform window styles added: WND_NOTITLE, WND_NOSYSMENU, WND_NOSIZEBOX. [+] HSTYLE clause added to the @ ... SPLITTER command. [+] :lResizable logical variable added to HColumn. [+] :oStyleFoot, :oStyleCell added to HBrowse and HColumn. [*] :FindControl() can now look for an :objname, passed as a first parameter. [*] HBrowse: if you set the negative column length, it is interpreted as a width in pixels. [*] Designer: added support for Anchor, HStyle, AStyles. [!] Fixes, corrections, Gtk?Winapi versions compatibility improvements.

taras56: Создаю главное окно (в нем нет виджетов) Создаю окно диалога в нем виджет browse по БД в нем не работает клава (мышь работает , после ее исполmзования и клава начинает работать) в чем проблема ?

taras56: https://yadi.sk/d/Y7aP-SMZKUQiqQ на ваш суд Программа учета анализа расхода бензина на авто использую ее с 1994 года проблема одна нужно записывать дату, километры и количество залитого бензина в записную книжку вгоняем по по мере необходимости в журнал на ПК считаем и анализируем. старт с любого места. может кому сгодится. + вопрос почему на прогу . exe собранную BCC ругается AVG FREE ?

alkresin: taras56 пишет: виджет browse по БД в нем не работает клава (мышь работает , после ее исполmзования и клава начинает работать) Потому что в фокусе другой объект, не browse. Как только щелкаете по нему мышкой. он получает фокус ввода. Чтобы browse получал фокус автоматически, надо установить его переменную lInFocus. oBrw:lInFocus := .t.

alkresin: Выпущен новый релиз HwGUI, 2.22 build 2. Кое-какие изменения в Дизайнере - добавлены недостающие контролы (splitter, top panel, status panel, static link), добавлена возможность установить сетку (grid) - тогда все элементы будут размещаться и перемещаться строго по ней. Начата работа по переходу с gtk2 на gtk3, хотя "переход", наверное, не самое подходящее слово. От gtk2 отказываться я не собираюсь, можно будет собрать HwGUI с любой из этих версий. Уже можно собрать программу под gtk3 и она будет работать, но пока остаются некоторые проблемы, которые не позволяют это дело реально использовать.

taras56: Хорошо бы переменные в окнах отсортировать по алфавиту.

taras56: Обьект окно , виджет ... не могу понять вожножно ли это и как сделать.

ММК: taras56 пишет: Программа учета анализа расхода бензина на авто использую ее с 1994 года проблема одна нужно записывать дату, километры и количество залитого бензина в записную книжку вгоняем по по мере необходимости в журнал на ПК считаем и анализируем. старт с любого места. А выложите исходник, если не трудно , интересно глянуть :)

alkresin: taras56 пишет: Хорошо бы переменные в окнах отсортировать по алфавиту. Ок. Повешу сортировку на щелчек по заголовку.

alkresin: taras56 пишет: Обьект окно , виджет ... не могу понять вожножно ли это и как сделать. Есть такая функция в Харборе: oNew := __objClone( oSource ) Сам не пробовал, но, наверное, работает. Кстати, полный перечень __obj... функций см. на http://www.kresin.ru/hrbfaq_3.html#Doc3 - в конце раздела "Классы и объекты".

Alex_Cher: alkresin пишет: Кстати, полный перечень __obj... функций см. на http://www.kresin.ru/hrbfaq_3.html#Doc3 Мужики, дайте ссылочку где есть полный перечень всех функций в Харборе, главное чтобы с описанием.

alkresin: Абсолютно полных списков с описаниями нет. Существуют списки функций, например, https://harbour.github.io/doc/, http://www.fivetechsoft.com/harbour-docs/harbour.html, http://www.elektrosoft.it/tutorials/Harbour-Reference-Guide/harbour-reference-guide.htm, сгенерированные из комментариев в исходниках. Они примерно одинаковые, но третий из них включает еще и функции из contrib-библиотек. Они почти полные, правда, насколько "почти", как много там пропущено, не знаю. Документация на моем сайте на полноту не претендует. То, что там есть - это то, чем я интересовался в процессе работы. Описания взяты из всех доступных источников (исходники, Changelog, и др.), что-то написано по результатам собственных испытаний. Кое-что, например, набор hb_vf... функций отсутствует в вышеназванных списках. Наиболее полный (может, даже, абсолютно полный), но без описаний, можно найти в harbour/include/harbour.hbx - он, как я понимаю, служит для создания harbour.dll.

taras56: https://yadi.sk/d/FmReMJ64ySzpag последняя версия программы расчета расхода-анализа топлива (графики добавились) с основным исходником (остальное в библиотеке) По просьбе MMK

taras56: Да работает с рекурсией o,a ..... Спас alkresin !

taras56: Модуль HBrowse.prg строка 1911 Было ( ::alias ) -> ( Eval( oColumn:block,::varbuf,Self,fipos ) ) вставка: if Dbinfo(DBI_ISREADONLY) = .f. ( ::alias ) -> ( Eval( oColumn:block,::varbuf,Self,fipos ) ) Else hwg_Msgstop( "File ReadOnly" ) Endif Это исключит ошибку 9001 Fatel виджета Browse при изменения поля БД она выходит и в утилите DBCHW

alkresin: taras56 пишет: if Dbinfo(DBI_ISREADONLY) = .f. Да, пожалуй, стоит вставить, или вообще запретить редактирование ячейки.

taras56: в Области WorkArea F6 Добавить список индексов 1..15 , по каждому : Номер области(*область активна), Имя ,Имя-файла Dos, ключевое выражение

ММК: taras56 пишет: последняя версия программы расчета расхода-анализа топлива (графики добавились) с основным исходником (остальное в библиотеке) По просьбе MMK Большое спасибо! Просто любопытно было сравнить с FWH. :)

taras56: Получена из утилиты DBCHW #include "hwgui.ch" #include "windows.ch" #include "guilib.ch" #include "dbstruct.ch" #include "hbclass.ch" #include "hxml.ch" Function DlgWait( cTitle ) Local oDlg //-------------------------------- INIT DIALOG oDlg TITLE cTitle ; AT 0,0 ; SIZE 100,50 STYLE DS_CENTER @ 10, 20 SAY "Ждите, пожалуста..." SIZE 80,22 ACTIVATE DIALOG oDlg NOMODAL Return oDlg //------------- // //oMsg:=DlgWait ("Идет расчет") // . . . // расчет // . . . //oMsg:Close()

alkresin: Лучше вот так (в dbchw.prg я исправлю): [pre2]INIT DIALOG oDlg TITLE cTitle AT 0,0 SIZE 200,50 @ 10, 20 SAY "Ждите, пожалуста..." SIZE 180,22 ACTIVATE DIALOG oDlg NOMODAL CENTER [/pre2]

taras56: Вот функция процентный индикатор процесса (работает) Что тут не так ? (это у меня мондраж линейного программирования) Function DlgProgress(cTitle) Local oBar := HProgressBar():NewBox( cTitle, ; //1 ,; //2 nLeft ,; //3 nTop ,; //4 nWidth ,; //5 nHeight 10,; //6 maxPos 100,; //7 nRange ,; //8 bExit .t. ) //9 % Return oBar //=============================================== // oBar:=DlgProgress("Заголовок") // ..... // oBar:Step() // ..... // oBar:Close()

alkresin: taras56 пишет: Вот функция процентный индикатор процесса (работает) Что тут не так ? Так она работает, или нет? В чем проблема?

taras56: пост 1148 Валится программа при закрытие окна (без файлов диагностики) (не факт что в этом проблема) как найти в чем дело ? есть главное окно - потом диалоговое - потом вот это текст ниже (между ними используется функция DlgProgress) Вот ее текст: Function lView(cFile) // Просморт текстового файла Local oModDlg,oBrowse,oPanel,oStyleNormal,oSay1 Private aStr:={},lEdit:=.f. //--------------------------------------------------------------- aStr:=File_str(cFile) if Len(aStr) != 0 oStyleNormal := HStyle():New( {0x7b7680,0x5b5760}, 1 ) INIT DIALOG oModDlg CLIPPER NOEXIT TITLE "Текстовый файл "+Cfile+" (просмотр)" AT 0,0 SIZE 972,668 ON EXIT {|| oModDlg:Close() } MENU OF oModDlg MENU TITLE " Файл " MENUITEM "Сохранить" ACTION Save_edit(cfile,aStr) ACCELERATOR FALT,Asc("O") MENUITEM "-" ACTION dummy() ACCELERATOR FALT,Asc("O") MENUITEM "Выход" ACTION {|| oModDlg:Close() } ENDMENU ENDMENU @ 0,0 BROWSE oBrowse ARRAY SIZE 970,620 ON SIZE {|o,x,y|o:Move(,,x-1,y-28)} // STYLE WS_VSCROLL + WS_HSCROLL @ 2,625 PANEL oPanel SIZE 164,24 ON SIZE {|o,x,y|o:Move(0,y-26,x-1,y-8)} HSTYLE oStyleNormal @ 2,2 SAY oSay1 CAPTION "" OF oPanel SIZE 156,20 // FONT oFont // oBrowse:bScrollPos := {|o,n,lEof,nPos|hwg_VScrollPos(o,n,lEof,nPos)} oBrowse:InitBrw( 1 ) // массив oBrowse:bEnter := {|o,n| Ed_Str(o,n)} hwg_CREATEARLIST( oBrowse,aStr ) OBrowse:bLineOut:={ | oBrw | info_stra(oBrw,oSay1) } oBrowse:aColumns[1]:length := aMax(aStr) oBrowse:lDispHead=.f. // нет заголовков oBrowse:lDispSep:=.f. // нет разделителя oBrowse:lInFocus := .t. ACTIVATE DIALOG oModDlg endif // dial Return nil

alkresin: taras56 пишет: Валится программа при закрытие окна (без файлов диагностики) hbout.log (или hb_out.log) тоже нет? потом вот это текст ниже Ну, по этому тексту трудно о чем-то судить. Разве что MENUITEM "-" ACTION dummy() выглядит немного странно, тем более, с акселератором, тем же, что в предыдущей строке - но это не должно вызывать падение программы. Я в таких непонятных случаях убираю по-частям фрагменты программы, пока не натолкнусь на тот, что вызывает ошибку.

taras56: hbout.log нет окна ошибки тоже нет. Валится на ON EXIT {|| oModDlg:Close() } окна диалога или "Выход" ACTION {|| oModDlg:Close() } кнопка если убрать кодовый блок работает. Я понимаю что какая-то проблемма с закрытием виджетов окна Диалога. может как-то с исходником отладчиком трассирнуть ? dummy() это пустая функции заглушка

alkresin: taras56 пишет: Валится на ON EXIT {|| oModDlg:Close() } окна диалога О, я сразу не заметил. Вы на on exit, процедуру, которая выпоняется внутри oModDlg:Close(), повесили еще один вызов oModDlg:Close() - получается рекурсия, переполнение стека и вылет.

taras56: В окне диалога есть меню ..... MENU TITLE " Поле " MENUITEM "Читать"+chr(9)+"F4" ACTION xPole:=read_pole(oBrw) ACCELERATOR 0,VK_F4 MENUITEM "Писать"+chr(9)+"F5" ACTION wri_pole(oBrw,xPole) ACCELERATOR 0,VK_F5 MENUITEM "Коды(с)" ACTION off_pole(oBrw) ENDMENU .... есть Browse виджет в нем почему не работает клавиша F4 и F5 в редакторе Editor пример каков механизм управления ? по посту 1150 понял , т е там моя функции (окна не трогать)

alkresin: Акселераторы работают только для меню главного окна. Для диалогов надо использовать более универсальный механизм SET KEY: SET KEY 0,VK_F4 OF oModDlg TO (xPole:=read_pole(oBrw)) - в диалоге oModDlg SET KEY GLOBAL 0,VK_F4 TO (...) - в любом месте приложения

taras56: Главное окно с меню ..... MENUITEM "Редактировать"+Chr(9)+"Alt-P" ACTION {|| OpenFile() , dbedit2({}),dindex()} ACCELERATOR FALT,Asc("P") .... как и где нажать ALT-P за пользователя , чтоб при 1 запуске программы выполнился пунк меню. за 1151 Спас !!! работает F3,F4, F5,кроме ALT-X ???

alkresin: taras56 пишет: как и где нажать ALT-P за пользователя , чтоб при 1 запуске программы выполнился пунк меню. Зачем нажимать? Просто поместите вызов нужной функции в on activate: ACTIVATE WINDOW oMainWindow ON ACTIVATE {||OpenFile(),...} работает F3,F4, F5,кроме ALT-X ??? Alt-x, наверное, не будет работать, его система себе забирает, так же как Alt-F4, например.

taras56: Все исходники переписал с https://github.com/vszakats/harbour-core/tree/master/contrib/hbtip Запускаю HBMK2.exe hbtip.hbx но трансляция и сборка не идет не хватает в модуле client.prg #include "hbssl.ch" #include "hbssl.hbx" на нем трансляция останавливается

alkresin: taras56 пишет: Библиотека HBTIP как собрать ? Это не сюда, а в раздел [x]Harbour отдельной темой. Я форк от vszakats, так называемый 3.4, не использую.

taras56: alkresin... пишет : Это не сюда, а в раздел [x]Harbour отдельной темой. не нашел ссылку если можно .

Dima: taras56 пишет: не нашел ссылку если можно . Раздел живёт тут

taras56: После ввода строки поиска и строки замены кириллица отображается не правильно (ввод норма) пытался пересобрать исходников с сайта 2013 год не находит 4 функции Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: Unresolved external '_HB_FUN_SETARRAY' Error: Unresolved external '_HB_FUN_WRLOG' Error: Unresolved external '_HB_FUN_DIREVAL' Error: Unresolved external '_HB_FUN_FSNR' Хотел быстро тексты в исходниках поменять.

alkresin: taras56 пишет: После ввода строки поиска и строки замены кириллица отображается не правильно Хм... Действительно. Там в исходниках надо, наверное, codepage поставить. Кстати, хоть отображается неверно, но заменяет правильно. не находит 4 функции Эти функции определены в snr2.prg.

taras56: Написал функцию по распечатке в файл обьекту Класс работает на главном окне , шрифты на класу HPrinter прога валится : Error BASE/41 Scope violation (hidden): HPRINTER:MEMDC Called from ->HPRINTER:MEMDC(0) Called from ->__OBJSENDMSG(0) Called from ../../../objfunc.prg->__OBJGETVALUELIST(0) Called from _objtxt.prg->_OBJTXT(16) Called from test.prg->X123(185) Called from test.prg->(b)MAIN(44) Called from source\winapi\hwindow.prg->ONCOMMAND(622) Called from source\winapi\hwindow.prg->(b)HMAINWINDOW(288) Called from source\winapi\hwindow.prg->HMAINWINDOW:ONEVENT(394) Called from ->HWG_ACTIVATEMAINWINDOW(0) Called from source\winapi\hwindow.prg->HMAINWINDOW:ACTIVATE(383) Called from test.prg->MAIN(48) HWGUI 2.22 Build 2 Date:30/01/2019 Time:12:31:15 Получается на переменной типа hidden как обойти эту ситуацию ?

alkresin: Например так: 1) получаем список переменных класса с помощью __objGetMsgList() 2) получаем в цикле значение каждой переменной, причем __objSendMsg() оборачиваем в BEGIN SEQUENCE ... END SEQUENCE.

taras56: Все получилось. Написал 2 функции для отладки обьект(нет рекурсии) и массив(рекурсия) пишут состояние обьекта в текстовый файл с сортировкой переменных и методов Здорово помогает в отладке. Главная проблема библиотеки, не полная документация (приходится исходники смотреть и разбираться) Пример : описано 4 цвета а используется 6 ( и то в исходниках библиотеки) // FFFFFF- 16777215 Белый // 808080- 8421504 Серый темный // 000000- 0 Черный // 99CC99- 10079385 Темно зеленый // FFCC99- 10079487 Светло розовый // C0C0C0- 12632256 серый светлый oBrw:aColumns:bColorBlock := {|| IIF (Deleted() , ; {0,10079487,16777215,8421504 ,16777215,0 } , ; {0,16777215,16777215,8421504 ,16777215,0 } ) } В Общем проведена грандиозная работа автором .

Dima: taras56 пишет: В Общем проведена грандиозная работа автором . Так и есть

taras56: При выводе информации в виджетах при применении утверждения TRANSPARENT Функция hwg_Settransparentmode портят русский текст там где утверждение - искажения в остальных окнах норма или я чего не понимаю

alkresin: taras56 пишет: Пример : описано 4 цвета а используется 6 ( и то в исходниках библиотеки) Сначала, наверное, было 4, потом добавили еще 2 и забыли отразить в описании. Поправлю.

alkresin: taras56 пишет: При выводе информации в виджетах при применении утверждения TRANSPARENT Функция hwg_Settransparentmode портят русский текст Не замечал такого. Пример - в студию, пожалуйста.

taras56: Исходник + exe https://yadi.sk/d/MSs2BXnsFumxlw Файл и маска - искажено , убираем TRANSPARENT - норма и не могу побороть искажения русского в окне Browse не пойму в чем дело ? Извиняюсь учусь на ваших исходниках.

alkresin: В объявлении шрифта добавьте русский charset (104): oFont := HFont():Add( "Georgia",0,-18,,104 )

taras56: HWGUI Tutorial правое окно с примерами нужно сделать с возможностью копировать текст (отмечать дает , копировать нет ). В виджете Browse по БД при корректировке поля нужно проверять , если поле входит в активный индекс нужно перерисовывать весь экран .

alkresin: taras56 пишет: HWGUI Tutorial правое окно с примерами нужно сделать с возможностью копировать текст (отмечать дает , копировать нет ). Работает там копирование, всегда работало. В виджете Browse по БД при корректировке поля нужно проверять , если поле входит в активный индекс нужно перерисовывать весь экран . Да, пожалуй.

alkresin: alkresin пишет: Да, пожалуй. Нет, наверное, в самом HBrowse это сделать нельзя - имя поля туда не передается, только кодоблок. Попробуйте использовать :bValid для колонки.

taras56: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: Unresolved external 'WSAIoctl' referenced from C:\HARBOUR\LIB\HBRTL.LIB|hbsocket Error: Unresolved external 'GetAdaptersInfo' referenced from C:\HARBOUR\LIB\HBRTL.LIB|hbsocket Может не по теме Gui. Чего не хватает (каких библиотек echo %HRB_DIR%\lib\xhb.lib + >> b32.bc echo %HRB_DIR%\lib\hbnetio.lib + >> b32.bc echo %HRB_DIR%\lib\hbtcpio.lib + >> b32.bc Эти есть Фукция: / Функция возвращающая массив IP адресов компа // Harbour xhb.lib FUNCTION GetIpStation() LOCAL cName, aHosts := NIL //------------------------- cName:=NetName(.F.) //F имя компьютера InetInit() aHosts := InetGetHosts(cName) IF aHosts == NIL aHosts := InetGetAlias(cName) ENDIF InetCleanup() RETURN aHosts

alkresin: taras56 пишет: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: Unresolved external 'WSAIoctl' referenced from C:\HARBOUR\LIB\HBRTL.LIB|hbsocket Error: Unresolved external 'GetAdaptersInfo' referenced from C:\HARBOUR\LIB\HBRTL.LIB|hbsocket Может не по теме Gui. Чего не хватает (каких библиотек Скорее всего, iphlpapi.lib надо добавить в список - она в составе С компилятора.

taras56: 1.Сортировка переменных в окнах 2.Виджет Browse по БД добавить при корректировке проверку на READONLY файл при корректировке выдавать сообщение 3.Просмотр F6 рабочей области БД добавить про индексы окно пример прилагается https://yadi.sk/i/JlEotalqHl9X3A 4.предлагаю добавить для классов обьект получение твердой копии (txt файл) исходники прилагаю + примеры обьектов в тексте https://yadi.sk/d/qbJ-jKllqVx__Q Спас !!!

alkresin: 1 и 2 я уже сделал - изменения в репозитории на Sourceforge, можете скачать и собрать. Обновленные бинарники будут, когда сделаю новый build.

alkresin: Выпущен HwGUI 2.22.build 3 [*] Added fourth parameter to hwg_SelectFileEx() - logical bMulti, which allows multiply files selection [*] hwg_Version(4) now returns 0 for winapi version and 1 for gtk. [*] Few Debugger and Designer enhancements. [!] Fixes, corrections.

taras56: 1.Сортировка переменных в окнах (отладчик) не нашел. 2.Виджет Browse по БД добавить при корректировке проверку на READONLY файл при корректировке выдавать сообщение (работает - просто не переходит в режим ввода значения). 3. Просмотр F6 рабочей области БД добавить про индексы окно , все идет без переноса строк (нужно одна строка один индекс с пометкой какой активен) имя файла появилось + индексное выражение 4.предлагаю добавить для классов обьект получение твердой копии (доработки не нашел , можно в окне просмотра обьекта рядом с кнопкой Refresh добавить кнопку COPY TXT) Спас ! и на этом

alkresin: taras56 пишет: 1.Сортировка переменных в окнах (отладчик) не нашел. Переменные в списке теперь отсортированы, я не стал делать дополнительного органа управления. 3. Просмотр F6 рабочей области БД добавить про индексы окно Там добавлена копка "Indexes" для вывода списка индексов. 4.предлагаю добавить для классов обьект получение твердой копии (доработки не нашел Еще не смотрел, ваша ссылка https://yadi.sk/d/qbJ-jKllqVx__Q не работает.

taras56: 1.Сортировка переменных отсутствует. Проверено в окнах Local Private Static 2.Там добавлена копка "Indexes" для вывода списка индексов. кнопка не найдена 4.Новая ссылка на архив твердой копии обьекта примеры + исходники https://yadi.sk/d/G_YVYhhAXLFu8g == бинарники построены с исходников 2.22 v3

taras56: При просмотре массива. Error BASE/1132 Bound error: array access Called from hwgdebug.prg->(b)INSPECTARRAY(1933) Called from source\winapi\hcontrol.prg->ONCLICK(605) Called from source\winapi\hcontrol.prg->(b)HBUTTON_NEW(461) Called from source\winapi\hdialog.prg->ONDLGCOMMAND(374) Called from source\winapi\hdialog.prg->(b)(_INITSTATICS00003)(0) Called from source\winapi\hdialog.prg->HDIALOG:ONEVENT(211) Called from ->HWG_ACTIVATEMAINWINDOW(0) Called from source\winapi\hwindow.prg->HMAINWINDOW:ACTIVATE(383) Called from hwgdebug.prg->MAIN(336) HWGUI 2.22 Build 1 Date:02/27/19 Time:23:34:33

alkresin: taras56 пишет: 1.Сортировка переменных отсутствует. Проверено в окнах Local Private Static 2.Там добавлена копка "Indexes" для вывода списка индексов. кнопка не найдена ... == бинарники построены с исходников 2.22 v3 Проверьте исходники. Там hwgdebug.prg должен быть от 22/02/19. Функция InspectAreas() - там определены 4 кнопки: @ 10, 360 BUTTON "Refresh" ON CLICK { || DoCommand( CMD_AREA ) } SIZE 100, 28 ON SIZE ANCHOR_BOTTOMABS @ 130, 360 BUTTON "Inspect" ON CLICK { || iif( !Empty( oBrw:aArray ), InspectRec( oBrw:aArray[oBrw:nCurrent,1] ), .T. ) } SIZE 100, 28 ON SIZE ANCHOR_BOTTOMABS @ 250, 360 BUTTON "Indexes" ON CLICK { || iif( !Empty( oBrw:aArray ), InspectInd( oBrw:aArray[oBrw:nCurrent,12] ), .T. ) } SIZE 100, 28 ON SIZE ANCHOR_BOTTOMABS @ 370, 360 BUTTON "Close" ON CLICK { || oAreasDlg:Close() } SIZE 100, 28 ON SIZE ANCHOR_RIGHTABS + ANCHOR_BOTTOMABS При просмотре массива. Error BASE/1132 Bound error: array access Called from hwgdebug.prg->(b)INSPECTARRAY(1933) В hwgdebug.prg строчка 1933 - это функция InspectInd(), та самая, кстати, где выводятся индексы. HWGUI 2.22 Build 1 Date:02/27/19 Так какой у вас build, 3 или 1?

taras56: 1. бинарники построены с исходников 2.22 v3 (но кто знал что кроме библиотеки нужно еще отладчик перестроить и заменить - выполнено) индексы кнопка есть-работает переменные отсортированы . Отладчик супер.

alkresin: Выпустил build 4. В основном - исправления.

azoo: Хотел попробовать, выдаёт при линковке: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: Unresolved external '_hb_extIsNil' referenced from D:\HWGUI\LIB\HWGUI.LIB|draw Error: Unresolved external '_hb_itemEqual' referenced from D:\HWGUI\LIB\HWGUI.LIB|drawtext hbmk2: Error: Running linker. 2 ilink32.exe @C:\Users\asu5\AppData\Local\Temp\3nwgsy.lnk Что не хватает?

alkresin: Какая версия Harbour?

azoo: Было: Harbour 3.0.0 (Rev. 16951) Copyright (c) 1999-2011, http://harbour-project.org/ Установил последнюю версию Harbour и ошибка исчезла. Спасибо.

alkresin: Вчера выпустил новый релиз HwGUI - 2.23. Изменений много, всего что было сделано за прошедшее время и не припомню. Исправления, улучшения, и пр. Большую работу проделал, в частности, Wilfried Brunken. Из того, что я сам добавлял в этом году: Новый класс HTrack - ползунок, слайдер, теперь кроссплатформенный. OwnerButton теперь можно сделать с таймером, чтобы действия генерировались через заданное количество времени, пока кнопка нажата. Новый класс HLenta - как перемещаемый вправо/влево, вверх/вниз тулбар в Андроид-приложениях. Может также использоваться для замены радиогрупп, комбобоксов. В contribs добавил новый GT драйвер, основанный на HwGUI - GTHWG. Консольное приложение может работать как на поверхности всего окна (как это сделано в других GT), так и на отдельной панели в окне - оставшееся место могут занимать другие виджеты. Пока это сделано только для Windows, Linux версия в работе (хотя именно она меня интересует в первую очередь из-за некоторых ограничений линуксовых GT). Драйвер рабочий, проблем каких-то не заметил, даже достаточно навороченный hbedit живет с ним нормально.

alkresin: Linux версия GTHWGUI в целом готова, выложена на SVN. Те вещи, которых мне не хватало в gttrm: палитры, системный clipboard, поддержка некоторых сочетаний клавиш, Ctrl-End, например, здесь работают.

taras56: Собрал старую прогу с новой версией (была 2.22 b4) виджет редактивание БД стал виснуть при закрытие его, на фокусе ввода полей которые редактировал вышел с редактирования не клавишей Enter а мышкой, если снять прогу то ошибки : Error.log Error DBCMD/2001 ‘айл не открыт: RLOCK Called from ->RLOCK(0) Called from source\winapi\hbrowse.prg->HBROWSE:EDIT(2029) Called from source\winapi\hbrowse.prg->HBROWSE:BUTTONDBL(1757) Called from source\winapi\hbrowse.prg->HBROWSE:ONEVENT(423) Called from ->HWG_DLGBOXINDIRECT(0) Called from source\winapi\hdialog.prg->HDIALOG:ACTIVATE(156) Called from source\winapi\hbrowse.prg->HBROWSE:EDIT(1976) Called from source\winapi\hbrowse.prg->HBROWSE:BUTTONDBL(1757) Called from source\winapi\hbrowse.prg->HBROWSE:ONEVENT(423) Called from ->HWG_DLGBOXINDIRECT(0) Called from source\winapi\hdialog.prg->HDIALOG:ACTIVATE(156) Called from source\winapi\hbrowse.prg->HBROWSE:EDIT(1976) Called from source\winapi\hbrowse.prg->HBROWSE:BUTTONDBL(1757) Called from source\winapi\hbrowse.prg->HBROWSE:ONEVENT(423) Called from ->HWG_ACTIVATEMAINWINDOW(0) Called from source\winapi\hwindow.prg->HMAINWINDOW:ACTIVATE(400) Called from dbpass.prg->MAIN(61) HWGUI 2.23 Build 1 Date:04/08/2021 Time:08:59:35 hb_out.log erminated at: 2021-08-04 09:00:21 Неисправимая ошибка 9001: Ошибка при восстановлении Called from RLOCK(0) Called from HBROWSE:EDIT(2029) in source\winapi\hbrowse.prg Called from HBROWSE:BUTTONDBL(1757) in source\winapi\hbrowse.prg Called from HBROWSE:ONEVENT(423) in source\winapi\hbrowse.prg Called from HWG_DLGBOXINDIRECT(0) Called from HDIALOG:ACTIVATE(156) in source\winapi\hdialog.prg Called from HBROWSE:EDIT(1976) in source\winapi\hbrowse.prg Called from HBROWSE:BUTTONDBL(1757) in source\winapi\hbrowse.prg Called from HBROWSE:ONEVENT(423) in source\winapi\hbrowse.prg Called from HWG_DLGBOXINDIRECT(0) Called from HDIALOG:ACTIVATE(156) in source\winapi\hdialog.prg Called from HBROWSE:EDIT(1976) in source\winapi\hbrowse.prg Called from HBROWSE:BUTTONDBL(1757) in source\winapi\hbrowse.prg Called from HBROWSE:ONEVENT(423) in source\winapi\hbrowse.prg Called from HWG_ACTIVATEMAINWINDOW(0) Called from HMAINWINDOW:ACTIVATE(400) in source\winapi\hwindow.prg Called from MAIN(61) in dbpass.prg В чем проблема ????

alkresin: taras56 пишет: виджет редактивание БД стал виснуть при закрытие его, на фокусе ввода полей которые редактировал вышел с редактирования не клавишей Enter а мышкой, Проверил редактирование поля с samples/dbview и с dbchw - вроде никаких проблем. И непонятно, как там мышкой можно выйти из режима редактирования поля, там же модальное мини-диалоговое окно открывается, выход только по enter/esc. Вы бы сделали маленький примерчик, чтобы можно было посмотреть.

taras56: Пример проги редактирование файла dbf https://yadi.sk/d/X_tO1bENuWvXyg Нахожусь в просмотре файла @ 0,0 BROWSE oBrw ; SIZE nGor,690 ; STYLE WS_VSCROLL + WS_HSCROLL ; FONT oFont ; ON SIZE {|o,x,y|o:Move(,,x-1,y-28)} oBrw:bScrollPos := {|o,n,lEof,nPos|hwg_VScrollPos(o,n,lEof,nPos)} @ 0,696 PANEL oPanel SIZE nGor-8,24 ON SIZE {|o,x,y|o:Move(0,y-24,x-1,y-8)} HSTYLE oStyleNormal @ 4,2 SAY oSay1 CAPTION "" OF oPanel SIZE 138,20 FONT oFont // @ 144,2 SAY oSay2 CAPTION "" OF oPanel SIZE 440,20 FONT oFont // @ 586,2 SAY oSay3 CAPTION "" OF oPanel SIZE 260,20 FONT oFont // oBrw:InitBrw( 2 ) // БД //oBrw:active := .F. oBrw:cargo:=0 // файл hwg_CreateList( oBrw,.T. ) OBrw:bLineOut:={ | oBrw | info_str(oBrw,oSay1,oSay2,oSay3) } head_my(oBrw,aName) // заголовки свои //oBrw:active := .T. //oBrw:lInFocus := .t. color_d(oBrw) Мышкой или стрелками продвигаю маркет на поле нажимаю Enter или левой кл мыши (поле можно редактировать) Если завершаю редактирование Enter (все в норме) Если мышью нажимаю на другом поле маркет переходит туда (поле не редактируется) При закрытие Виджета Browse на экране остаются в квадратиках все поля где редактирование завершено через мышь.

alkresin: Вижу. Странно. Разберусь.

alkresin: Исправил, выложил на SVN.

taras56: на SVN это где ??? Извиняюсь... может на яндекс диск ? или новая версия HWGUI

Dima: taras56 пишет: на SVN это где ??? Извиняюсь... тут https://sourceforge.net/projects/hwgui/files/latest/download

alkresin: taras56 пишет: на SVN это где ??? Извиняюсь... может на яндекс диск ? или новая версия HWGUI Новая версия... Может, на следующей неделе, если будет время. С SVN можно забрать с помощью: svn checkout svn://svn.code.sf.net/p/hwgui/code/trunk hwgui-code Можете просто вставить строчку oModDlg:oParent := Self в source/winapi/hbrowse.prg, line 1976, перед ACTIVATE DIALOG oModDlg

taras56: Вставил проблема ушла. Спас Alkresin !!! Кое-что исправляю в прогах !!! безработный пока.

alkresin: Выпущен HwGUI 2.23 build 2. Исправлены кое-какие ошибки. Добавлена Linux-версия GTHWG - GT библиотеки для Harbour. Переписан HwReport из contribs, Теперь он работает и под Linux. Дистрибутивы с исходниками, как всегда, доступны на Sourceforge и у меня на сайте - здесь еще есть и бинарные дистрибутивы (bcc 5.5.1 и Mingw 7.3.0).

alkresin: Выпущен HwGUI 2.23 build 3. Исправления, добавления - см. Changelog. Из последнего - добавил в gthwg возможность дополнять консольный интерфейс изображениями - отображать картинки или нарисовать что-нибудь.

alkresin: Выпущен HwGUI 2.23 build 4. HWGUI 2.23 build 4 ( 27.07.2023 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [+] Gdi+ basic support added for Mingw C compiler to allow to open png and tiff files [+] New commands added for new classes: @ ... BOARD ..., @ ... DRAWN ..., @ ... DRAWN CHECK ..., @ ... DRAWN RADIO ... [+] New classes added: HBoard, HDrawn, HDrawnCheck, HDrawnRadio, samples/graph.prg updated to demonstrate it [!] Few important fixes in GTK drawing

alkresin: HwGUI 2.23 build 5 [+] Few drawing functions added, few modified [+] New commands added for new classes: @ ... DRAWN EDIT ..., @ ... DRAWN LENTA ..., @ ... DRAWN TRACK ..., @ ... DRAWN BROWSE ..., @ ... DRAWN COMBO ..., @ ... DRAWN UPDOWN ... [+] New classes added: HDrawnEdit, HDrawnLenta, HDrawnCheck, HDrawnBrw, HDrawnCombo, HDrawnUpdown tutorial updated to demonstrate it [*] Documentation updated [*] Part of a code, which is fully crossplatform, is moved from gtk/ and winapi/ directories to a new cross/ directory [!] Fixes Наиболее важные изменения - это выделение кроссплатформенного кода из каталогов gtk/ и winapi/ в cross/, а также продолжение разработки семейства drawn.

SergKis: alkresin пишет а также продолжение разработки семейства drawn. В чем суть этого семейства ?

alkresin: SergKis пишет: В чем суть этого семейства ? Я собираюсь поподробнее об этом написать, все руки не доходят. Если вкратце, это элементы интерфейса, которые не являются родными widget'ами или control'ами gtk или winapi. Они рисуются на экране, точнее, на control'е HBoard, исключительно средствами HwGUI. События ( WM_... )приходят на HBoard, а он их распределяет по нарисованным на нем drawn элементам. Это дает большую свободу в создании элементов, их внешнего вида и поведения. Они "легче" родных control'ов, они более управляемы - пытаясь реализовать что-то с control'ом winapi или gtk, частенько нарываешься на ограничения. Кроме того, в отличие от родных для OS виджетов, они на всех OS выглядят совершенно одинаково - иногда это бывает удобно. Можно делать комбинированные виджеты - например, drawn updown состоит из drawn edit и двух drawn кнопок. соответствующие объекты просто входят в состав класса HDrawnUpdown. Кстати, drawn updown, в отличие от родных updown, работает еще и с датами и с массивами - благодаря той самой свободе реализации.

SergKis: alkresin пишет Они "легче" родных control'ов, они более управляемы - пытаясь реализовать что-то с control'ом winapi или gtk Т.е. для вас будет легче, а пользователю ? Ему надо изучить низкоуровневую начинку этих контролов-виджетов new типа ? Или вы обернете все как сейчас в конечные события click, dblclick, ... Как вы будете реализовывать ? они на всех OS выглядят совершенно одинаково Разрешения мониторов учитывать для этого ? Чем это отличается от схемы области, в которую пихаем контролы-виджеты (горизонтально\вертикально), задаем отступы у области, расстояния между контролами-виджетами, выполняем метод Layout, который все размещает в области ? Окно может быть поделено на такие области - все, с учетом расчетов от unit, вроде, учитываются мониторы. Не улавливаю суть этих новых классов из объяснения PS Или речь идет о создании движка для работы (на подобии GuiServer) с базами в net на hb ?

alkresin: SergKis пишет: Т.е. для вас будет легче, а пользователю ? Ему надо изучить низкоуровневую начинку этих контролов-виджетов new типа ? Пользователю надо в первую очередь знать состав переменных соответствующего класса, чтобы задать желаемые форму, цвет, градиент drawn виджета. Если он захочет чего-то особенного, то может сам заняться отрисовкой виджета в своем bPaint. Вы скажете, что тоже самое можно делать и с родными control'ами. Увы, не все, и не со всеми. Или вы обернете все как сейчас в конечные события click, dblclick, ... Обработчики остаются, конечно. Чем это отличается от схемы области, ... Не улавливаю суть этих новых классов из объяснения Размещение происходит также, как и с родными control'ами. Без метода Layout, просто по координатам, как везде в HwGUI. Суть в том, что эти drawn виджеты не используют системные вызовы для своего создания

SergKis: alkresin пишет Пользователю надо в первую очередь знать состав переменных соответствующего класса, чтобы задать желаемые форму, цвет, градиент drawn виджета. Забудите, что учили в школе, институте, ... Изучаем новое API Вы скажете, что тоже самое можно делать и с родными control'ами. Увы, не все, и не со всеми. Уже мамнадцать лет как то все работают и ... как то обходятся общими api Размещение происходит также, как и с родными control'ами. Без метода Layout, просто по координатам, как везде в HwGUI. Без Layout не очень. Т.е. никак, окно размеры изменили и все осталось как раньше в указанных размерах. Да и задать размеры контролов-виджетов в % нельзя ... и этого не будет по вашему описанию они на всех OS выглядят совершенно одинаково мониторы то разные по разрешениям Жаль, в целом кроме "cross/," все на месте PS У вас на сайте ссылка потерлась "... от Alain Aupeix."

alkresin: SergKis пишет: Забудите, что учили в школе, институте, ... Изучаем новое API Уже мамнадцать лет как то все работают и ... как то обходятся общими api У меня сильное ощущение, что мы с вами говорим о разных вещах. Какое "общее API"? Что учили в институте? Пользователь HwGUI использует "HwGUI Api" - набор определенных в HwGUI классов, команд и функций. Время от времени добавляются новые классы, в старые иногда добавляются новые переменные и методы. Теперь добавлен набор новых классов, во многом совместимый со старыми ( схожий состав переменных и классов ). Их можно использовать, если понравятся, можно проигнорировать. Это естественный ход развития продукта. Т.е. никак, окно размеры изменили и все осталось как раньше в указанных размерах Для этого в HwGUI давно существуют "якоря" (anchor) - задается положение/размер виджетов относительно границ окна. Ну и ON SIZE кодоблок никто не отменял. У вас на сайте ссылка потерлась "... от Alain Aupeix." Спасибо за информацию, удалил. Он теперь на dropbox выкладывает, причем каждый раз - в разных местах.

SergKis: alkresin пишет Пользователь HwGUI использует "HwGUI Api" - набор определенных в HwGUI классов, команд и функций. Возможно, я вас не понял, т.к. понял, что все новые классы HDraw... заменяют старые, т.е. все учим снова свойства, методы, поведение ... - это всегда забирает много времени. Он теперь на dropbox выкладывает, причем каждый раз - в разных местах. Плохо, теперь быстро не посмотришь, что в hwgui, т.к. вы не включаете в свои архивы сборку hb, а собрать его - это канитель и время. Со вчерашнего дня пробую собрать hb от 23.07.07 - не собирается, win-make не создает свои раб. bat файлы в ...\Local хоть убейся. Давно не собирал и тут брошу. Хотя интересно было бы глянуть HDrawBrw по поводу появившихся header, footer и работы с таблицей

alkresin: SergKis пишет: т.к. понял, что все новые классы HDraw... заменяют старые Нет, конечно. Плохо, теперь быстро не посмотришь, что в hwgui, т.к. вы не включаете в свои архивы сборку hb Можете скачать отдельно tutorial - там живые примеры, можно менять код и запускать даже без Харбора и Hwgui на компьютере. Хотя интересно было бы глянуть HDrawBrw по поводу появившихся header, footer Header, footer есть и в старом HBrowse - самые широкие возможности по модификации. Можно посмотреть, опять-таки, в tutorial.

SergKis: alkresin пишет Можете скачать отдельно tutorial - там живые примеры, можно менять код и запускать даже без Харбора и Hwgui на компьютере. Это не интересно, как вариант продвинутого help пойдет, я беру код из работающей проги с mdi и делаю childmdi и modal на него, например средний справочник. И предыдущие вхождения в hwgui - это испытание не выдержали, из всех окон работало только одно, а HBrowse (это чья то добавка под windows была ?) была в так себе состоянии для таблицы. Писал об этом ранее (давно). BROWSE имел однострочную шапку и без подвала - это вообще никуда не вставишь. Хотел глянуть, что изменилось.

SergKis: alkresin пишет Можете скачать отдельно tutorial - там живые примеры, можно менять код и запускать даже без Харбора и Hwgui на компьютере. Посмотрел Drawn browses - там ничего нет, ни многострочного header, ни многострочного footer, ни цветов в колонках (BackColor, FontColor), нет bmp\icon в cell строках, header и footer, нет смены фонтов в cell и как сделать многострочные cell .... Пример слабенький совсем. Из него понять возможности работы с таблицей для реального использования нельзя. PS Вот примеры grid https://w2ui.com/web/demos/#/grid/2 Примеры grid в MiniGui каталогах SAMPLES\Advanced\Tsb_*

alkresin: Простые примеры многострочного header в HBrowse есть в Advanced using of controls/Browse, bmp в ячейках - Advanced using of controls/Browse of bitmaps. В drawn browse это делается аналогично. Разные шрифты, цвета в колонках, в cтроках по условию - все это есть, можно будет добавить в tutorial. Согласен, примеров маловато, мне всегда было лень их делать

SergKis: alkresin пишет Простые примеры многострочного header в HBrowse есть в Advanced using of controls/Browse, bmp в ячейках - Advanced using of controls/Browse of bitmaps. Не знаю где это, в архивах с сайта не вижу таких каталогов. Согласен, примеров маловато, мне всегда было лень их делать Если у вас есть реальные проекты на этом, то надергать простеньких примеров, думаю, не займет много времени, а без них не понятно работает ли это все и так ли работает как надо, например, мне. И по поводу бинарных архивов, без наличия в них hb на которой вы их собирали (как понимаю, достаточно bin, lib, include) они бессмысленны, т.к. нет знания на какой ночной сборке или стаб версии собраны и получается, даже скачав их надо заново собирать hb (не оч. ясно каким bcc 5.5 или 5.8) и заново собирать hwgui. Мне, для начала, хотелось просто глянуть примеры, что бы понять изменения от того когда смотрел раньше, но для этого надо брать hb, собирать (у меня так и не собрался и плюнул на это) пересобирать hwgui ..., а всего то надо было глянуть больше чем тексты, отложу все с hwgui на потом ... когда нибудь Время жалко на танцы с бубном PS Еще в таблице есть важный элемент SuperHeader, группирующий колонки Header и SpecHeader под Header - нумерация колонок по default. Про них в HBrowse нет ничего совсем, а элементы важные и нужные.

alkresin: SergKis пишет: Не знаю где это, в архивах с сайта не вижу таких каталогов В tutorial, это названия разделов в дереве слева. Если у вас есть реальные проекты на этом, то надергать простеньких примеров Что касается именно расцвечивания столбцов и строк browse, у меня никогда не возникало необходимости это делать в реальных проектах. по поводу бинарных архивов, без наличия в них hb на которой вы их собирали (как понимаю, достаточно bin, lib, include) они бессмысленны, т.к. нет знания на какой ночной сборке или стаб версии Какая разница? Harbour почти не меняется уже много лет, а те изменения, что есть, не могут приводить к бинарной несовместимости. Дома у меня, Harbour от 2020-02-24 08:32 (последний Changelog), на работе - от 2019-01-14 12:18, никогда не заморачивался на эту тему, и проблем никогда не было. не оч. ясно каким bcc 5.5 или 5.8 На сайте, где бинарники лежат, написано: для Borland C 5.5, для Mingw GNU C 7.3.0 SergKis пишет: Еще в таблице есть важный элемент SuperHeader, группирующий колонки Header и SpecHeader Не знаком с этой терминологией, но, если это то, что я думаю, то оно как раз представлено в tutorial, dvanced using of controls/Browse

alkresin: alkresin пишет: Что касается именно расцвечивания столбцов и строк browse, у меня никогда не возникало необходимости это делать в реальных проектах. Впрочем, вру. В паре программ было. Но оттуда так просто не выдернуть.

SergKis: alkresin пишет Какая разница? Harbour почти не меняется уже много лет У меня нет bcc сборок hb (только то что есть в hmg, спасибо Григорию), есть msvc 2008, 2017, 2019 Но я вас понял, вам влом положить, в бинарники hb, тем более что они у вас есть, свое время вы экономите ... Спасибо, дальше не надо ничего от hwgui, как и до этого

Andrey: alkresin пишет: Что касается именно расцвечивания столбцов и строк browse, у меня никогда не возникало необходимости это делать в реальных проектах. А зря... Очень нужно. Вот так например: Или из примеров \MiniGUI-23.09.2\SAMPLES\Advanced\Tsb_Viewer

ZAlex: Я так понимаю данная цветовая чехарда - это пожелания пользователей? Или предпочтения разработчика? Уж слишком режет глаза.

PSP: ZAlex пишет: Я так понимаю данная цветовая чехарда - это пожелания пользователей? Или предпочтения разработчика? На вкус и цвет все фломастеры разные)) Художник так видит))

Dima: PSP пишет: На вкус и цвет все фломастеры разные)) Художник так видит))

Andrey: ZAlex пишет: Или предпочтения разработчика? Уж слишком режет глаза. В качестве примера. А для юзера пускай цвета программист подбирает. У себя в проге сделал - юзер сам цвета задаёт.

alkresin: SergKis пишет: Но я вас понял, вам влом положить, в бинарники hb, тем более что они у вас есть, свое время вы экономите ... Мое время тут ни при чем, тем более, что прикладывать при каждом релизе одну и ту же заранее подготовленную сборку Harbour (я не меняю ее годами) - не особо трудозатратно. Просто я считаю это концептуально неверным. Основная форма поставки HwGUI - исходники, которые нетрудно собрать для той сборки Harbour, которая у вас есть. Бинарники - это бонус, я их выкладываю из того, что сам использую, просто потому, что мне это не сложно, для тех, кто использует те же версии С компиляторов. Если кто-то не использует, например, bcc 5.5, я не вижу ни одной причины, зачем ему скачивать соответствующие бинарники HwGUI. Надо, повторяю, скачать исходники и собрать их под тот компилятор, который у него есть.

alkresin: Кстати, для знакомства вполне подходит как раз tutorial. В его состав входит утилита hwgrun.exe, ее можно использовать для запуска программ без Harbour и C компиляторов, если по какой-то (непонятной мне) причине для этого не подходит сам tutor.exe: hwgrun.exe my.prg

Pasha: Andrey пишет: В качестве примера. А для юзера пускай цвета программист подбирает. У себя в проге сделал - юзер сам цвета задаёт. Андрей, не в обиду, но ты используешь стиль "Попугай" Я конечно тоже использую цвета в своем гриде, но не так же. Фон стараюсь не менять, если надо что-то отметить - меняю цвет шрифта

Pasha: SergKis пишет: У меня нет bcc сборок hb (только то что есть в hmg, спасибо Григорию), есть msvc 2008, 2017, 2019 Но я вас понял, вам влом положить, в бинарники hb, тем более что они у вас есть, свое время вы экономите ... Спасибо, дальше не надо ничего от hwgui, как и до этого Не хотелось бы вмешиваться в спор остроконечников с тупоконечниками, но все же.. Харбор за последние года три, а то и больше, меняется косметически, и зачем в каждый релиз библиотеки вкладывать его сборку ? Достаточно библиотек. Это конечно более правильный подход. Я понимаю пользователей hmg, вы так привыкли. Но не надо требовать от других продуктов такого же.

SergKis:

SergKis:

SergKis:

SergKis:

SergKis:

alkresin:

Andrey: Pasha пишет: Андрей, не в обиду, но ты используешь стиль "Попугай" Я конечно тоже использую цвета в своем гриде, но не так же. Да без обид. Это пример, дальше пускай цвета подбирает программист. Раньше в терминалке юзера настаивали на таких цветах, пытался в новой программе сделать как в 1с (серыми), не захотели. Хозяин барин, сделал им правку цвета и не приставайте ко мне. Хотя есть и серая схема в программе, но никто её не использует. Покажи скрины своих таблиц, хоть ориентироваться буду что делать.

SergKis: Pasha пишет Достаточно библиотек. Это конечно более правильный подход. Я понимаю пользователей hmg, вы так привыкли. Но не надо требовать от других продуктов такого же. Мой PC в ремонте, жду посылку с зарядкой, которая накрылась. PC с админ. правами. На замену попался СТАНДАРНЫЙ PC с рабочего места (все такие настройки), связался с админом и выяснил, что системные папки закрыты, доступ к реестру, сервисам только в режиме admin, скачивать exe из интернета нельзя. Дело не в привычке и я не требую такого же от других разработчиков, что делается в hmg и я сам делаю так же. Просто сравним, мягко скажу я проевозился с hwgui 2 дня впустую. Берем hmg, думаю не скачаю, прошу Андрея положить мне на ftp версию, он кидает. А решаюсь все таки попробовать скачать с указанной ссылки последнюю версию hmg и она скачивается. Григорий обернул свой инсталлятор exe в zip, я извлек exe и менее чем за 5 минут установил, поправил в cfg путь -> все запустилось, примеры работают Очередной респект Григорию, он учел современные условия эксплуатации систем. Это называется почувствуйте разницу, а вы говорите "Достаточно библиотек. Это конечно более правильный подход.". Не всегда

Pasha: Мы тут в чужой теме нафлудиди, надо бы закончить. Расскажу за свой опыт. Вот скачиваю я hmg. У меня есть харбор, собираю под свой компилятор, смотрю что мне надо. Я так привык [pre]почти с детства[/pre], это правильный модульный подход. Если это библиотека для некоего компилятора - то достаточно самой библиотеки, зачем же еще цеплять компилятор ? Если программист - пользователь библиотеки, у него и так должен быть компилятор, и достаточная квалификация для сборки своей программы со сторонней библиотекой. Разве не так ? Но в чужую тему не иду митинговать, свой подход не навязываю, кю не обзываюсь, не говорю, что другой продукт мне не нужен. Если ты многолетний пользователь hmg, то и так понятно, что пользователем hwgui не станешь. Как раньше ничего не надо было от hwgui, так и не надо будет. Не ?

PSP: Можно держать две сборки: полная (с компилятором) и только библиотеки. Может так?

Pasha: Зачем две сборки ? Каждый продукт как хочет, так и распространяется. Для mingui лицензия позволяет распространяться вместе с харбором - ради бога. Вот fw распространяется без харбора, и что-то за почти четверть века к Линаресу не было предъяв за это. То же касается hwgui

SergKis: Pasha пишет Но в чужую тему не иду митинговать, свой подход не навязываю, кю не обзываюсь, не говорю, что другой продукт мне не нужен. Если ты многолетний пользователь hmg, то и так понятно, что пользователем hwgui не станешь. Как раньше ничего не надо было от hwgui, так и не надо будет. Не ? У меня есть основания так говорить, потому что при второй реальной попытке запустить hwgui (в истории переписка в постах есть, наверно, можно поднять) Специально для собранный пример, на базе представленных в hwgui, Mdi, ChildMdi 2-а окна с них по окну модал диалог с конролами до 10 штук на каждом, т.е. что то типа карточки не работал, работало только окно диалог с контролами нормально. Пример передал разработчику это было ~14,15 года, получили ответ почти дословный "Даа, не работает. Странно". Все больше ни ответа, ни привета. Смотрели новые выпуски hwgui, но нигде нет намека на ответ до сих пор. И именно в этом причина, что я не пользователь hwgui, т.к. со времен "Техникон 96" я пользователь был VO с объектным языком программирования и hwgui было близко и понятно. В 2010 году (когда hb 2.0 стал unicode) была попытка на hwgui, но сборка ее была 2004 года - она не пошла, конечно и я до сих пор не могу понять, работает ли hwgui, т.к. нет оснований думать иначе. На освоение hwgui я потратил много времени. И это мое мнение и оно, конечно, может не совпадать со мнением автора hwgui и ни в коем случае, не хочу никого обидеть и здесь нет ничего личного

alkresin: SergKis пишет: пример, на базе представленных в hwgui, Mdi, ChildMdi 2-а окна с них по окну модал диалог с конролами до 10 штук на каждом, т.е. что то типа карточки не работал Я тот эпизод не помню, поэтому ничего на этот счет сказать не могу. О работе mdi тоже уверенно не могу сказать - я сам его не использую много лет. В samples есть рабочий пример, dbchw использует mdi, вопросов никто на тему mdi не задавал. я до сих пор не могу понять, работает ли hwgui Работает) со времен "Техникон 96" Вы там были? Я приезжал, даже пару докладов сделал.

SergKis: alkresin пишет Вы там были? Я приезжал, даже пару докладов сделал. Да. И с вами мы лично знакомы (я с товарищем был) ~ 40' перед вашим докладом на тему о вых формах из настроек файла беседовали и книга сохранилась, поискать и дискеты найду. И потом мы были на др. Техниконах. Думаю, вы не помните, нас то много было. Но, возможно, помните случай, когда лужковские азеры наехали на 2-х программистов в гостинице (кажется "Космос"), связав их - один из них был я (это др. Техникон был не 96)

ММК: Pasha пишет: Вот fw распространяется без харбора, и что-то за почти четверть века к Линаресу не было предъяв за это. FW распространяется с харбором и с хХарбором. Сборки соответствуют библиотекам. К примеру на "сейчас" это хХарбор ВСС7, а Харбор под ВСС7 и MSVSC. Т.е. три варианта Инструмент бывает разный

PSP: ММК пишет: Инструмент бывает разный Ну правильно)) Проще так, чем потом отвечать на кучу вопросов)

alkresin: SergKis пишет: Да. И с вами мы лично знакомы (я с товарищем был) Ну у вас и память)... Я уже не помню. когда лужковские азеры наехали на 2-х программистов в гостинице Не помню. Я был еще на Техниконе 99, делал доклад о Харборе, но помню его еще хуже, чем 96. Даже не был уверен, что был там, пока не увидел у себя же на сайте ссылку на доклад)

Andrey: Добавлю тоже своё мнение. Мне очень нравиться подход Григория в МиниГуи. Скачал последнию версию, установил и можешь работать. Ни мучений с компилятором, ни настроек никаких не надо. И самое главное в МиниГуи МНОГО примеров и их достаточно для работы, хотя нет главного примера - РАБОЧЕЙ заготовки для больших программ. Состав этой заготовки уже на протяжении 10 лет пытаюсь сделать... Пробовал ранее собирать hwgui и бросил. Главная причина, нет готового и настроенного компилятора для работы. И нет большого кол-ва примеров в hwgui.

alkresin: Выпущен новый релиз. HWGUI 2.23 build 6 ( 07.11.2023 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [+] HDateSelect, HDrawnDate classes added - a crossplatform HDatePicker alternative [*] Many enhancements in drawn widgets [*] Anchors support added for drawn widgets [*] Tutor has been enhanced [*] Documentation updated [!] Fixes Заметки по HBoard и HDrawn (время от времени обновляются): http://www.kresin.ru/notes/index.php?b=blog&n=29 http://www.kresin.ru/notes/index.php?b=blog&n=30 Заодно обновил и Tutorial. Напоминаю, для работы Tutorial, запуска с его помощью небольших программ не требуется наличие на компьютере HwGUI, Harbour и C-компилятора.



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