On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
gfilatov
модератор




Пост N: 699
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 29.01.08 13:59. Заголовок: Новая версия Расширенного релиза библиотеки MiniGUI (часть VI ) (продолжение)


Начало темы находится здесь, а теперь

АНОНС * АНОНС * АНОНС * АНОНС * АНОНС

Готовится к опубликованию новая сборка №48, которая выйдет в конце недели.
Если у Вас есть интересные наработки для включения в новый релиз, то сейчас самое удобное время для их отправки мне

Кратко, что нового:

- исправление обнаруженных ошибок и неточностей кода;
- новый класс HEADERIMAGE для Grid и Browse;
- свойство Address в Hyperlink может теперь открывать папку или файл на диске;
- добавлен NOTABSTOP класс для Browse;
- поддержка пользовательских компонентов (заимствована из оффициального релиза);
- расширения и исправления в библиотеках TsBrowse и PropGrid;
- обновлены сборки Харбор и HMGS-IDE;
- новые и обновленные старые примеры (как обычно ).




Спасибо: 5 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]


SergKis
постоянный участник




Пост N: 4595
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.07.24 17:26. Заголовок: gfilatov2002 пишет Т..


gfilatov2002 пишет
 цитата:
Также потребовалось добавить oBrw:lRowPosAtRec := .T.


Это я пропустил (вылетело из головы, от жары, наверное, извините), т.к. установка :lRowPosAtRec := .T. у меня стоит в _TBrowse(...) по умолчанию, что бы всегда знать строки отображаемые и для Tooltip подсвечивать длинную информацию из строки
 
FUNCTION _TBrowse( oParam, uAlias, cBrw, nY, nX, nW, nH )
...
DEFAULT oParam := oHmgData()

DEFAULT oParam:lRowPosAtRec := .T.

...
:lRowPosAtRec := oParam:lRowPosAtRec

:Cargo:oParam := oParam
...

Вызов InsColNumber() в _DefineTBrowse() у себя сделал так Скрытый текст


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 2333
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 13.07.24 18:06. Заголовок: SergKis пишет: Вызо..


SergKis пишет:

 цитата:
Вызов InsColNumber() в _DefineTBrowse()


Работает.
Благодарю за помощь

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 2334
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 20.07.24 11:21. Заголовок: Всем кому это интересно...


Завершена подготовка новой сборки 24.07, которая будет опубликована в понедельник.

Благодарю Сергея Киселева за помощь при подготовке этой сборки.

Желаю всем хороших выходных.

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 7783
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.07.24 18:14. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Завершена подготовка новой сборки 24.07


А пример SIX3 будет в новой сборке ?

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 2335
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 20.07.24 18:44. Заголовок: Andrey пишет: приме..


Andrey пишет:

 цитата:
пример SIX3 будет в новой сборке ?


Нет.

К слову SIXRDD версии 3.02 был разработан в 1993-1995, и он поддерживается в Харборе для совместимости.
Многие его функции заменены вызовом нативных Харбор функций (или заданы через них).
В свое время, конечно, это был продвинутый RDD, но кому сейчас интересен формат DBF, кроме гиков

Считаю более актуальными для тех, кто рассматривает миграцию от DBF к SQL, примеры с использованием библиотек SQLRDD, SQLMIX и т.п.
Но я могу быть неправ...

P.S. Кстати, я включил в ПРО-сборку исправленную версию библиотеки SQLRDD:
- была исправлена ошибка, когда для символьных полей возвращался размер, который в 4 раза больше, чем размер оригинального поля в базе DBF. Эта ошибка проявляется только в 64-битной версии библиотеки.

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 7784
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.07.24 20:40. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Считаю более актуальными для тех, кто рассматривает миграцию от DBF к SQL, примеры с использованием библиотек SQLRDD, SQLMIX и т.п.
Но я могу быть неправ...


Это да, нужное решение.
А можно включить простой пример открытия базы SQLRDD с использованием ТСБ на базе примера SIX3 ?
Для sqlite тоже хотелось бы иметь пример на базе ТСБ, как пример для SIX3 (коротко и понятно)
Я сам работал ранее с PostgreSql, сделаю простой пример для него, ранее давал конвертор DBF -> PgSql.

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 2336
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 22.07.24 09:50. Заголовок: Опубликована финальн..


Опубликована финальная сборка 24.07

Стандартная сборка

Профессиональная сборка (под паролем)

Также были подготовлены дополнительные сборки для следующих компиляторов:

- MinGW GNU C 14.1.0 (packaged on 2024-07-09)

- BCC 7.70 (32-bit) (основан на коде Борланда)

- BCC 7.70 (64-bit) (основан на CLang 5.0)

Желаю всем хорошего дня

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 4599
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.07.24 16:16. Заголовок: gfilatov2002 Работа..


gfilatov2002
Работа с цветом, в :DrawHeaders() с :lSelector := .T., на мой взгляд, не корректна, т.е. отключен метод :SetColor() и стандартные задания цветов в заголовках SELECTOR и добавка DATA nClrSelectorFtBack // special selector footer background color мало что решает, заполняем лишние переменные, когда есть переменные самой колонки + при установке цвета есть неточность кода
 
IF ::lDrawSpecHd
...
IF nI == nBegin .AND. ::lSelector
nClrBacks := iif( ::lDrawSpecHd, ::nClrSpcHdBack, nClrHeadBack )
...
мы уже в ::lDrawSpecHd. Предлагаю вернуться к варианту
DATA nClrSelectorHdBack // special selector header background color
DATA nClrSelectorFtBack // special selector footer background color
если не убирать эту строку
DATA lClrSelectorHdBack AS LOGICAL INIT .T. // special selector header background color

...
METHOD DrawHeaders( lFooters, lDrawCell ) CLASS TSBrowse
...
IF !( nJ == 1 .AND. ::lSelector )
IF ( nClrBack := iif( ::nColOrder == nI, oColumn:nClrOrdeBack, oColumn:nClrHeadBack ) ) == NIL
nClrBack := iif( ::nColOrder == nI, nClrOrdeBack, nClrHeadBack )
ENDIF
ELSEIF ! ::lClrSelectorHdBack
nClrBack := oColumn:nClrHeadBack
ELSEIF ::nClrSelectorHdBack != NIL
nClrBack := ::nClrSelectorHdBack
ELSE
nClrBack := ATail( ::aColumns ):nClrHeadBack
ENDIF
...
IF ::lDrawSpecHd
...
IF nI == nBegin .AND. ::lSelector
//!!! nClrBacks := iif( ::lDrawSpecHd, ::nClrSpcHdBack, nClrHeadBack )
IF ! ::lClrSelectorHdBack
nClrBacks := oColumn:nClrSpcHdBack
ELSEIF ::nClrSelectorHdBack != NIL
nClrBacks := ::nClrSelectorHdBack
ELSE
nClrBacks := nClrHeadBack
ENDIF
ELSE
nClrBacks := iif( ::nPhantom == -1, ATail( ::aColumns ):nClrSpcHdBack, nClrPane )
ENDIF
...
IF ::lFooting .AND. ::lDrawFooters
...
IF !( nJ == 1 .AND. ::lSelector ) // JP
nClrBack := iif( oColumn:nClrFootBack != NIL, oColumn:nClrFootBack, nClrFootBack )
ELSEIF ! ::lClrSelectorHdBack
nClrBack := oColumn:nClrFootBack
ELSEIF ::nClrSelectorFtBack != NIL
nClrBack := ::nClrSelectorFtBack
ELSEIF ::nClrSelectorHdBack != NIL
nClrBack := ::nClrSelectorHdBack
ELSE
nClrBack := ATail( ::aColumns ):nClrFootBack
ENDIF
nClrBack := ::GetValProp( nClrBack, nClrBack, nJ )
...
Где oBrw:lClrSelectorHdBack := .F. - вкл. работу от параметров цветов из объекта колонки

Еще правка в _Tbrowse(...)
FUNCTION _TBrowse( oParam, uAlias, cBrw, nY, nX, nW, nH )

LOCAL oBrw, aTmp, aBrush, aHead, aField, aFoot, aColor
LOCAL cForm, lSpecHd, bInit, bEnd
LOCAL hForm
LOCAL i, j
DEFAULT oParam := oHmgData()
DEFAULT oParam:cForm := oParam:cFormName
DEFAULT oParam:cForm := _HMG_ThisFormName

cForm := oParam:cForm
hForm := GetFormHandle( cForm )

DEFAULT oParam:lRowPosAtRec := .T.
...
DEFINE TBROWSE &cBrw OBJ oBrw AT nY,nX WIDTH nW HEIGHT nH CELL ;
PARENT &(cForm) ;
...
Еще маленькая добавка
CLASS TWndData
...
METHOD Maximize() INLINE ShowWindow( ::nHandle, SW_MAXIMIZE )
METHOD Minimize() INLINE ShowWindow( ::nHandle, SW_MINIMIZE )

METHOD Restore() INLINE ShowWindow( ::nHandle, SW_RESTORE )
...


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 2337
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 25.07.24 17:09. Заголовок: SergKis пишет: Рабо..


SergKis пишет:

 цитата:
Работа с цветом
правка в _Tbrowse(...)


SergKis пишет:

 цитата:
Еще маленькая добавка


Все правки приняты.
Благодарю за помощь

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 4600
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.07.24 21:40. Заголовок: gfilatov2002 Как то..


gfilatov2002
Как то много букв с ::nDataType, может упростить
 
ACCESS IsArr INLINE AND( ::nDataType, DATATYPE_ARRAY ) != 0
ACCESS IsDbf INLINE AND( ::nDataType, DATATYPE_RDD ) != 0
ACCESS IsAdo INLINE AND( ::nDataType, DATATYPE_ADO ) != 0
ACCESS IsText INLINE AND( ::nDataType, DATATYPE_TEXT ) != 0

ACCESS IsEdit INLINE ! Empty( ::aColumns[ ::nCell ]:oEdit )
ACCESS Tsb INLINE ::oWnd
ACCESS nAtPos INLINE iif( ::IsDbf, ( ::cAlias )->( RecNo() ), ::nAt )
//ACCESS nAtPos INLINE iif( ::nDataType == DATATYPE_RDD, ( ::cAlias )->( RecNo() ), ::nAt )
ACCESS IsRowPosAtRec INLINE ;
и далее по тексту где есть конструкции типа ::nDataType == DATATYPE_RDD или такие
IF ! EmptyAlias( ::cAlias ) .AND. AND( ::nDataType, DATATYPE_ARRAY ) == 0 .AND. ;
AND( ::nDataType, DATATYPE_TEXT ) == 0 .AND. AND( ::nDataType, DATATYPE_ADO ) == 0
::lIsDbf := .T.
ENDIF
заменить


Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 4611
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.07.24 09:27. Заголовок: gfilatov2002 Правка..


gfilatov2002
Правка _TBrowse(...) Скрытый текст

PS
В TsBrowse пропустили ?
 
FUNCTION _DefineTBrowse( ControlName, ParentFormName, nCol, nRow, nWidth, nHeight, ;
...
IF ISCHAR ( ControlName ) .AND. ControlName == "0"
ControlName := HMG_GetUniqueName()
ENDIF

IF _IsControlDefined( ControlName, ParentFormName ) .AND. .NOT. _HMG_DialogInMemory

PS2
Добавил
 
i_timer.ch
#command DEFINE TIMER <name> ;
[ <dummy1: OF, PARENT> <parent> ] ;
[ INTERVAL <interval> ] ;
[ ACTION <action> ] [ <lOnce: ONCE> ] [ ON INIT <bInit> ] ;
=> ;
_DefineTimer ( <(name)>, <(parent)>, <interval>, <{action}>, <.lOnce.>, <bInit> )
...
h_timer.prg
FUNCTION _DefineTimer ( ControlName , ParentForm , Interval , ProcedureName , Once , bInit )
...
Do_ControlEventProcedure ( bInit, k )

RETURN lSuccess

использовать
DEFINE TIMER &(cN) INTERVAL 700 ON INIT {|| This.Enabled := .F. } ;
ACTION {|| ... }

PS3
h_objects.prg
FUNCTION oDlu4Font( nFontSize, lDlu2Pix, nPrcW, nPrcH )
...
IF HB_ISCHAR( nFontSize )
nFontSize := _GetFontSize(nFontSize, "Main")
ENDIF

DEFAULT lDlu2Pix := .T., nFontSize := 11 //, nPrcW := 100, nPrcH := 100
...
использовать oDlu := oDlu4Font( "Normal" )


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 2338
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 30.07.24 16:53. Заголовок: SergKis пишет: Прав..


SergKis пишет:

 цитата:
Правка _TBrowse(...)


Все поправки приняты с благодарностью

По ходу, исправил опечатку
SergKis пишет:

 цитата:

IF HB_ISBLOCK( oParam:bLostFocus )
oBrw:bGotFocus := oParam:bLostFocus // :bLostFocus := {|hCtlFocus,ob| ... }
ENDIF


на
IF HB_ISBLOCK( oParam:bLostFocus )
oBrw:bLostFocus := oParam:bLostFocus // :bLostFocus := {|hCtlFocus,ob| ... }
ENDIF

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 4613
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 30.07.24 18:44. Заголовок: gfilatov2002 пишет и..


gfilatov2002 пишет
 цитата:
исправил опечатку


Спасибо , пропустил такую бяку

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 7822
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.08.24 15:42. Заголовок: Собираю проект Tsb_A..


Собираю проект Tsb_Access2 в версии 23.12.5 - всё работает.
Если собираю последней версией 24.07 - вылетает с такой ошибкой:
Error BASE/1005 Message not found: TSBROWSE:_LCLRSELECTORHDBACK 
Args:
[1] = O TSBROWSE
Called from __ERRRT_SBASE(0)
Called from TSBROWSE:ERROR(0)
Called from (b)HBOBJECT(0)
Called from TSBROWSE:MSGNOTFOUND(0)
Called from TSBROWSE:_LCLRSELECTORHDBACK(0) <<-- наверное нет в версии 24.07
Called from MYTSBEND(744) in module: tsb_ViewAccess.prg
Called from DRAW_RECORDSET(351) in module: tsb_ViewAccess.prg


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 7827
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.08.24 15:29. Заголовок: Не работает мой прое..


Не работает мой проект Tsb_dbf(0.74).7z на версии 24.07
Ошибка на версии 24.07 такая:
Error BASE/1081 Неверный аргумент: + Args: [1] = C Window: [2] = U 
--------------------------------- Stack Trace ---------------------------------
Called from _DEFINETBROWSE(249) in module: h_tbrowse.prg
Called from _TBROWSE(558) in module: h_controlmisc2.prg
Called from TSB_VIEWDBF(63) in module: tsb_ViewDbf.prg
Called from MENU2OPENFILE(171) in module: 2file.prg
Called from (b)SETS_EVENT2WINDOWSTANDART(211) in module: 0main.prg
Called from DO_WINDOWEVENTPROCEDURE(82) in module: h_objmisc.prg
Called from TWNDDATA:DOEVENT(1435) in module: h_objects.prg
Called from DO_ONWNDLAUNCH(668) in module: h_objmisc.prg
Called from (b)INIT(127) in module: h_init.prg

Если собираю на версии Сергея - 23.12.5 то работает

Нет правки для случая когда объект ТСБ определяется на другом окне.
Мой код:
   // ------ вариант 2 
oTsb:cForm := oWnd:Name // <--- обязательно так !!!
oTsb:cFormName := oWnd:Name // или так
? ProcNL(), cAls, ALIAS(), "cBrw=",cBrw
// функция в библиотеке \MiniGUI\SOURCE\TsBrowse\h_controlmisc2.prg
oBrw := _TBrowse( oTsb, cAls, cBrw, oTsb:nY, oTsb:nX, oTsb:nW, oTsb:nH ) <<<----- строка 63

Наверное в версии 24.07 нет изменений для назначения
oTsb:cForm    и    oTsb:cFormName

Проект отправил на почту.

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 4620
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.08.24 19:13. Заголовок: Andrey Будь внимате..


Andrey
Будь внимательнее
gfilatov2002 22.07.24 09:50.
 цитата:
Опубликована финальная сборка 24.07


После этого ... SergKis => предложения ...
gfilatov2002
 цитата:
Все поправки приняты



Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 4621
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 21.08.24 16:43. Заголовок: gfilatov2002 Предло..


gfilatov2002
Предложение по Alert*, добавить смену фонта, т.е.
 
STATIC aBackColor, aFontColor, cFontNameAlert := "DlgFont"

*-----------------------------------------------------------------------------*
FUNCTION HMG_Alert( cMsg, aOptions, cTitle, nType, cIcoFile, nIcoSize, aBtnColors, bInit, lClosable, cFontName )
*-----------------------------------------------------------------------------*
...
hb_default( @lClosable, .F. )
hb_default( @cFontName, cFontNameAlert )
...
*-----------------------------------------------------------------------------*
FUNCTION _SetMsgAlertFontName( cFontName )
*-----------------------------------------------------------------------------*
LOCAL cOldFont := cFontNameAlert

IF cFontName != NIL
cFontNameAlert := cFontName
ENDIF

RETURN cOldFont


Применение
...
// Alert* font
_DefineFont("DlgFont" , o:cDlgFont , o:nDlgSize , .F., .F. )
_DefineFont("DlgFont2", "Courier New" , o:nDlgSize , .F., .F. )
...
cOld := _SetMsgAlertFontName("DlgFont2")
AlertInfo(cMsg)
_SetMsgAlertFontName(cOld)



Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 2344
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 24.08.24 16:00. Заголовок: SergKis пишет: Пред..


SergKis пишет:

 цитата:
Предложение по Alert*, добавить смену фонта


Благодарю за помощь

Добавил такое описание в файл changelog.txt

 цитата:
* Enhanced: Added the auxiliary function HMG_Alert_FontName() for managing
of a font name in the function HMG_Alert().
Usage:
// Alert* font
_DefineFont( "DlgFont" , o:cDlgFont , o:nDlgSize, .F., .F. )
_DefineFont( "DlgFont2", "Courier New", o:nDlgSize, .F., .F. )
...
cOld := HMG_Alert_FontName( "DlgFont2" )
AlertInfo( cMsg )
HMG_Alert_FontName( cOld )



Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 2345
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 02.09.24 09:58. Заголовок: Всем кому это интересно...


Опубликована финальная сборка 24.08

Стандартная сборка

Профессиональная сборка (под паролем)

Также были подготовлены дополнительные сборки для следующих компиляторов:

- MinGW GNU C 14.2.0 (packaged on 2024-08-06)

- BCC 7.70 (32-bit) (основан на коде Борланда)

- BCC 7.70 (64-bit) (основан на CLang 5.0)

Желаю всем хорошего дня

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 4627
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.09.24 18:46. Заголовок: gfilatov2002 Пример..


gfilatov2002
Примеры Tsb_SBrowse. При вкл. корректировки колонки Notes формируются файлы checkres.txt, строки
C:\MiniGuiBcc58\SAMPLES\Advanced\Tsb_sbrowse\demo.exe -- BRUSH,1141904083,TSMULTI:NEW(76)->TSBROWSE:EDIT(5559)->TSBROWSE:KEYDOWN(8761)->TSBROWSE:HANDLEEVENT(9669)->EVENTS(141)->DOMESSAGELOOP(0)->_ACTIVATEWINDOW(1648)->SBROWSE(308)->(b)MAIN(37)->_PROCESSINITPROCEDURE(1824)->_ACTIVATEWINDOW(1635)->DOMETHOD(5909)->MAIN(51)

C:\MiniGuiBcc58\SAMPLES\Advanced\Tsb_sbrowse\demo2.exe -- BRUSH,-2146429614,TSMULTI:NEW(76)->TSBROWSE:EDIT(5559)->TSBROWSE:KEYDOWN(8761)->TSBROWSE:HANDLEEVENT(9669)->EVENTS(141)->DOMESSAGELOOP(0)->_ACTIVATEWINDOW(1648)->SBROWSE(308)->MY_SBROWSE(82)->(b)MAIN(48)->DO_WINDOWEVENTPROCEDURE(82)->TWNDDATA:DOEVENT(1441)->DO_ONWNDLAUNCH(668)->(b)INIT(127)->EVENTS(1179)->DOMESSAGELOOP(0)->_ACTIVATEWINDOW(1648)->DOMETHOD(5909)->MAIN(69)

Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 399
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет