On-line: PSP, гостей 0. Всего: 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 [только новые]


Dima
администратор




Пост N: 7256
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.12.20 19:16. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Выложил декабрьскую сборку по адресу:


Спасибо , я так понял это последняя....
Может и под MINGW выложите ?

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




Пост N: 1823
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.12.20 19:37. Заголовок: Dima пишет: Может и..


Dima пишет:

 цитата:
Может и под MINGW выложите ?


Посмотри в личке...

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




Пост N: 6855
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.12.20 08:41. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Выложил декабрьскую сборку по адресу:


* New: 'Get Text Width Test' sample. 
Based upon a contribution at official HMG forum.
Adapted for Minigui Extended by Grigory Filatov <gfilatov@inbox.ru>
(see in folder \samples\Basic\GetTextWidth)

Давно использую функции Сергея:
FUNCTION GetTxtWidth( cText, nFontSize, cFontName, lBold )  // получить Width текста 
LOCAL hFont, nWidth
DEFAULT cText := REPL('A', 2) , ;
cFontName := _HMG_DefaultFontName, ; // из MiniGUI.Init()
nFontSize := _HMG_DefaultFontSize, ; // из MiniGUI.Init()
lBold := .F.

IF Valtype(cText) == 'N'
cText := repl('A', cText)
ENDIF

hFont := InitFont(cFontName, nFontSize, lBold)
nWidth := GetTextWidth(0, cText, hFont) // ширина текста
DeleteObject (hFont)

RETURN nWidth

FUNCTION GetTxtHeight( cText, nFontSize, cFontName, lBold ) // получить Height текста
LOCAL hFont, nHeight
DEFAULT cText := "B" , ;
cFontName := _HMG_DefaultFontName, ; // из MiniGUI.Init()
nFontSize := _HMG_DefaultFontSize, ; // из MiniGUI.Init()
lBold := .F.

hFont := InitFont( cFontName, nFontSize, lBold )
nHeight := GetTextHeight( 0, cText , hFont ) // высота шрифта
DeleteObject( hFont )

RETURN nHeight

Григорий, можно сделать совместить функции Сергея и новых функции ?

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 7257
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.12.20 10:55. Заголовок: Andrey пишет: Давно..


Andrey пишет:

 цитата:
Давно использую функции Сергея


Юзай и дальше
Andrey пишет:

 цитата:
Григорий, можно сделать совместить функции Сергея и новых функции ?


Новые функции не в ядре а в примерах , зачем совмещать что то ?

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




Пост N: 6856
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.12.20 12:05. Заголовок: Хотелось бы иметь эт..


Хотелось бы иметь эти функции в ядре !
Замучился таскать их из проекта в проект.
Да и маленькие примеры если делаешь, то опять нужно тащить эту функцию в пример.

Dima пишет:

 цитата:
Новые функции не в ядре а в примерах , зачем совмещать что то ?


Да в ядре уже - смотри C:\MiniGUI\SOURCE\c_controlmisc.c

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




Пост N: 3540
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.12.20 12:54. Заголовок: Andrey пишет Замучил..


Andrey пишет
 цитата:
Замучился таскать их из проекта в проект.


Используй, например, такой вариант. Сделай свой ch file в Include каталоге
i_MySets.ch
--------------
 
/* my ch */

#xtranslate IsFile( <f> ) => hb_FileExists( <f> )

FUNCTION GetTxtWidth( cText, nFontSize, cFontName, lBold ) // получить Width текста
LOCAL hFont, nWidth
DEFAULT cText := REPL('A', 2) , ;
cFontName := _HMG_DefaultFontName, ; // из MiniGUI.Init()
nFontSize := _HMG_DefaultFontSize, ; // из MiniGUI.Init()
lBold := .F.

IF Valtype(cText) == 'N'
cText := repl('A', cText)
ENDIF

hFont := InitFont(cFontName, nFontSize, lBold)
nWidth := GetTextWidth(0, cText, hFont) // ширина текста
DeleteObject (hFont)

RETURN nWidth

FUNCTION GetTxtHeight( cText, nFontSize, cFontName, lBold ) // получить Height текста
LOCAL hFont, nHeight
DEFAULT cText := "B" , ;
cFontName := _HMG_DefaultFontName, ; // из MiniGUI.Init()
nFontSize := _HMG_DefaultFontSize, ; // из MiniGUI.Init()
lBold := .F.

hFont := InitFont( cFontName, nFontSize, lBold )
nHeight := GetTextHeight( 0, cText , hFont ) // высота шрифта
DeleteObject( hFont )

RETURN nHeight

А в prg делай
#include <hmg.ch>
#include <i_MySets.ch>

...
Можно в hmg.ch добавить такую строку

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




Пост N: 3541
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.12.20 13:34. Заголовок: PS Т.к. это крайняя ..


PS
Т.к. это крайняя версия hmg (если и будет меняться, то редко) можешь смело в h_tbrowse.prg добавить
#include <i_MySets.ch> // без стр. #xtranslate ...
и пересобрать только tsbrowse.lib
можешь еще свои доп. ф-ии определить в ch file.
Если будет new версия, установишь и снова добавишь в h_tbrowse.prg #include <i_MySets.ch>

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


Пост N: 842
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 13.12.20 21:05. Заголовок: gfilatov2002 Было з..


gfilatov2002
Было заявлено

 цитата:
исходники HMG-IDE Роберто Лопеза, которые я адаптировал для Минигуи



Где искать ?

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




Пост N: 1824
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 14.12.20 15:23. Заголовок: Vlad04 пишет: Где и..


Vlad04 пишет:

 цитата:
Где искать ?


Посмотри в папке \samples\Advanced\hmgide

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


Пост N: 843
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 17.12.20 11:51. Заголовок: BtnTextBox естествен..


BtnTextBox естественно нет ?

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




Пост N: 1825
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 06.01.21 11:09. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Пересмотрел свои планы


Снова пересмотрел свои планы, и решил выпустить январскую сборку (с учетом последних исправлений ).
Кратко, что нового:
Скрытый текст


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




Пост N: 6872
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.01.21 11:35. Заголовок: Отличная новость ! ..


Отличная новость !
Поздравляю всех с Рождеством !

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




Пост N: 1826
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 19.01.21 11:47. Заголовок: Всем кому это интересно 8-)


Всем кому это интересно

Завершена подготовка новой сборки 21.01 для BCC 5.8.2 и компиляторов Harbour и xHarbour, которая будет опубликована послезавтра.
В основном сборка содержит исправления для обнаруженных недоработок, но есть и новое - добавлена библиотека HbCab для сжатия информации в формате CAB.

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




Пост N: 1827
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 21.01.21 10:29. Заголовок: Опубликована январск..


Опубликована январская сборка библиотеки, которая доступна по адресу:

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

Желаю всем удачи в этом году

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




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


gfilatov2002 пишет:

 цитата:
Опубликована январская сборка библиотеки


Отличная новость!
Пере собрал свою прогу, вроде работает !

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 1675
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 22.01.21 22:47. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Опубликована январская сборка


Григорий, спасибо.

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




Пост N: 6888
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.02.21 16:35. Заголовок: Небольшой баг, и я с..


Небольшой баг, и я с ним уже сталкивался.
На форму положили большой LABEL1, далее
если второй LABEL2 (меньшего размера) положить на первый, то нет показа.
Второй LABEL2 беру из другого *.prg
Если положить GETBOX - показ есть, всякие FRAME или CHECKLABEL есть.

Странно...
Если из другого *.prg ставлю так:
 
@ aWin[1], aWin[2] LABEL Label_2 PARENT &cForm WIDTH aWin[3] HEIGHT nHLbl VALUE "text defect" ;
SIZE 14 BOLD FONTCOLOR BLACK BACKCOLOR RED
....
FORM_MyDefect(cForm,aTabWin,aBClr,aFont)
....
FUNCTION FORM_MyDefect()
...
DEFINE TAB Tab_ZDef OF &cForm ;
.....
@ nRow1, nCol LABEL Label_3 .... // этот LABEL-3 показывается без PARENT &cForm

Почему LABEL_2 не показывается, а LABEL-3 показывается ?

И у объекта
 
DEFINE TAB Tab_ZDef OF &cForm ;
AT nTabRow, nTabCol WIDTH nTabWidth HEIGHT nTabHeight ;
VALUE nPgValue BACKCOLOR aTabBColor ;
FONT cPgFont SIZE nPgFSize BOLD ;
HOTTRACK HTFORECOLOR BLACK HTINACTIVECOLOR GRAY

Не показываются вкладки !!!
Стоит убрать большой LABEL1 с формы все работает, показ всех объектов есть.

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




Пост N: 3563
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 21.02.21 17:12. Заголовок: gfilatov2002 Поправ..


gfilatov2002
Поправил в c_controlmisc.c
 
HB_FUNC( INSERTVKEY )
{
if( hb_parni( 2 ) != NULL )
{
keybd_event
(
( BYTE ) hb_parni( 2 ), // virtual-key code
0, // hardware scan code
0, // flags specifying various function options
0 // additional data associated with keystroke
);
}

if( hb_parni( 1 ) != NULL )
{

keybd_event
(
( BYTE ) hb_parni( 1 ), // virtual-key code
0,
0,
0
);
}

if( hb_parni( 2 ) != NULL )
{
keybd_event
(
( BYTE ) hb_parni( 2 ), // virtual-key code
0, // hardware scan code
KEYEVENTF_KEYUP, // flags specifying various function options
0 // additional data associated with keystroke
);
}

}
для использования с VK_MENU, VK_SHIFT, VK_CONTROL клавишами
InsertVKey( , VK_MENU) // активация строки main menu
InsertVKey(VK_V, VK_CONTROL) // Ctrl+V
...

Включил в lib из примеров ф-ии HB_FUNC( SHELLEXECUTEEX ), HB_FUNC( TERMINATEPROCESS )
Скрытый текст

и сделал аналог _Execute(...)
 
*-----------------------------------------------------------------------------*
FUNCTION _ExecuteEx( hWnd , cOperation , cFile , cParameters , cDirectory , nState )
*-----------------------------------------------------------------------------*

RETURN ShellExecuteEx( hb_defaultValue( hWnd, GetActiveWindow() ) , ;
cOperation /* possible values are 'edit', 'explore', 'find', 'open', 'print' */ , ;
hb_defaultValue( cFile, "" ) , cParameters , cDirectory , hb_defaultValue( nState, SW_SHOWNORMAL ) )

То есть:
если PID есть, то приложение уже запустилось,
если не сработал PostMessage(hWnd, WM_CLOSE, 0, 0) для внешнего приложения,
делаем TerminateProcess( hPid ),
если это не помогло, то запускаем
cRun := %windir%/System32/taskkill.exe /T /IM <AppName.exe> через
_ExecuteEx( 0, "runas", cRun, , , SW_HIDE )

С этими изменениями стало проще бороться с внешними приложениями

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




Пост N: 1828
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 22.02.21 11:55. Заголовок: SergKis пишет: для ..


SergKis пишет:

 цитата:
для использования с VK_MENU, VK_SHIFT, VK_CONTROL клавишами


Благодарю за помощь, но для этих целей у нас уже есть специальная функция HMG_PressKey()
Пример использования для эмуляции нажатия Ctrl + Shift + A:

 цитата:
HMG_PressKey( VK_CONTROL, VK_SHIFT, VK_A )


Остальные функции для выгрузки сторонних приложений есть в примерах и библиотеке ProcInfo

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




Пост N: 3564
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.02.21 12:19. Заголовок: gfilatov2002 пишет д..


gfilatov2002 пишет
 цитата:
для этих целей у нас уже есть специальная функция HMG_PressKey()


Эта ф-я нажимает и отпускает клавиши списком, как аналог
AEval({ VK_CONTROL, VK_SHIFT, VK_A }, {|n| _PushKey( n ) })
совместно нажать VK_CONTROL + VK_V + отпустить VK_CONTROL не получится

 цитата:
есть в примерах


ShellExecuteEx(...) удобней исп., чем ShellExecute(...) может тогда заменить, а не таскать из примеров, если не добавлять

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