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

hwgui

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

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

Vlad04: Все ок! Но здесь и замена переменных И дополнительные функции.

AlexMyr: Vlad04 пишет: Но здесь и замена переменных И дополнительные функции. Ну так Вы ж кнопку добавили и хотите какие-то действия совершать.

AlexMyr: AlexMyr пишет: @ 50,70 BUTTON "CLear " SIZE 80, 26 on CLICK {||cExpr:=Space(290),oExpr:Refresh(),oExpr:SetFocus()} Можно немного укоротить @ 50,70 BUTTON "CLear " SIZE 80, 26 on CLICK {||oExpr:Value(Space(290)),oExpr:SetFocus()} Vlad04 пишет: Но здесь и замена переменных переменная так и осталась cExpr, добавился только объект oExpr, вот кусок из guilib.ch #xcommand @ <x>,<y> GET [ <oEdit> VAR ] <vari> ; вот этот объект мы и используем.


Vlad04: А нельзя ли ещё как нибудь наладить работу с буфером обмена? @ 120,70 BUTTON " Mem=> " SIZE 80, 26 //ON CLICK @ 230,70 BUTTON " =>Mem " SIZE 80, 26 //ON CLICK Здесь даже не представляю , что можно писать

alkresin: А hwg_CopyStringToClipboard( cString ) и hwg_GetClipboardText( hwg_GetActiveWindow() ) пробовали ?

AlexMyr: Александр, откорректировал dbchw.rc для сборки с mingw, вот он [pre2]DBC ICON "dbc.ico" BMP_ABOUT BITMAP "dbc.bmp" TOP BITMAP "../../samples/image/top.bmp" BOTTOM BITMAP "../../samples/image/bottom.bmp" NEXT BITMAP "../../samples/image/next.bmp" PREV BITMAP "../../samples/image/previous.bmp" OPEN BITMAP "../../samples/image/open.bmp"[/pre2] т.е. заменил \ на /, будет ли он собираться под bcc без ошибок, если да, то можно тогда его на svn закинуть.

alkresin: Да, собирается нормально с bcc.

Vlad04: Как не странно все получилось ! @ 120,70 BUTTON " Mem=> " SIZE 80, 26 ON CLICK {||cExpr:=Trim(cExpr)+HWG_GETCLIPBOARDTEXT( hwg_GetActiveWindow() ),oExpr:Refresh(),oExpr:SetFocus()} @ 230,70 BUTTON " =>Mem " SIZE 80, 26 ON CLICK {||hwg_CopyStringToClipboard( oSayRes:GetText )}

Vlad04: Продолжаю дальше "мучить" HwGUI, разбираем события ДО, ПОСЛЕ. Пример на закладке ...\utils\designer\samples\ , построенный с помощью designer. Form1 -testget1.xml. Добавляю в событие onLostFocus editbox пока только информационное сообщение - hwg_msgInfo('Lost'). Запускаю программу, открываю форму, покидаю editbox, получаю сообщение " Lost " и дальше ошибка в - hedit.prg Error BASE/1066 Argument error: conditional Called from source\hedit.prg->__VALID(746) Called from source\hedit.prg->(b)HEDIT_NEW(86) Called from source\hdialog.prg->ONDLGCOMMAND(305) Called from source\hdialog.prg->(b)(_INITSTATICS00003)(0) Called from source\hdialog.prg->HDIALOG:ONEVENT(159) Called from ->HWG_SETFOCUS(0) Called from source\hedit.prg->HWG_GETSKIP(930) Called from source\hedit.prg->HEDIT:ONEVENT(191) Called from ->HWG_DLGBOXINDIRECT(0) Called from source\hdialog.prg->HDIALOG:ACTIVATE(125) Called from source\hfrmtmpl.prg->HFORMTMPL:SHOW(392) Called from source\hfrmtmpl.prg->(b)COMPILEMETHOD(495) Called from source\hownbtn.prg->HOWNBUTTON:MUP(364) Called from source\hownbtn.prg->HOWNBUTTON:ONEVENT(139) Called from ->HWG_ACTIVATEMAINWINDOW(0) Called from source\hwindow.prg->HMAINWINDOW:ACTIVATE(292) Called from source\hfrmtmpl.prg->HFORMTMPL:SHOW(392) Called from source\hfrmtmpl.prg->(b)HFORMTMPL(135) Called from source\hfrmtmpl.prg->HFORMTMPL:SHOWMAIN(0) Called from example.prg->MAIN(17) HWGUI 2.16c Build 1002 Harbour 3.2.0dev (r1304301343) Date:05/20/13

AlexMyr: Vlad04 пишет: разбираем события ДО, ПОСЛЕ. Должно возвращать логическое значение .T. or .F.

Vlad04: Добавил Return .t. И ошибки нет, поле можно покинуть При Return .f. остаешься на поле

alkresin: Так и должно быть. Возвращаемое значение определяет, можно ли покинуть поле.

Vlad04: Что можно располагать в xml( предполагаю простые конструкции) , а что в prg (наверно, что посложнее ?). Мне надо для покидаемого поля расчитывать значение и его присвоить ему в зависимости от: 1) значений КОНТРОЛОВ на главной форме 2) + значений КОНТРОЛОВ текущей формы 3)+ по их сочетанию найти значение в базе И ещё, возможно или нет. События До, ПОСЛЕ только у editbox. Желательно и у других КОНТРОЛОВ, даже у кнопки ОК. Перед закрытием формы проверить корректность введенного . Для DatePicker ,для editbox и других КОНТРОЛОВ с численными данными ввести в свойства Минимальное и Максимальное значение

alkresin: Vlad04 пишет: Что можно располагать в xml( предполагаю простые конструкции) , а что в prg (наверно, что посложнее ?) Здесь нет никаких заданных рамок, распределение кода между prg и xml определяется вашими собственными предпочениями, вашими требованиями к структуре программы. Я исхожу из следующих критериев: 1) В приложении есть низ и верх, базовая часть и надстройка. Базовай частью является исполняемый файл ( скомпилированные prg ), надстройкой - xml, ini и пр., где содержится код, модифицирующий работу исполняемого файла. Я исхожу из того, что если какой-либо элемент ( КОНТРОЛ, например) определен в надстройке, то и обслуживающий его код должен помещаться там же, а не в базовой части. В моем понимании правильная структура - это когда "низ" не "знает" ничего о том, что есть "наверху", базовая часть независима от надстройки. 2) Повторяющиеся фрагменты кода, имеющие определенный универсальный смысл, лучше оформлять в виде функций так, чтобы там не было ссылок на конкретные элементы, определенные в xml и помещать в prg. 3) Критичные к скорости исполнения фрагменты, выполняющиеся в цикле, тожу лучше помещать в prg. События До, ПОСЛЕ только у editbox. Желательно и у других КОНТРОЛОВ, даже у кнопки ОК. Не только у editbox, еще у чего-то есть. На некоторые можно будет завести, поскольку они предусмотрены в соответствующих классах HwGUI. Перед закрытием формы проверить корректность введенного А что мешает повесить эту проверку на onclick кнопки, закрывающей форму, или на onDlgExit ? Для DatePicker ,для editbox и других КОНТРОЛОВ с численными данными ввести в свойства Минимальное и Максимальное значение Если есть обработчик ПОСЛЕ, он это и должен делать.

AlexMyr: Vlad04 пишет: Что можно располагать в xml( предполагаю простые конструкции) , а что в prg (наверно, что посложнее ?). С какой стороны посмотреть на код, с одной стороны может быть он и сложный, а с другой вроде и нет, решать вам. Можно писать в xml, а при возникновении проблем, вынести кусок кода в prg. Vlad04 пишет: Мне надо для покидаемого поля расчитывать значение и его присвоить ему в зависимости от: 1) значений КОНТРОЛОВ на главной форме 2) + значений КОНТРОЛОВ текущей формы 3)+ по их сочетанию найти значение в базе Можно сформировать массив со значениями контролов и передать его в вызываемую форму как параметер, а потом использовать, делается так: hformtmpl():read("form.xml"):show(,arr_val) где arr_val - массив значений и делаете что хотите. Можно из формы потом вернуть этот массив или просто значение и на главной форме что-то изменить в зависимости что вернули. Т.е. все можно сделать. Vlad04 пишет: События До, ПОСЛЕ только у editbox. Нет, не только, смотрите классы, которые вас интересуют. Vlad04 пишет: даже у кнопки ОК. Для кнопок есть disable, enable. Vlad04 пишет: Перед закрытием формы проверить корректность введенного Смотрите методы onDlgExit, onFrmExit, проверяете правильность, если правильно enddialog(), если нет указываем на то, что не правильно. Vlad04 пишет: Для DatePicker ,для editbox и других КОНТРОЛОВ с численными данными ввести в свойства Минимальное и Максимальное значение так и проверяйте на выходе из контрола значение которые нужны.

alkresin: Выложил новый релиз HwGUI - 2.16c, build 1003. Кое-какие поправки в gtk - версии и новый GUI отладчик для Harbour - подробнее о нем на этом форуме в разделе Harbour.

Vlad04: Написал небольшую рабочую программу, использую только designer. Часть вопросов ушло, появились новые. 1- Форма - как поймать событие Resize ( изменение размеров формы) - Minimiizebox, Maximizebox не пойму на что влияет. Изменяю, но кнопки на форме остаются - нажатие Tab перемещает курсор , но не на все поля.РадиоГруппа -не заходит, кнопка - не заходит,updown - на один заходит, на другой такой же - нет. - можно или нет сделать ЗАЛИВКУ формы цветом ? - В коде samples встречается задание для формы STYLE WS_DLGFRAME + WS_SYSMENU + DS_CENTER ,в designer такого нет 2 - updown не могу в рамку оформить и др.

AlexMyr: Vlad04 пишет: - как поймать событие Resize ( изменение размеров формы) Посмотрите hwgui\samples\database\dbview.prg Vlad04 пишет: - можно или нет сделать ЗАЛИВКУ формы цветом ? это как в hwgui\samples\all\a.prg ? Vlad04 пишет: - В коде samples встречается задание для формы STYLE WS_DLGFRAME + WS_SYSMENU + DS_CENTER ,в designer такого нет В дизайнере не все реализовано, но можно указать в ручную, например в методе onFormInit, oDlg:style += WS_DLGFRAME + WS_SYSMENU + DS_CENTER

alkresin: Vlad04 пишет: как поймать событие Resize ( изменение размеров формы) В onDlgInit прописываете oDlg:bSize := {|o,x,y| ... } Minimiizebox, Maximizebox Для диалогов я сейчас проверил - работает, для главного окна надо, наверное исправить кое-что. нажатие Tab перемещает курсор , но не на все поля Это не только в формах Дизайнера, я как-то не придавал этому значения. Надо будет в исходниках HwGUI поставить на кнопки и пр. стиль WS_TABSTOP можно или нет сделать ЗАЛИВКУ формы цветом ? Можно попробовать через onPaint ( я сам не пробовал ). Еще один вариант - указать цветную bmp в свойстве bitmap - она заполниет весь фон. В коде samples встречается задание для формы STYLE WS_DLGFRAME + WS_SYSMENU + DS_CENTER ,в designer такого нет Стилей разных в Windows API много, каждый по отдельности добавлять - в Инспекторе заблудишься. Хотя DS_CENTER, наверное, стоит включить. Vlad04 пишет: updown не могу в рамку оформить Попробуйте в bat, которым вы строите программу, включить WindowsXP.Manifest - как в samples/bld.bat

Vlad04: Page control - какие-то неувязки в Дизайнере. Вроде нарисовались закладке, при вторичном открытии - их нет. Однако в Инспекторе видны.Вторично щелкнешь Ок - появились. Начинаешь располагать контролы и при открытии формы закладки задваиваются и в итоге Error BASE/1132 Bound error: array access Called from source\htab.prg->HTAB:SHOWPAGE(218) Called from source\htab.prg->HTAB:CHANGEPAGE(190) Called from source\htab.prg->(b)HTAB_ENDPAGE(161) Called from source\htab.prg->HTAB:NOTIFY(285) ...



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