On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение
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 [только новые]


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




Пост N: 7772
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.06.24 14:37. Заголовок: В функциях Alert*() ..


В функциях Alert*() наверное нужно сделать запоминание/возврат текущего окна и сохранения среды This
Я сталкивался с проблемами при показе простого сообщения.
Приходиться делать так:
         .... 
_SetThisFormInfo(oWnd)
AlertStop(cMsg) // или вызов другого окна
_SetThisFormInfo()
.....

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

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




Пост N: 2326
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.06.24 10:48. Заголовок: Всем кому это интересно


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

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

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

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

- MinGW GNU C 14.1.0 (packaged on 2024-05-08)

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

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

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

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




Пост N: 2327
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 14.06.24 12:50. Заголовок: Всем кому это интересно ;-)


Продолжаем хорошие новости...

Протестировал текущую сборку Минигуи со свежей сборкой разрабатываемой версии компилятора MinGW 15.0 (64-bit).
Результат можно увидеть на картинке ниже.



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





Пост N: 240
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 25.06.24 11:29. Заголовок: Начались проблемы с цветом заголовков


У меня один TSBrowse вызывает несколько десятков броузов.
Работает один блок создания экземпляра TSBrowse.
С версии 24.03 в каждом экземляре цвет заголовка и Background стал меняться.
Откатился на верию 24.01 - цвета отработали нормально..

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




Пост N: 7774
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.06.24 12:05. Заголовок: krutoff пишет: С ве..


krutoff пишет:

 цитата:
С версии 24.03 в каждом экземляре цвет заголовка и Background стал меняться.


Поставил сегодня 24.06, собрал свою большую прогу - цвет фона таблицы стал другим !
У меня в коде так:
         DEFINE TBROWSE oBrw ...              ; 
BACKCOLOR aBackColor ;
...

В примере Tsb_oHmgData в новой версии цвет фона таблицы тоже меняется !
Сделал в старой 23.12 фон нормальный.

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




Пост N: 4590
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.06.24 13:20. Заголовок: krutoff пишет С верс..


krutoff пишет
 цитата:
С версии 24.03 ...


Andrey пишет
 цитата:
в старой 23.12 фон нормальный


Была исправлена многолетняя ошибка в тсб (METHOD New) задания цветов параметром
 
DEFINE TBROWSE oBrw ... ;
BACKCOLOR aBackColor
FONTCOLOR aFontColor ;
COLOR aColors
;

Если посмотрите код, то была в массив aTmpColor сначала установка из элементов параметра команды, а потом делались Default-ы на все элементы aTmpColor, потом менялись принудительно др. элементы, например
 
IF lAutoFilter
aTmpColor[ 19 ] := GetSysColor( COLOR_INACTCAPTEXT )
ELSEIF lAutoSearch
aTmpColor[ 19 ] := GetSysColor( COLOR_INFOBK )
ENDIF

т.е. затиралась установка из массва параметра команды тсб. Приходилось всегда править цвета доп. методами :SetColor(...)
Правка коснулась перестановкой действий, сначала в массиве aTmpClor заполняются цвета по умолчанию (все элементы), потом команды IF lAutoFilter ... (см. выше) и потом из параметров команды тсб переносятся значения указанных\заданных элементов.
Код стал такой Скрытый текст


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




Пост N: 7775
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.06.24 15:38. Заголовок: SergKis пишет: Была..


SergKis пишет:

 цитата:
Была исправлена многолетняя ошибка в тсб (METHOD New) задания цветов параметром


Так как исправить/задать заново фон ТСБ ?

P.S. Поставил так, всё равно не работает !!!
      // цвет фона под таблицей 
IF MGVersNumba() >= 231202 // MG Version 23.12.02
:hBrush := aClrBrush
ELSE
DeleteObject(:hBrush)
:hBrush := CreateSolidBrush(aClrBrush[1], aClrBrush[2], aClrBrush[3])
ENDIF


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




Пост N: 4591
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.06.24 18:51. Заголовок: Кто нибудь может объ..


Кто нибудь может объяснить такую херомантию с цветами SpecHd ?
Имеем в
 
METHOD New( cControlName, nRow, nCol, nWidth, nHeight, bLine, aHeaders, aColSizes, cParentWnd, ;
...
aTmpColor[ 18 ] := GetSysColor( COLOR_BTNTEXT ) // nClrSpecHeadFore
aTmpColor[ 19 ] := GetSysColor( COLOR_BTNFACE ) // nClrSpecHeadBack
...
IF lAutoFilter
aTmpColor[ 19 ] := GetSysColor( COLOR_INACTCAPTEXT )
ELSEIF lAutoSearch
aTmpColor[ 19 ] := GetSysColor( COLOR_INFOBK )
ENDIF
...
::aColors := aTmpColor
...
в TSColumn еще краше
METHOD DefColor( oBrw, aTmpColor ) CLASS TSColumn
...
IF oBrw == NIL
...
ELSE
...
aTmpColor[ 17 ] := oBrw:nClrHeadBack, ;
aTmpColor[ 20 ] := oBrw:nClrSpcHdActive

IF oBrw:lEnum
DEFAULT aTmpColor[ 18 ] := oBrw:nClrHeadFore, ;
aTmpColor[ 19 ] := oBrw:nClrHeadBack
ELSE
DEFAULT aTmpColor[ 18 ] := oBrw:nClrEditFore, ;
aTmpColor[ 19 ] := oBrw:nClrEditBack
ENDIF

ENDIF
...
::nClrSpcHdFore := aTmpColor[ 18 ]
::nClrSpcHdBack := aTmpColor[ 19 ]
...
получается, что нет нормального задания цвета для спец. header, т.е. задаем
...
AAdd( aColors, { CLR_EDITF , {|| CLR_RED } } ) // 7 , текста редактируемого поля
AAdd( aColors, { CLR_EDITB , {|| CLR_YELLOW } } ) // 8 , фона редактируемого поля
...
AAdd( aColors, { CLR_SPCF , {|| CLR_RED } } ) // 18, specheader text
AAdd( aColors, { CLR_SPCB , {|| CLR_GRAY } } ) // 19, specheader back
...

В итоге получаем цвет спец. header от CLR_EDITF и CLR_EDITB, что не правильно.

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




Пост N: 7776
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.06.24 16:16. Заголовок: Если задаём цвет фон..


Если задаём цвет фона под таблицей ТОЛЬКО так:
   DEFINE TBROWSE &cBrw OBJ oBrw OF &cForm           ; 
AT oTsb:nY, oTsb:nX ALIAS oTsb:cAls WIDTH oTsb:nW HEIGHT oTsb:nH CELL ;
FONT oTsb:aFont ; // все фонты для таблицы
BRUSH oTsb:aClrBrush ; // цвет фона под таблицей

То в новой версии Минигуи 24.06 - цвет фона под таблицей будет белым ...
Если добавить так, самым последним при назначении цветов:
      :hBrush  := CreateSolidBrush(aClrBrush[1], aClrBrush[2], aClrBrush[3])  // цвет фона под таблицей 

То цвет фона под таблицей будет правильным.
Объясните мне разницу - почему так нужно делать ?
Мне не сложно добавить ещё строку в код, было бы без утечек памяти.
И ещё фигня происходит, после использования
   oBrw:Enabled(.F.) 
...
oBrw:Enabled(.T.)

Цвет фона под таблицей меняется на белый...

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




Пост N: 2328
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 28.06.24 15:16. Заголовок: Andrey пишет: Если ..


Andrey пишет:

 цитата:
Если задаём цвет фона под таблицей ТОЛЬКО так:
DEFINE TBROWSE &cBrw OBJ oBrw OF &cForm ;
AT oTsb:nY, oTsb:nX ALIAS oTsb:cAls WIDTH oTsb:nW HEIGHT oTsb:nH CELL ;
FONT oTsb:aFont ; // все фонты для таблицы
BRUSH oTsb:aClrBrush ; // цвет фона под таблицей

То в новой версии Минигуи 24.06 - цвет фона под таблицей будет белым


Благодарю за сообщение.

Я уже поправил использование класса BRUSH для этого синтаксиса команды DEFINE TBROWSE.

Andrey пишет:

 цитата:
после использования
oBrw:Enabled(.F.)
...
oBrw:Enabled(.T.)

Цвет фона под таблицей меняется на белый.


Эту проблему я тоже решил, внес исправление в код этого метода.



Примечание. В вашей программе не нужно делать никаких изменений, нужна только исправленная библиотека.

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




Пост N: 7777
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.06.24 13:13. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
В вашей программе не нужно делать никаких изменений, нужна только исправленная библиотека.


Там нужно код править для цветов, с учётом нового задания цвета для спецхидера.
Сделаю сам, когда пришлёте новую библиотеку.

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




Пост N: 2329
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 29.06.24 15:17. Заголовок: Andrey пишет: когда..


Andrey пишет:

 цитата:
когда пришлёте новую библиотеку


Проверь свою почту
Отправлено: Вчера, 15:39

 цитата:

Андрей!

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

Сейчас такой вызов должен отработать нормально

DEFINE TBROWSE oBrw AT nY,nX WIDTH nW HEIGHT nH CELL ;
FONT aTsbFont ;
BRUSH aBrush ;
ON INIT {|ob|



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




Пост N: 7778
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.06.24 21:50. Заголовок: Часть заработало, а ..


Часть заработало, а цвета спецхидера нет.
Отправил письмо на почту.

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




Пост N: 2330
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 30.06.24 15:02. Заголовок: Andrey пишет: цвета..


Andrey пишет:

 цитата:
цвета спецхидера нет.


Поправил назначение цветов спецхидера.
Результат см. на картинках







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




Пост N: 7779
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.07.24 13:36. Заголовок: ColorBack для footer..


ColorBack для footer "SELECTOR" берется из последней фантомной (добавленной колонки), которая перед VScrollBar-ом (исторически)
Для замены цвета введена переменная oBrw:nClrSelectorHdBack := ...
Если менять на другой цвет, то вверх таблицы становиться обгрызанным.
Можно ли добавить ЕЩЁ одну переменную, типа oBrw:nClrSelectorBottomBack для задания своего цвета ?
Или добавить другую переменную для верха "SELECTOR", типа oBrw:nClrSelectorTopBack для задания своего цвета ?
Вот для этого (1):


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




Пост N: 2331
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 07.07.24 15:35. Заголовок: Andrey пишет: добав..


Andrey пишет:

 цитата:
добавить ЕЩЁ одну переменную


Я добавил новую переменную nClrSelectorFtBack
Такой вид подвала устраивает


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




Пост N: 4592
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.07.24 15:42. Заголовок: Andrey пишет Можно л..


Andrey пишет
 цитата:
Можно ли добавить ЕЩЁ одну переменную


Можно добавить переменную отключающую :nClrSelectorHdBack и вкл. работу от данных цвета из колонки
 
DATA nClrSelectorHdBack // special selector header background color
DATA lClrSelectorHdBack AS LOGICAL INIT .T. // special selector header background color ON\OFF

DATA nClrLine // grid line color
...
METHOD DrawHeaders( lFooters, lDrawCell ) CLASS TSBrowse
...
IF ::lDrawHeaders .AND. ! lFooters
...
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 ::lFooting .AND. ::lDrawFooters
...
IF !( nJ == 1 .AND. ::lSelector ) // JP
nClrBack := iif( oColumn:nClrFootBack != NIL, oColumn:nClrFootBack, nClrFootBack )
ELSEIF ! ::lClrSelectorHdBack
nClrBack := oColumn:nClrFootBack

ELSEIF ::nClrSelectorHdBack != NIL
nClrBack := ::nClrSelectorHdBack
ELSE
nClrBack := ATail( ::aColumns ):nClrFootBack
ENDIF
...
тогда в prg делаем ~ так
...
oBrw:lClrSelectorHdBack := .F.
... когда виртуальные колонки уже есть в oBrw:aColumns
// изменим цвет колонки - виртуальная колонка / virtual column
oBrw:GetColumn("SELECTOR"):nClrBack := nBCSpH
oBrw:GetColumn("SELECTOR"):nClrFore := CLR_RED
oBrw:GetColumn("SELECTOR"):nClrHeadBack := CLR_GREEN
oBrw:GetColumn("SELECTOR"):nClrFootBack := CLR_YELLOW

...


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




Пост N: 4593
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.07.24 11:55. Заголовок: PS Для SpecHeader та..


PS
Для SpecHeader так же нужна правка, сделал так (тот же метод)
 
...
IF ::lDrawSpecHd
...
IF nI == nBegin .AND. ::lSelector
//!!! nClrBacks := iif( ::lDrawSpecHd, ::nClrSpcHdBack, nClrHeadBack )
IF ::nClrSelectorHdBack != NIL
nClrBacks := iif( ::lClrSelectorHdBack, ::nClrSelectorHdBack, oColumn:nClrSpcHdBack )
ELSE
nClrBacks := nClrHeadBack
ENDIF

ELSE
nClrBacks := iif( ::nPhantom == -1, ATail( ::aColumns ):nClrSpcHdBack, nClrPane )
ENDIF
...
Пример использования
oBrw:nClrSelectorHdBack := CLR_YELLOW
oBrw:lClrSelectorHdBack := .F. // background OFF
// изменим цвет колонки - виртуальная колонка / virtual column
oCol := oBrw:GetColumn("SELECTOR")
oCol:nClrBack := nBCSpH
oCol:nClrFore := CLR_RED
oCol:nClrHeadBack := CLR_BLUE
oCol:nClrFootBack := CLR_GREEN
oCol:nClrSpcHdBack := CLR_YELLOW

oCol := oBrw:GetColumn("ORDKEYNO")
oCol:nClrBack := nBCSpH
oCol:nClrFore := CLR_RED
oCol:nClrFootBack := nBCSpH
oCol:nClrFootFore := CLR_RED


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




Пост N: 4594
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.07.24 14:00. Заголовок: gfilatov2002 Сделал..


gfilatov2002
Сделал правки Скрытый текст

Пример на версии 23.12 https://TransFiles.ru/opjc0

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




Пост N: 2332
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 13.07.24 16:26. Заголовок: SergKis пишет: Сдел..


SergKis пишет:

 цитата:
Сделал правки


Принято с благодарностью

SergKis пишет:

 цитата:
Пример на версии 23.12


Криптование базы у меня НЕ работает.
Также потребовалось добавить

 цитата:
oBrw:lRowPosAtRec := .T.


и пропущенную обработку новых параметров метода InsColNumber() в функцию _DefineTBrowse().

После этого вывод картинки в колонку нумератора заработал.

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