Форум » 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

Ответов - 137, стр: 1 2 3 4 5 6 7 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



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