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

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() - получается рекурсия, переполнение стека и вылет.



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