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: 3185
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.05.20 17:16. Заголовок: gfilatov2002 По HMG..


gfilatov2002
По HMG_ALert(...), добавить static переменную для кол-сток, сейчас стоит константа 20 Скрытый текст

Что бы управлять высотой окна

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




Пост N: 1700
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 11.05.20 18:59. Заголовок: SergKis пишет: доба..


SergKis пишет:

 цитата:
добавить static переменную...
Что бы управлять высотой окна


Добавил, конечно. Но переименовал функцию в HMG_Alert_MaxLines()
Благодарю за помощь

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




Пост N: 3188
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.05.20 13:31. Заголовок: gfilatov2002 Немног..


gfilatov2002
Немного подкрутил h_alert.prg для контроля выхода за пределы экрана по width.
Вот, что получилось. Пример и исходник тут https://TransFiles.ru/mowhr
Можно поиграть размером фонта
DEFINE FONT DlgFont FONTNAME "Courier New" SIZE _HMG_DefaultFontSize + 1
DEFINE FONT DlgFont FONTNAME "Courier New" SIZE _HMG_DefaultFontSize
DEFINE FONT DlgFont FONTNAME "Courier New" SIZE _HMG_DefaultFontSize - 1
DEFINE FONT DlgFont FONTNAME "Courier New" SIZE _HMG_DefaultFontSize - 2

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




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


SergKis пишет:

 цитата:
подкрутил h_alert.prg для контроля выхода за пределы экрана


Эти изменения не приняты по причине увеличения ширины окон Alert* в примере из папки samples\Basic\WALERT_2
Изменения в файле h_alert.prg не должны приводить к изменению вида обычных окон (совместимость снизу вверх)

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




Пост N: 3189
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.05.20 15:28. Заголовок: gfilatov2002 пишет и..


gfilatov2002 пишет
 цитата:
изменения не приняты по причине увеличения ширины окон Alert*


Очень не хочется писать лишний блок кода bInit. Может такие поправки помогут
 
STATIC s_nMaxLineas := 20
STATIC s_lMaxWidth := .F.


*-----------------------------------------------------------------------------*
FUNCTION HMG_Alert_MaxLines( nMaxLineas, lMaxWidth )
*-----------------------------------------------------------------------------*
IF HB_ISNUMERIC(nMaxLineas ) .and. nMaxLineas > 0
s_nMaxLineas := nMaxLineas
ENDIF
IF HB_ISLOGICAL( lMaxWidth )
s_lMaxWidth := lMaxWidth
ENDIF

RETURN s_nMaxLineas
...
STATIC FUNCTION FillDlg( cMsg, aOptions, nLineas, cIcoFile, nIcoSize, aBtnColors, bBlock, lClosable, cFont, nMaxLen )
...
LOCAL nMaxLineas := HMG_Alert_MaxLines()
LOCAL lMaxWidth := s_lMaxWidth
LOCAL nMaxWidth := 0

...
nChrHeight := GetTextHeight( hDC, aOptions[ 1 ], hDlgFont ) + nVMARGIN_BUTTON / 2

// calculate the maximum width of the lines
IF lMaxWidth
nMaxWidth := GetFontWidth ( cFont, nMaxLen )
ENDIF


FOR n := 1 TO nLineas
...


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




Пост N: 3190
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.05.20 15:31. Заголовок: PS В примере demo7.p..


PS
В примере demo7.prg ставим
HMG_Alert_MaxLines(23, .T.)

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




Пост N: 1702
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 13.05.20 15:59. Заголовок: SergKis пишет: таки..


SergKis пишет:

 цитата:
такие поправки помогут


Да, с этими изменениями примеры не отличаются

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




Пост N: 3191
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.05.20 16:27. Заголовок: gfilatov2002 пишет Д..


gfilatov2002 пишет
 цитата:
Да, с этими изменениями примеры не отличаются


В примере BASIC\WALERT_2 надо, наверно, учесть вылезание списка ошибок за пределы descktop при фонте 16 на 14" мониторе (кнопку почти не видно), т.е. надо ставить ограничение по высоте
 
DEFINE FONT DlgFont FONTNAME "DejaVu Sans Mono" SIZE 16

SET MSGALERT FONTCOLOR TO BLACK
SET MSGALERT BACKCOLOR TO {248,209,211}

cMsg := ""
aButton := { "&Continue" }
cTitle := "Multiline Error Message"
cIcoRes := "Stop64.ico"
nIcoSize := 64
aBtnColor := { {235,117,121} }

FOR nI := 1 TO 99
cMsg += "Error: " + HB_NtoS( nI ) + " simple error message.;"
NEXT

HMG_Alert_MaxLines( 15 )

HMG_Alert( cMsg, aButton, cTitle, Nil, cIcoRes, nIcoSize, aBtnColor )

RELEASE FONT DlgFont


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




Пост N: 3192
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.05.20 17:00. Заголовок: PS Возможно есть смы..


PS
Возможно есть смысл добавить
 
STATIC FUNCTION FillDlg( cMsg, aOptions, nLineas, cIcoFile, nIcoSize, aBtnColors, bBlock, lClosable, cFont, nMaxLen )
...
// calculate the maximum width of the lines
IF lMaxWidth
nMaxWidth := GetFontWidth ( cFont, nMaxLen )
IF GetTextWidth( hDC, space(10), hDlgFont ) != GetTextWidth( hDC, replicate("B", 10), hDlgFont )
nMaxWidth *= 0.7
ENDIF

ENDIF
...


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




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


SergKis пишет:

 цитата:
есть смысл добавить


Спасибо
Да, я тоже вышел на этот коэффициент 0,7

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




Пост N: 3193
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.05.20 17:47. Заголовок: gfilatov2002 пишет я..


gfilatov2002 пишет
 цитата:
я тоже вышел на этот коэффициент 0,7


Ширины может не хватить, если исп. много заглавных букв типа W,B
Можно игнорировать ситуацию или ввести static переменную для коэф. 0.7 или установленного в переменную

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




Пост N: 1704
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 13.05.20 19:37. Заголовок: Убрал статик-перемен..


Убрал статик-переменную s_lMaxWidth, т.к. теперь в ней нет необходимости

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




Пост N: 3194
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 14.05.20 11:45. Заголовок: gfilatov2002 Сделал..


gfilatov2002
Сделал контроль выхода за пределы экрана по height
 
STATIC FUNCTION FillDlg( cMsg, aOptions, nLineas, cIcoFile, nIcoSize, aBtnColors, bBlock, lClosable, cFont, nMaxLen )
...
LOCAL nMaxLineas := HMG_Alert_MaxLines()
LOCAL nMaxWidth, nMaxHeight

...
IF MSC_VER() > 0 .AND. _HMG_IsThemed
nWidthDlg += 10
nHeightDlg += 10
ENDIF

IF nHeightDlg > System.ClientHeight
n := 0
WHILE ( nHeightDlg - ( nChrHeight * ( ++n ) ) ) > System.ClientHeight
END
nMaxHeight := nChrHeight * n
nMaxLineas -= n
nHeightDlg -= nMaxHeight
nHeightCli -= nMaxHeight
ENDIF

This.Width := nWidthDlg
...


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




Пост N: 3195
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 14.05.20 11:50. Заголовок: PS В примере BASIC&#..


PS
В примере BASIC\WALERT_2 окно со списком не выходит за пределы окна при фонте SIZE 16 и больше
В примере demo7 установка большего фонта или HMG_Alert_MaxLines(35) - все в пределах окна

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




Пост N: 1705
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 14.05.20 13:10. Заголовок: SergKis пишет: конт..


SergKis пишет:

 цитата:
контроль выхода за пределы экрана по height


Добавил, контрольный пример отработал нормально.
Благодарю за помощь

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





Пост N: 250
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 14.05.20 16:30. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Harbour MiniGUI Extended Edition 20.04 (Release) (64-bit)



А какие возможности эта версия дает по сравнению с 32-битными? Если не пользоваться большими числами в расчетах.

Хотел ради интереса посмотреть примеры. Как я понимаю последняя общедоступная версия была 16.10?
Скачал ее, но при сборке примеров почему-то вылезает ошибка с файлом minigui.ch, хотя все есть, вроде.
Если кто помнит, там все файлы есть или надо еще что-то скачивать? Или просто пути там не так прописаны?

Хочется вообще посмотреть на это, как на демо, понять нужность или не ненужность для себя.
А с поддержкой увы, ранее хотел говорить с директором о развитии, а тут с этим вирусом самим бы выжить.

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




Пост N: 1706
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 14.05.20 19:58. Заголовок: rvu пишет: какие во..


rvu пишет:

 цитата:
какие возможности эта версия дает по сравнению с 32-битными?


Благодарю за вопрос!
Если коротко, то это - относительно высокая скорость выполнения и возможность адресовать больший объем памяти, поскольку приложение становится нативным для 64-битной среды.
Подробнее можно почитать статьи в Интернете.

Приведу для справки список поддерживаемых Си-компиляторов:
- MinGW GNU C 10.1 - самый свежий и самый быстрый из всех
- BCC 64, основанный на LLVM/Clang C 3.3.1;
- Visual C++ 19.24.28314;
- PellesC 9.0.

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




Пост N: 3200
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.05.20 08:03. Заголовок: gfilatov2002 Правки..


gfilatov2002
Правки небольшие
 
CLASS TSBrowse FROM TControl
...
METHOD DrawFooters( lDrawCell ) INLINE ::DrawHeaders( .T., lDrawCell )
...
METHOD DrawHeaders( lFooters, lDrawCell ) CLASS TSBrowse
...
oColumn:oCellEnum:nClrBack := nClrBackS // 9
...
oColumn:oCellEnum:nClrTo := nClrToS // 25
...
oColumn:oCellFoot:nVAlign := nVAlign // 23
oColumn:oCellFoot:nVertText := 0 // 24
...
METHOD DrawLine( xRow, lDrawCell ) CLASS TSBrowse
...
oColumn:oCell:nRow := xRow //
...
oColumn:oCell:xRow := xRow // 3
...
oColumn:oCell:l3DLook := oColumn:l3DLook // 13
...
METHOD DrawSelect( xRow, lDrawCell ) CLASS TSBrowse
...
IF ! ::lDrawLine

IF empty( oColumn:oCell )
oColumn:oCell := TSBcell():New()
ENDIF

...


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




Пост N: 1707
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 16.05.20 11:32. Заголовок: SergKis пишет: Прав..


SergKis пишет:

 цитата:
Правки небольшие


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

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




Пост N: 3205
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 18.05.20 13:52. Заголовок: gfilatov2002 Добавь..


gfilatov2002
Добавьте ф-ю для получения hmg имени фонта от handle
 
FUNCTION HMG_FontName( FontHandle )
LOCAL FontName, i

IF ( i := AScan( _HMG_aControlHandles, FontHandle ) ) > 0
IF _HMG_aControlType [ i ] == "FONT"
FontName := _HMG_aControlNames [ i ]
ENDIF
ENDIF

RETURN FontName

Использование
...
cFntH := HMG_FontName( oHead:hFont )
cFntC := HMG_FontName( oCell:hFont )
cFntF := HMG_FontName( oFoot:hFont )
...
cN := cName+'_Head'
@ nY, nX LABEL &cN VALUE cValH WIDTH oCell:nSize HEIGHT oHead:nHeightCell FONT cFntH ;
BACKCOLOR aClrToH FONTCOLOR aForeH BORDER ON INIT {|| nY += This.Height + nGaps }

cN := cName+'_Cell'
@ nY, nX LABEL &cN VALUE cValC WIDTH oCell:nSize HEIGHT oCell:nHeightCell FONT cFntC ;
BACKCOLOR aBackC FONTCOLOR aForeC BORDER ON INIT {|| nY += This.Height + nGaps }

cN := cName+'_Foot'
@ nY, nX LABEL &cN VALUE cValF WIDTH oCell:nSize HEIGHT oFoot:nHeightCell FONT cFntF ;
BACKCOLOR aBackF FONTCOLOR aForeF BORDER ON INIT {|| nY += This.Height + nGaps }


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