Форум » GUI » Новая версия Расширенного релиза библиотеки MiniGUI (часть VI ) (продолжение) » Ответить

Новая версия Расширенного релиза библиотеки MiniGUI (часть VI ) (продолжение)

gfilatov: Начало темы находится здесь, а теперь АНОНС * АНОНС * АНОНС * АНОНС * АНОНС Готовится к опубликованию новая сборка №48, которая выйдет в конце недели. Если у Вас есть интересные наработки для включения в новый релиз, то сейчас самое удобное время для их отправки мне Кратко, что нового: - исправление обнаруженных ошибок и неточностей кода; - новый класс HEADERIMAGE для Grid и Browse; - свойство Address в Hyperlink может теперь открывать папку или файл на диске; - добавлен NOTABSTOP класс для Browse; - поддержка пользовательских компонентов (заимствована из оффициального релиза); - расширения и исправления в библиотеках TsBrowse и PropGrid; - обновлены сборки Харбор и HMGS-IDE; - новые и обновленные старые примеры (как обычно ).

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

gfilatov2002: SergKis пишет: добавить дополнительно можно Добавлять ничего не нужно, эти клавиши уже работают. SergKis пишет: колесико всегда есть на окнах Проверил, колесико работает нормально, просто надо предварительно кликнуть внутри дочернего окна

Andrey: А GIF файлы будут работать на окне, если будем использовать его для [pre2] // Start preloding in a separate thread hb_threadDetach( hb_threadStart( HB_THREAD_INHERIT_MEMVARS, @WaitThreadTimer(), aParam ) )[/pre2]

gfilatov2002: Andrey пишет: GIF файлы будут работать на окне Да, проверил на примере из папки SAMPLES\Advanced\Tsb_Export_2 Что изменил: 1) поместил в окно WaitWin_* следующее определение для элемента GIF: [pre2] @ nIRow, nICol ANIGIF Gif_1 OBJ oGif PARENT &cFormName PICTURE "res\loading.gif" WIDTH 100 HEIGHT 100 [/pre2]2) определил глобальную статическую переменную oGif для видимости ее в функции WaitThreadTimerIcon() 3) заменил в функции WaitThreadTimerIcon() вызов [pre2] nStaticNum++ nStaticNum := IIF( nStaticNum > LEN(aStatPictWait), 1, nStaticNum ) DRAW ICON IN WINDOW &cFormName AT nRow, nCol PICTURE hStatPictWait[nStaticNum] ; WIDTH nWH HEIGHT nWH TRANSPARENT[/pre2] на [pre2] iif( ! oGif:IsRunning(), oGif:Play(), )[/pre2]


gfilatov2002: Подготовил 1-й релиз-кандидат новой сборки 23.02, которая планируется к выпуску на следующей неделе... Главное изменение связано с адаптацией библиотеки для работы с компилятором Open Watcom C версии 2.0 (32-bit). Также обновил Харбор до свежей версии: * Updated: Harbour Compiler 3.2.0dev (SVN 2023-02-03 02:46): * Updated libhpdf library to 2.4.3 (from 2.3.0 RC2). Прошу откликнуться всех, кому это интересно

Andrey: gfilatov2002 пишет: Прошу откликнуться всех, кому это интересно Конечно интересно ! С не терпеньем ждем !

Haz: gfilatov2002 пишет: Прошу откликнуться всех, кому это интересно Григорий, очень многим интересно. Многие помнят кардинальную смену курса и дальнейшее развитие неофициальной версии. Так же никто не забыл благодаря кому эта версия сохранила целостность и постоянно совершенствуется Спасибо.

SergKis: gfilatov2002 Предложение по SBrowse ( uAlias, cTitle, bSetUp, aCols, nWidth, nHeight, lSql, lModal, lNumber, lCenter ) - lModal делать (через \ варианты) : "M"\ 1 \ .T. - modal "C" \ 2 \ .F. - child "S" \ 3 - standard - new добавил окно WINDOWTYPE STANDARD и lCenter := .T. \ .F. - центровать окно или нет Пример и правленный исходник (в hbp примера prg не включал, у меня уже в основной либ сделано) тут https://TransFiles.ru/tpta8 для dbf вызов будет такой (modal окно) : SBrowse_Viewer( Alias(), Sys.ClientWidth, Sys.ClientHeight, , .T., {} )

gfilatov2002: SergKis пишет: Предложение по SBrowse Большое спасибо! Принято

SergKis: gfilatov2002 Собрал пример для типов окон "S" и "C" и получил ошибку для "C" при вып. ф-ии my_OnInit_SBrowse(), связанную с командой SET WINDOW THIS TO cWnd что то не срастается по среде This для Child окна, заменил на ф-ю HMG_This_SaveRest(...) (в тексте prg) - все ok! Запуск demo.exe C -> child окна demo.exe или demo.exe S - STANDARD окна Пример тут https://TransFiles.ru/sqagj

gfilatov2002: SergKis пишет: что то не срастается по среде This для Child окна Поправил эту функцию таким образом: FUNCTION my_OnInit_SBrowse(nMode, cWnd) LOCAL oBrw, oTsb, nWnd //, aThis LOCAL cBrw := "oBrw" SET WINDOW THIS TO cWnd //aThis := HMG_This_SaveRest( cWnd ) oBrw := this.(cBrw).Object //GetProperty(cWnd, "oBrw", "Object") oTsb := oBrw:Cargo nWnd := oTsb:nForm ? procname(), nMode, cWnd, nWnd, oTsb, oBrw:cParentWnd, oBrw:cControlName ThisWindow.Row := ThisWindow.Row + oMain:Cargo:aRow[ nMode ] ThisWindow.Col := ThisWindow.Col + oMain:Cargo:aCol[ nMode ] SET WINDOW THIS TO //HMG_This_SaveRest( aThis ) DO EVENTS ; _wPost(nMode + 1, oMain:Name, .T.) RETURN Nil У меня вроде работает нормально...

SergKis: gfilatov2002 пишет У меня вроде работает нормально... У меня тоже работает, но это не радует, т.к. порушились (для Child) правила This ... для окна (для STANDARD все ok!) This. ... ThisWindow. ... одно и тоже This.oBrw.Object ___^^^^ - имя контрола такое правописание позволяет сокращать текст и делать его более читаемым С ф-ей HMG_This_SaveRest() это все работает, ф-ю я взял из своей версии, т.к. применение ее парное, надо, наверное, подумать над командой с этой ф-ией SET WINDOW THIS SAVE aThis TO cWnd ... SET WINDOW THIS REST aThis TO для лучшей читаемости

gfilatov2002: SergKis пишет: This.oBrw.Object ___^^^^ - имя контрола Проверил запись в виде SET WINDOW THIS TO cWnd oBrw := this.oBrw.Object //GetProperty(cWnd, "oBrw", "Object") Она работает для дочернего окна тоже

SergKis: gfilatov2002 пишет Она работает для дочернего окна тоже но не работает This.Row, This.Col. Перебирать при переносе текст, та еще радость будет Сделал [pre2] #xcommand SET WINDOW THIS SAVE <a> TO <w> => <a> := HMG_This_SaveRest( <w> ) #xcommand SET WINDOW THIS REST <a> TO => HMG_This_SaveRest( <a> ) и код работает для "C" и "S" окон SET WINDOW THIS SAVE aThis TO cWnd oBrw := This.oBrw.Object //GetProperty(cWnd, "oBrw", "Object") oTsb := oBrw:Cargo nWnd := oTsb:nForm ? procname(), nMode, cWnd, nWnd, oTsb, oBrw:cParentWnd, oBrw:cControlName This.Row := This.Row + oMain:Cargo:aRow[ nMode ] This.Col := This.Col + oMain:Cargo:aCol[ nMode ] SET WINDOW THIS REST aThis TO [/pre2] PS Может лучше #xcommand SET WINDOW THIS <w> SAVE <a> => <a> := HMG_This_SaveRest( <w> ) #xcommand SET WINDOW THIS REST <a> => HMG_This_SaveRest( <a> )

gfilatov2002: SergKis пишет: не работает This.Row, This.Col Поправил в функции _SetThisFormInfo() этот фрагмент IF HB_ISCHAR( i ) i := GetFormIndex( i ) lDefine := ( _HMG_aFormType [ i ] == "C" ) и все заработало

SergKis: gfilatov2002 пишет и все заработало Да, с такой правкой работает как надо

SergKis: gfilatov2002 Довел пример с исп. SBrowse до какой то кондиции: https://TransFiles.ru/ottjz - смена типа окон S\C и немного управления - смена вида курсора - подсветка одинаковых ключей (группы) в просмотре

gfilatov2002: SergKis пишет: Довел пример с исп. SBrowse СПАСИБО

Andrey: SergKis пишет: Довел пример с исп. SBrowse до какой то кондиции: Не до конца работает пример Не работают кнопки Печать и Эксель. Как их заставить работать ?

sashaBG: Привет всем! Я решил использовать фильтра oBrw:FilterFTS( cSeek, .t. ) вместе с сервером LetoDB . Все работает, но заметил, что в логе сервера постоянно возникают вот такие строчки: 14.02.2023 12:06:30: Error BASE/1003 Variable does not exist: OB !WARNING! leto_Filter! filter not optimized or syntax error: ob:FilterFTS_Line( cFind, lUpper, lAll, ob) Становится понятно, что фильтр не оптимизирован для LEtoDB, и что LetoDB не видит переменную ob Можно ли ето както избежать?

SergKis: sashaBG пишет LetoDB не видит переменную ob По мне надо сделать 1. ф-ю на сервере, аналог методу METHOD FilterFTS_Line( cFind, lUpper, lAll ) CLASS TSBrowse которая построчно выполняет то, что надо для возврата .T.\.F. и вызывать ее в выражении :FilterData( cFilter ), переменных с клиента на сторону сервера не передавать, т.е. сделать FUNCTION UDF_FilterFTS_Line (...) ... RETURN lRet 2. Переписать на клиента в mem:File (или на диск) поля ключи для Relation на осн. базу (тут тоже можно ограничить выборку условием) и связав по Relatiion, ставим :FilterFTS(...) поля по связанному alias будут тащится на клиента, а сам :FilterFTS() применяется к базе на клиенте (TsBrowse на отобранную на клиента базу работает). По идее должно быть ok! В LetoDbF есть механизм передачи переменных и их значения на сторону сервера, но объекты (ссылка), думаю не передадуться тоже



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