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




Пост 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 
ПрофильЦитата Ответить
Ответов - 256 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 All [только новые]


moderator




Пост N: 1515
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 01.07.19 14:06. Заголовок: SergKis пишет: Може..


SergKis пишет:

 цитата:
Может добавить функцию


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

Спасибо: 0 
ПрофильЦитата Ответить
moderator




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


Адаптировал свежую версию библиотеки для работы с Microsoft Visual C++ 2019 (32- и 64-бит).

По шагам:

1) скачал полный дистрибутив MSVC 2019 (примерно 22 ГБ) и установил его.

2) сделал консольную версию MSVC 2019 из вышеуказанного дистрибутива (около 454 МБ).

3) собрал компилятор Харбор из сырцов с помощью консольной версии MSVC 2019.

4) собрал и успешно протестировал библиотеку Минигуи с этим компилятором

Ваши комментарии приветствуются

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




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


gfilatov2002 пишет:

 цитата:
Адаптировал свежую версию библиотеки для работы с Microsoft Visual C++ 2019 (32- и 64-бит)


Отличная новость !
Теперь надо будет нужные проги переводить на MSVC.
Надеюсь будет работать лучше, чем на BCC.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7059
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 02.07.19 13:47. Заголовок: Andrey пишет: Надею..


Andrey пишет:

 цитата:
Надеюсь будет работать лучше, чем на BCC.


скорее всего разницы и не заметишь

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 1517
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 02.07.19 14:22. Заголовок: Dima пишет: разницы..


Dima пишет:

 цитата:
разницы и не заметишь


Если сравнивать по скорости выполнения простых операций, то разница есть (см. ниже)

 цитата:

2019-07-02 14:17:48 Windows 10 10.0
Harbour 3.2.0dev (r1904111533) Borland C++ 5.5.1 (32-bit) x86
THREADS: 0
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.02
====================================================================
[ T001: x := L_C ]..............................................0.03
[ T002: x := L_N ]..............................................0.03
[ T003: x := L_D ]..............................................0.03
[ T004: x := S_C ]..............................................0.03
[ T005: x := S_N ]..............................................0.05
[ T006: x := S_D ]..............................................0.03
[ T007: x := M->M_C ]...........................................0.05
[ T008: x := M->M_N ]...........................................0.03
[ T009: x := M->M_D ]...........................................0.03
[ T010: x := M->P_C ]...........................................0.05
[ T011: x := M->P_N ]...........................................0.03
[ T012: x := M->P_D ]...........................................0.03
[ T013: x := F_C ]..............................................0.03
[ T014: x := F_N ]..............................................0.02
[ T015: x := F_D ]..............................................0.03
[ T016: x := o:Args ]...........................................0.09
[ T017: x := o[ 2 ] ]...........................................0.08
[ T018: Round( i / 1000, 2 ) ]..................................0.11
[ T019: Str( i / 1000 ) ].......................................0.31
[ T020: Val( s ) ]..............................................0.11
[ T021: Val( a [ i % 16 + 1 ] ) ]...............................0.22
[ T022: DToS( d - i % 10000 ) ].................................0.25
[ T023: Eval( {|| i % 16 } ) ]..................................0.19
[ T024: Eval( bc := {|| i % 16 } ) ]............................0.13
[ T025: Eval( {| x | x % 16 }, i ) ]............................0.17
[ T026: Eval( bc := {| x | x % 16 }, i ) ]......................0.13
[ T027: Eval( {| x | f1( x ) }, i ) ]...........................0.22
[ T028: Eval( bc := {| x | f1( x ) }, i ) ].....................0.19
[ T029: Eval( bc := &( "{| x | f1( x ) }" ), i ) ]..............0.19
[ T030: x := &( "f1(" + Str( i ) + ")" ) ]......................1.30
[ T031: bc := &( "{| x | f1( x ) }" ), Eval( bc, i ) ]..........1.59
[ T032: x := ValType( x ) + ValType( i ) ]......................0.20
[ T033: x := StrZero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.38
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.17
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.19
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.17
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.19
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.19
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.17
[ T040: AScan( a, i % 16 ) ]....................................0.16
[ T041: AScan( a, {| x | x == i % 16 } ) ]......................1.36
[ T042: iif( i % 1000 == 0, a := {}, ), AAdd(a,{i,1,.T.,s, ]....0.44
[ T043: x := a ]................................................0.03
[ T044: x := {} ]...............................................0.06
[ T045: f0() ]..................................................0.03
[ T046: f1( i ) ]...............................................0.08
[ T047: f2( c[1...8] ) ]........................................0.05
[ T048: f2( c[1...40000] ) ]....................................0.05
[ T049: f2( @c[1...40000] ) ]...................................0.05
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.06
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.20
[ T052: f2( a ) ]...............................................0.06
[ T053: x := f4() ].............................................0.44
[ T054: x := f5() ].............................................0.11
[ T055: x := Space( 16 ) ]......................................0.08
[ T056: f_prv( c ) ]............................................0.17
====================================================================
[ total application time: ]....................................11.72
[ total real time: ]...........................................11.75


2019-07-02 14:18:48 Windows 10 10.0
Harbour 3.2.0dev (r1904111533) Microsoft Visual C++ 19.21.27702 (32-bit) x86
THREADS: 0
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.02
====================================================================
[ T001: x := L_C ]..............................................0.00
[ T002: x := L_N ]..............................................0.02
[ T003: x := L_D ]..............................................0.00
[ T004: x := S_C ]..............................................0.02
[ T005: x := S_N ]..............................................0.00
[ T006: x := S_D ]..............................................0.02
[ T007: x := M->M_C ]...........................................0.00
[ T008: x := M->M_N ]...........................................0.02
[ T009: x := M->M_D ]...........................................0.02
[ T010: x := M->P_C ]...........................................0.00
[ T011: x := M->P_N ]...........................................0.02
[ T012: x := M->P_D ]...........................................0.02
[ T013: x := F_C ]..............................................0.00
[ T014: x := F_N ]..............................................0.00
[ T015: x := F_D ]..............................................0.02
[ T016: x := o:Args ]...........................................0.05
[ T017: x := o[ 2 ] ]...........................................0.02
[ T018: Round( i / 1000, 2 ) ]..................................0.06
[ T019: Str( i / 1000 ) ].......................................0.14
[ T020: Val( s ) ]..............................................0.08
[ T021: Val( a [ i % 16 + 1 ] ) ]...............................0.13
[ T022: DToS( d - i % 10000 ) ].................................0.20
[ T023: Eval( {|| i % 16 } ) ]..................................0.11
[ T024: Eval( bc := {|| i % 16 } ) ]............................0.08
[ T025: Eval( {| x | x % 16 }, i ) ]............................0.09
[ T026: Eval( bc := {| x | x % 16 }, i ) ]......................0.06
[ T027: Eval( {| x | f1( x ) }, i ) ]...........................0.09
[ T028: Eval( bc := {| x | f1( x ) }, i ) ].....................0.08
[ T029: Eval( bc := &( "{| x | f1( x ) }" ), i ) ]..............0.08
[ T030: x := &( "f1(" + Str( i ) + ")" ) ]......................0.69
[ T031: bc := &( "{| x | f1( x ) }" ), Eval( bc, i ) ]..........0.75
[ T032: x := ValType( x ) + ValType( i ) ]......................0.09
[ T033: x := StrZero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.19
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.08
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.09
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.08
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.09
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.09
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.08
[ T040: AScan( a, i % 16 ) ]....................................0.13
[ T041: AScan( a, {| x | x == i % 16 } ) ]......................0.83
[ T042: iif( i % 1000 == 0, a := {}, ), AAdd(a,{i,1,.T.,s, ]....0.27
[ T043: x := a ]................................................0.00
[ T044: x := {} ]...............................................0.03
[ T045: f0() ]..................................................0.02
[ T046: f1( i ) ]...............................................0.03
[ T047: f2( c[1...8] ) ]........................................0.02
[ T048: f2( c[1...40000] ) ]....................................0.03
[ T049: f2( @c[1...40000] ) ]...................................0.02
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.03
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.11
[ T052: f2( a ) ]...............................................0.03
[ T053: x := f4() ].............................................0.13
[ T054: x := f5() ].............................................0.06
[ T055: x := Space( 16 ) ]......................................0.05
[ T056: f_prv( c ) ]............................................0.08
====================================================================
[ total application time: ].....................................6.34
[ total real time: ]............................................6.35



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2615
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.07.19 16:48. Заголовок: gfilatov2002 Добавь..


gfilatov2002
Добавьте в CLASS TWndData
 
ACCESS Title INLINE GetWindowText ( ::nHandle )
ASSIGN Title( cVal ) INLINE SetWindowText ( ::nHandle, cVal )
ACCESS Enabled INLINE IsWindowEnabled( ::nHandle )
ASSIGN Enabled( xVal ) INLINE iif ( Empty( xVal ), DisableWindow ( ::nHandle ), EnableWindow ( ::nHandle ) )


Пример для проверки на базе BASIC\ChildAsModal Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 1518
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 03.07.19 17:32. Заголовок: SergKis пишет: Доба..


SergKis пишет:

 цитата:
Добавьте в CLASS TWndData


Спасибо, добавил

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 1519
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 04.07.19 09:45. Заголовок: Обновил сборку 19.06..


Обновил сборку 19.06 (Update 2) с учетом последних наработок

Базовый дистрибутив находится по адресу

http://hmgextended.com/files/CONTRIB/hmg-19.06-setup.exe

Что нового:
Скрытый текст



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2627
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.07.19 09:47. Заголовок: gfilatov2002 Думает..


gfilatov2002
Думается функция _hmg_OnHideFocusManagement ( i ) для окна STANDART работает не точно.
Подправленный пример (был выше) тут https://TransFiles.ru/b0lgp
Нажатие кнопок на окнах CHILD и MODAL работает нормально, а на окне STANDART на передний план выводится окно MAIN и потом окно AlertInf(...). Если, в ф-ии _DO_BTN_( oBtn ), убрать строку (выделено цветом)Скрытый текст

окно MAIN так и останется на переднем плане в фокусе.

Спасибо: 0 
ПрофильЦитата Ответить
moderator




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


SergKis пишет:

 цитата:
на окне STANDART на передний план выводится окно MAIN


Да, это верно

Но это плата за то, что у этого окна нет родительского окна-хозяина (в отличие от CHILD).

SergKis пишет:

 цитата:
Если, в ф-ии _DO_BTN_( oBtn ), убрать строку


Поэтому и требуется предложенный Вами костыль.

Как это победить по-другому, я не нашел...

Спасибо: 0 
ПрофильЦитата Ответить



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


gfilatov2002 пишет
 цитата:
Как это победить по-другому, я не нашел...


Получается при первом STANDART надо убирать MAIN в hide (костыль в придачу), тогда, вроде, похоже на правду
Скрытый текст


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




Пост N: 6337
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.07.19 17:11. Заголовок: Заметил такую неприя..


Заметил такую неприятность.
В функциях пользуюсь определением имени формы
   ?  ThisWindow.Name, _HMG_ThisFormName, cStaticGlobalForm 
возвращает:
Form_Main Form_Main Form_AYC

cStaticGlobalForm - делаю определение сразу под созданием окна.
Т.е. должно всегда возвращаться Form_AYC !!!
Значит - ThisWindow.Name, _HMG_ThisFormName нельзя использовать ?

Правда у меня на форме Form_Main включён таймер на каждую секунду (для тестирования).
Может он влияет на псевдо-функции ThisWindow.Name, _HMG_ThisFormName ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2643
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.07.19 18:03. Заголовок: Andrey пишет Значит ..


Andrey пишет
 цитата:
Значит - ThisWindow.Name, _HMG_ThisFormName нельзя использовать ?


Перечитай http://clipper.borda.ru/?1-1-0-00000521-000-280-0-1563229132
Лучшее решение, по мне, функция aThis := _ThisInfo(), работаешь как с Alias(), сохраняешь\восстанавливаешь

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2644
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.07.19 18:08. Заголовок: PS т.е. в TIMER блок..


PS
т.е. в TIMER блоке на Form_Main ставишь
aThis := _ThisInfo() // в начале
...
_ThisInfo(aThis) // в конце

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2645
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.07.19 18:11. Заголовок: PPS Наврал, на TIMER..


PPS
Наврал, на TIMER не получится, там ставится среда This для Form_Main, sory

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




Пост N: 6338
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.07.19 18:24. Заголовок: Понял, что с TIMER н..


Понял, что с TIMER нужно аккуратно работать.
Всё таки решение через STATIC переменную типа cStaticThisForm более простое.
SergKis пишет:

 цитата:
Лучшее решение, по мне, функция aThis := _ThisInfo(), работаешь как с Alias(), сохраняешь\восстанавливаешь


Буду иметь ввиду. Уже кое где применил.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2646
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.07.19 18:30. Заголовок: Andrey пишет Всё так..


Andrey пишет
 цитата:
Всё таки решение через STATIC переменную типа cStaticThisForm более простое.


Теряется универсальность. Надо каждое окно делать в отдельном prg файле, иначе для каждого окна свою переменную, что фактически означает работу по имени окна, т.е. Form_Main.Btn1.Value и т.д.

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


Пост N: 1536
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 16.07.19 19:38. Заголовок: SergKis пишет: Теря..


SergKis пишет:

 цитата:
Теряется универсальность. Надо каждое окно делать в отдельном prg файле, иначе для каждого окна свою переменную, что фактически означает работу по имени окна, т.е. Form_Main.Btn1.Value и т.д.


hash-массив не поможет в этом случае?

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




Пост N: 6339
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.07.19 21:45. Заголовок: PSP пишет: hash-мас..


PSP пишет:

 цитата:
hash-массив не поможет в этом случае?


Да зачем усложнять то код написания.
Нужно проще писать код, чтобы когда нужно править так лет через 10, понимать что и как написано.
А то открываешь свой код написанный 12 лет назад и думаешь, кто так фигово написал то.... и почему до сих пор работает ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2647
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.07.19 22:21. Заголовок: PSP пишет Как это м..


PSP пишет [quote]`
Как это может помочь при плавающем cForm
 
WHILE _IsWindowDefined( cForm := cFrm+'_'+hb_ntos(++nFrm) )
ENDDO


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 256 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 88
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет