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


gfilatov2002
moderator




Пост N: 2272
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.02.24 12:08. Заголовок: SergKis пишет: Пред..


SergKis пишет:

 цитата:
Предложение по


Принято
Но я добавлю эти изменения в обрамлении переменной __DEBUG__:

 цитата:

#ifdef __DEBUG__
...

#endif



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




Пост N: 4511
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.02.24 12:16. Заголовок: gfilatov2002 пишет Н..


gfilatov2002 пишет
 цитата:
Но я добавлю эти изменения в обрамлении переменной __DEBUG__:


Почему ?
Это основной режим, в моем понимании. Сейчас Cargo окна пуст и доступа к нему нет. А сделать на базе Alert ф-ий по темам с доп. наполнением - большая потребность. Сейчас мешает полное отсутствие инф. о DRAW ICON ... и лишние манипуляции делать чтобы определять тип button-ов., а так доступна вся инф. о контролах окна в простом виде
PS
Сейчас пробую использовать добавки, для отладки, код получается ~ такой (если интересно)Скрытый текст


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




Пост N: 2273
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.02.24 12:25. Заголовок: SergKis пишет: Это ..


SergKis пишет:

 цитата:
Это основной режим


Понял.
Тогда обрамление кода будет другим:

 цитата:

#ifdef _OBJECT_
...
#endif


поскольку в лайт-версии библиотеки команда SET OOP ON не поддерживается.

P.S. Кстати, решил разделить Минигуи на две сборки:
1) профессиональную версию (с разными дополнительными оптимизациями в Харборе и компактным бинарником Минигуи)
2) стандартную версию, которая будет распространяться бесплатно, но без дополнительных оптимизаций в Харборе и с отладочным кодом в библиотеке).
Что скажете по этому поводу
На мой взгляд, надо стимулировать пользователей, которые поддерживают развитие и поддержание библиотеки в актуальном состоянии.

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




Пост N: 4512
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.02.24 12:32. Заголовок: gfilatov2002 пишет п..


gfilatov2002 пишет
 цитата:
поскольку в лайт-версии библиотеки команда SET OOP ON не поддерживается


Поддерживается (включен) CLASS THmgData и oHmgData() до команды #ifdef _OBJECT_ в h_objects.prg

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




Пост N: 2274
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.02.24 12:37. Заголовок: SergKis пишет: Подд..


SergKis пишет:

 цитата:
Поддерживается


А как же тогда работает эта запись в заголовке minigui.ch

 цитата:

/* ***********************************************************************
* Enable support for the internal OOP classes
*
* By default this is turned ON.
*/
#ifndef _LITE_
#define _OBJECT_
#endif



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




Пост N: 4513
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.02.24 12:54. Заголовок: gfilatov2002 Смотрю..


gfilatov2002
Смотрю h_objects.prg
 
/*
* MINIGUI - Harbour Win32 GUI library source code
*
* Copyright 2017-2022 Aleksandr Belov, Sergej Kiselev <bilance@bilance.lv>
*/

#include "minigui.ch"

#include "i_winuser.ch"
#ifdef __XHARBOUR__
#include "hbcompat.ch"
#else
#xtranslate hb_HSetCaseMatch( <x>[, <z>] ) => ( hb_HCaseMatch( <x>[, <z>] ), <x> )
#endif
#include "hbclass.ch"

#define _METHOD METHOD

STATIC o_AppDlu2Pixel

///////////////////////////////////////////////////////////////////////////////
CLASS THmgData
///////////////////////////////////////////////////////////////////////////////
...
#ifdef _OBJECT_

#ifndef __XHARBOUR__
///////////////////////////////////////////////////////////////////////////////
CLASS TIniData INHERIT THmgData
///////////////////////////////////////////////////////////////////////////////
...

Объект-контейнер в любой версии должен быть, мое мнение, он, как и препроцессор, основа в псевдо ООП

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




Пост N: 2275
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.02.24 12:57. Заголовок: SergKis пишет: Смот..


SergKis пишет:

 цитата:
Смотрю h_objects.prg


Все верно!
Функция oHmgData() используется при создании глобальных статических переменных в ядре библиотеки.

Тогда обрамление будет таким
#ifdef _NAMES_LIST_
...

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




Пост N: 4514
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.02.24 13:25. Заголовок: gfilatov2002 пишет К..


gfilatov2002 пишет
 цитата:
Кстати, решил разделить Минигуи на две сборки:


Не оч. понятно деление.
По мне сейчас Min. комплект - SET OOP OFF, даже не представляю, что что то, серьезное, можно делать с ним (SQLRDD лишнее в ней). Когда заходили в hmg (~2012 г.) именно SET OOP ON не было, сделали и с тех пор это рабочая версия (по TsBrowse по мелочи перенес изменения из тек. версии в свою и всего хватает)
PS
В той, старой, версии еще не было тотальной борьбы за минимизацию кода и это хорошо, в ней спокойно работают hrb компиляции на лету, без комплекта harbour.exe и Include файлов, сейчас компиляция на лету затруднена, т.к. практически все нужные ф-ии убраны в файлы *.ch, например, это одна из причин, по которой не могу задействовать тек. версии hmg (только в качестве небольших утилит использовал)
PS
Пример для наглядности работы с macro использованием псевдо ф-й (т.е. городим огород),
на основе oHmgData() делаем Скрытый текст

и используем в ini
aWindow_YXWH = { oSys():Y, oSys():X, oSys():MaxW, oSys():MinH + 64 }

PS
Используя такую методику, теряется совместимость кодов для получения hrb, т.е. надо используемые ф-ии из *.ch переносить в отдельную lib и отключать *.ch от сборки проекта (собирать harbour.exe+Include можно, но для меня не вариант). Пока др. мыслей у меня нет

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




Пост N: 4517
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.02.24 16:41. Заголовок: gfilatov2002 пишет ..


gfilatov2002 пишет
 цитата:

Тогда обрамление будет таким
#ifdef _NAMES_LIST_
...


CLASS THmgData
не должен иметь никаких обрамлений кода, т.е. доступен всегда, как и заполнение Cargo Alert окна. Обрамление, как было, так и должно остаться при определении public переменных

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




Пост N: 2276
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.02.24 17:03. Заголовок: SergKis пишет: CLAS..


SergKis пишет:

 цитата:
CLASS THmgData
не должен иметь никаких обрамлений кода


Да. Именно так сейчас и сделано в коде ядра.
И в заголовке minigui.ch указано:
 
/* ***********************************************************************
* Enable support for the internal OOP classes
*
* By default this is turned ON.
*/
#ifndef _LITE_
#define _OBJECT_
#endif


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




Пост N: 4518
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.02.24 17:27. Заголовок: gfilatov2002 пишет И..


gfilatov2002 пишет
 цитата:
Именно так сейчас и сделано в коде ядра.


Я бы еще добавил уст. Значения во всех окнах, контролах (где сейчас пусто)
_HMG_aControlMiscData2 [k] := oHmgData() вместо ''
_HMG_aFormMiscData2 [ k ] := oHmgData() вместо ''
и ,возможно, App.Cargo тоже, сейчас там версия (значение char), его перенести в объект App.Cargo под опред. именем
"раз пошла такая пьянка ..."

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




Пост N: 7683
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.02.24 18:41. Заголовок: Да при старте програ..


Да при старте программы делаем:
 
INIT PROCEDURE SetsENV()

SET DATE TO GERMAN
SET DECIMALS TO 4
SET EPOCH TO 2000
SET EXACT ON
SET SOFTSEEK ON
SET CENTURY ON
SET AUTOPEN OFF
SET DELETED OFF

? Valtype(App.Cargo), App.Cargo
.....

Получаем - C Harbour MiniGUI 3.2.8 (stable)
А почему сразу нельзя присвоить так:
   App.Cargo := oHmgData() 
App.Cargo:MiniGui := "Harbour MiniGUI 3.2.8 (stable)"


И потом нигде не мучиться по коду, делая своё пере присвоение для App.Cargo !

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




Пост N: 2277
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.02.24 19:14. Заголовок: Andrey пишет: почем..


Andrey пишет:

 цитата:
почему сразу нельзя присвоить так:
App.Cargo := oHmgData()


Уже сделал
Благодарю за подсказку

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




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


gfilatov2002 пишет:

 цитата:
P.S. Кстати, решил разделить Минигуи на две сборки:
1) профессиональную версию (с разными дополнительными оптимизациями в Харборе и компактным бинарником Минигуи)
2) стандартную версию, которая будет распространяться бесплатно, но без дополнительных оптимизаций в Харборе и с отладочным кодом в библиотеке).
Что скажете по этому поводу


Может и надо такое деление...
Только в проф-версию ещё бы предоставить сборку с MS-C и Unicode

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




Пост N: 4519
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.02.24 09:11. Заголовок: gfilatov2002 Неболь..


gfilatov2002
Небольшая добавка
 
CLASS TIniData INHERIT THmgData
...
VAR nMaxVal AS NUMERIC INIT 20 // Max. length Value for note
VAR cSrcReplChar AS STRING INIT "" // Original replacement character
VAR cOutReplChar AS STRING INIT "" // Replacement by output symbol


METHOD New( cIni, lMacro, lUtf8, cChar, cData, cSrcChar, cOutChar ) INLINE ( ::Super:New( .T. ), ;
::Def( cIni, lMacro, lUtf8, cChar, cData, cSrcChar, cOutChar ), Self ) CONSTRUCTOR

_METHOD Def( cIni, lMacro, lUtf8, cChar, cData, cSrcChar, cOutChar )
_METHOD Read( cIniNew )
...
METHOD Def( cIni, lMacro, lUtf8, cChar, cData, cSrcChar, cOutChar ) CLASS TIniData
...
::cCommentChar := hb_defaultValue( cChar, ::cCommentChar )

IF HB_ISCHAR( cSrcChar ) .and. HB_ISCHAR( cOutChar )
::cSrcReplChar := cSrcChar
::cOutReplChar := cOutChar
ENDIF

...
METHOD ToValue( cStr ) CLASS TIniData

LOCAL xVal

IF Empty( cStr ) ; RETURN cStr
ENDIF

IF !Empty( ::cSrcReplChar )
cStr := StrTran( cStr, ::cSrcReplChar, ::cOutReplChar )
ENDIF

...
Это для оформления строк ini как таблица с колонками, задавать надо оба значения сразу, т.е.
o:oMenuData := TIniData():New(o:cMenuFile, .T., , , , "|", ","):Read()
или
o:oMenuData := TIniData():New(o:cMenuFile, .T., , , , chr(9), ""):Read()

содержимое ini, например, такое Скрытый текст


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




Пост N: 2278
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 13.02.24 11:50. Заголовок: SergKis пишет: Небо..


SergKis пишет:

 цитата:
Небольшая добавка


OK

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




Пост N: 4520
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 14.02.24 11:10. Заголовок: gfilatov2002 пишет К..


gfilatov2002 пишет
 цитата:
Кстати, решил разделить Минигуи на две сборки:


Сборки, по мне, должны содержать WVT, WVG lib, т.к. часто надо делать доступы к разным, чужим базам, почта, ... Это проще делать на WVT (у нас она сделана была как WVG еще на hb 2.0, содержит main menu, statusbar, button, ...). Сейчас иду делать это на свою сбору hb и hmg, т.к. для таких работ не требуется GUI интерфейс, но схожесть нужна

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




Пост N: 4521
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 14.02.24 13:07. Заголовок: PS Как относится к т..


PS
Как относится к тек. версии hmg, как к конечной ?
След. сборки уже поделятся на 2-е ?
Т.к. новые сборки пока изучишь, пока поймешь, что можно, что нельзя ..., т.е. до реал. использования много времени утечет.

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




Пост N: 2279
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 14.02.24 13:22. Заголовок: SergKis пишет: След..


SergKis пишет:

 цитата:
След. сборки уже поделятся на 2-е ?


Да.
Но разница между ними будет только в отсутствии оптимизации кода Минигуи и Харбора в стандартной сборке.
Эти оптимизации будут использованы в платной PRO-версии.
Вот и все.

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




Пост N: 4522
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 14.02.24 13:29. Заголовок: gfilatov2002 пишет Д..


gfilatov2002 пишет
 цитата:
Да.


Тогда под нее, с некоторыми предложенными правками, пример (кому интересно)
Тут https://TransFiles.ru/k17ey

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