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 [только новые]


gfilatov2002
moderator




Пост N: 1250
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 07.03.18 11:16. Заголовок: Всем кому это интере..


Всем кому это интересно
Подготовил вторую бету для новой мартовской сборки библиотеки

Благодарю за Ваше внимание

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




Пост N: 5769
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.03.18 11:11. Заголовок: Всем привет. Созрело..


Всем привет.
Созрело предложение по цветам.
Сейчас в i_color.ch только 19 цветов и все задаются через {....}
Для новых кнопок с градиентами нужны числовые цвета.

В TSBROWSE.CH только 16 цветов, нет ORANGE и неск.других,
да и не всегда удобно к проекту его добавлять, там куча всего.
Название цветов мне нравиться больше как в TSBROWSE.CH
Посмотреть заодно и как в FW сделано.


Предлагаю в i_color.ch добавить цвета:

#define CLR_YELLOW		RGB( 255 , 255 , 0   )	 
#define CLR_PINK RGB( 255 , 128 , 192 )
#define CLR_HRED RGB( 255 , 0 , 0 )
#define CLR_HMAGENTA RGB( 255 , 0 , 255 )
#define CLR_BROWN RGB( 128 , 64 , 64 )
#define CLR_ORANGE RGB( 255 , 128 , 64 )
#define CLR_HGREEN RGB( 0 , 255 , 0 )
#define CLR_PURPLE RGB( 128 , 0 , 128 )
#define CLR_BLACK RGB( 0 , 0 , 0 )
#define CLR_WHITE RGB( 255 , 255 , 255 )
#define CLR_GRAY RGB( 128 , 128 , 128 )
#define CLR_HBLUE RGB( 0 , 0 , 255 )

#define CLR_HGRAY RGB( 192 , 192 , 192 )
#define CLR_RED RGB( 128 , 0 , 0 )
#define CLR_OLIVE RGB( 128 , 128 , 0 )
#define CLR_LGREEN RGB( 0 , 128 , 0 )
#define CLR_HCYAN RGB( 0 , 255 , 255 )
#define CLR_BLUE RGB( 0 , 0 , 128 )
#define CLR_CYAN RGB( 0 , 128 , 128 )

Может что и упустил...

И ещё можно добавить вот такие цвета:

#define CLR_SKYPE          RGB(   0, 176,240 )  // голубой, как SKYPE 
#define CLR_VIBER RGB( 125, 82,158 ) // фиолетовый, как в Viber
#define CLR_VK RGB( 93, 114,148 ) // сине-серый, как в Контакте
#define CLR_TWIT RGB( 118, 170,235 ) // голубой, как TWITER
#define CLR_FB RGB( 71, 89,149 ) // синеватый, как Фейсбук
#define CLR_OK RGB( 238, 89,149 ) // оранжевый, как Одноклассники


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



Пост N: 1776
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.03.18 08:54. Заголовок: gfilatov2002 Предло..


gfilatov2002
Предложение заменить, подправить
 
METHOD DoEvent ( Key, nHandle ) CLASS TWndData

LOCAL o := Self
LOCAL i := o:Index
LOCAL w := o:IsWindow

IF ! empty(nHandle)
IF hmg_IsWindowObject( nHandle ) // control handle
o := hmg_GetWindowObject( nHandle )
i := o:Index
w := o:IsWindow
ELSEIF nHandle > 0 .and. nHandle <= Len( _HMG_aControlHandles ) // control index
IF hmg_IsWindowObject( _HMG_aControlHandles[ nHandle ] )
o := hmg_GetWindowObject( _HMG_aControlHandles[ nHandle ] )
i := o:Index
w := o:IsWindow
ELSE
i := nHandle
w := .F.
ENDIF
ENDIF
ENDIF

IF w
RETURN Do_WindowEventProcedure ( ::oEvent:Get( Key ), i, o, Key )
ENDIF

RETURN Do_ControlEventProcedure( ::oEvent:Get( Key ), i, o, Key )


и пример APP_OOPEVENTS

DEFINE MAIN MENU
POPUP 'MENU_1' NAME 100
ITEM 'Item main menu 1.1' NAME 101 IMAGE 'n1' ;
ACTION (ThisWindow.Object):PostMsg(val(This.Name), This.Index)

ITEM 'Item main menu 1.2' NAME 102 IMAGE 'n2' ;
ACTION (ThisWindow.Object):PostMsg(val(This.Name))

ITEM 'Item main menu 1.3 ( This -> Button_2 )' NAME 103 IMAGE 'n3' ;
ACTION (ThisWindow.Object):PostMsg(val(This.Name), This.Button_2.Index)

SEPARATOR
ITEM 'Exit' NAME 199 ;
ACTION (ThisWindow.Object):PostMsg(val(This.Name))

END POPUP



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




Пост N: 1251
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 13.03.18 11:11. Заголовок: SergKis пишет: заме..


SergKis пишет:

 цитата:
заменить, подправить


Благодарю за помощь
Поправлю, конечно...

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



Пост N: 1784
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.03.18 22:09. Заголовок: gfilatov2002 Поправ..


gfilatov2002
Поправьте, пожалуйста
 
METHOD Sum( Key, xSum ) CLASS TKeyData

LOCAL sum := ::Get( Key, 0 )

IF HB_ISNUMERIC( xSum )
IF HB_ISNUMERIC( sum ); sum += xSum
ELSE ; sum := xSum
ENDIF
::Set( Key, sum )

ELSEIF HB_ISARRAY( xSum )
IF HB_ISARRAY( sum ) .AND. Len( sum ) == Len( xSum )
AEval( xSum, {| s, i| sum[ i ] := iif( HB_ISNUMERIC( s ), sum[ i ] + s, s ) } )
ELSE
sum := xSum
ENDIF
::Set( Key, sum )

ENDIF

RETURN NIL
...
METHOD Sum( Key, xSum ) CLASS TThrData

LOCAL sum := ::Get( Key, 0 )

IF HB_ISNUMERIC( xSum )
IF HB_ISNUMERIC( sum ); sum += xSum
ELSE ; sum := xSum
ENDIF
::Set( Key, sum )

ELSEIF HB_ISARRAY( xSum )
IF HB_ISARRAY( sum ) .AND. Len( sum ) == Len( xSum )
AEval( xSum, {| s, i| sum[ i ] := iif( HB_ISNUMERIC( s ), sum[ i ] + s, s ) } )
ELSE
sum := xSum
ENDIF
::Set( Key, sum )

ENDIF

RETURN NIL
...


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




Пост N: 1253
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 17.03.18 22:26. Заголовок: SergKis пишет: Попр..


SergKis пишет:

 цитата:
Поправьте, пожалуйста


Уже сделал. Благодарю за помощь и внимание

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



Пост N: 1785
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.03.18 09:29. Заголовок: gfilatov2002 Предла..


gfilatov2002
Предлагаю новый метод для tsb, для растяжки нескольких колонок до размера тсб по ширине.
Скрытый текст

Использование при ширине tsb > ширины колонок
:AdjColumns() - все колонки
:AdjColumns({"NAME", "SUMMA"}) - указанные колонки по cName
:AdjColumns({3, 4, 5}) - указанные колонки по номеру

В пример App_OOPoKeyData, который прислал Andrey, можно вставить
 
*-----------------------------------------------------------------------------*
STATIC FUNC TsbReport( oWnd, nEvent, aArray, cColName )
*-----------------------------------------------------------------------------*
...
:SetColor( { CLR_FOCUSB }, { { |a,b,c| If( c:nCell == b, {RGB( 66, 255, 236), RGB(209, 227, 248)}, ;
{RGB(220, 220, 220), RGB(220, 220, 220)} ) } } )

:AdjColumns({3, 4, 5}) // или :AdjColumns()

END TBROWSE

oRpt:SetNoHoles()
...



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




Пост N: 1256
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 20.03.18 11:27. Заголовок: SergKis пишет: Пред..


SergKis пишет:

 цитата:
Предлагаю новый метод для tsb


1. добавил новый полезный метод
2. переименовал пример App_OOPoKeyData в APP_OOPREPORT
3. вставку строки в пример сделал - работает!

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

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



Пост N: 1786
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.03.18 14:11. Заголовок: gfilatov2002 поправ..


gfilatov2002
поправьте APP_OOPREPORT (передал в TsbReport oWnd, а не показал цель этого)
 
FUNCTION Main()
...
:Event( 7, {|ow,ky| Report(ow, ky) } )
// ToolBar 2
:Event( 99, {|ow | ow:Release() } )
// StatusBar
:Event( 91, {|ow | ow:StatusBar:Say('... W A I T ...') } )
:Event( 92, {|ow | ow:StatusBar:Say('') } )

END WITH // ---- Window events
...
STATIC FUNC TsbReport( oWnd, nEvent, aArray, cColName )
...
// ToolBar 1
(This.Object):Event( 1, {|ow| oWnd:StatusBar:Say('... W A I T ...'), ;
MsgBox('P r i n t i n g' , ow:Name), ;
oWnd:StatusBar:Say('') } )
(This.Object):Event( 2, {|ow| oWnd:PostMsg(91), ;
MsgBox('Export to MS Excel', ow:Name), ;
oWnd:PostMsg(92) } )

...



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




Пост N: 1257
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 20.03.18 20:01. Заголовок: SergKis пишет: попр..


SergKis пишет:

 цитата:
поправьте APP_OOPREPORT


Поправил, конечно.
Благодарю за помощь - пример работает нормально

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



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


gfilatov2002 пишет
 цитата:
пример работает нормально


Попробую сразу ответить на вопрос "Как улучшить вид отчета ?"
Скрытый текст



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



Пост N: 1789
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 21.03.18 12:39. Заголовок: PS надо без BOLD ..


PS
надо без BOLD
 
DEFINE FONT FontNorm FONTNAME "Courier New" ;
SIZE _HMG_DefaultFontSize


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



Пост N: 1791
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 21.03.18 16:46. Заголовок: Заработал My-Files.r..


Заработал My-Files.ru (глючил). Ссылка на пример о чем говорил выше. http://my-files.ru/037m5e

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




Пост N: 1260
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 21.03.18 17:28. Заголовок: SergKis пишет: Ссыл..


SergKis пишет:

 цитата:
Ссылка на пример


Благодарю за обновленный пример!

Что сделал:
1. поправил опечатку

 цитата:
Alias := Alias()


2. перевел комментарии из OEM-кодировки в ANSI.
3. проверил компиляцию примера по команде

 цитата:
compile.bat /e /w



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



Пост N: 1792
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 21.03.18 19:21. Заголовок: gfilatov2002 пишет c..


gfilatov2002 пишет
 цитата:
compile.bat /e /w


Спасибо за напоминание, с Borlandом редко собираю, забываю эти параметры для Compile.bat.

 цитата:
перевел комментарии из OEM-кодировки в ANSI.


Все проекты в OEM и настройки на нее, дергаю куски и комментарии идут, как идут. Сорри.

По SET OOP ON показал практически все что хотел. Думаю теперь только вопросы.

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



Пост N: 1793
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.03.18 09:19. Заголовок: SergKis пишет показа..


SergKis пишет
 цитата:
показал практически все что хотел


Работу с сообщениями из тсб добавил в пример, т.е. кнопки toolbar продублировал клавишами
http://my-files.ru/h5e6ms

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




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


SergKis пишет:

 цитата:
кнопки toolbar продублировал клавишами


Благодарю за помощь
Очень наглядный пример использования ООП

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



Пост N: 1797
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.03.18 21:03. Заголовок: gfilatov2002 Надо п..


gfilatov2002
Надо правку сделать, Andrey неточность нашел, при hide колонки.
Считать надо не только ширину видимых колонок, но и их кол-во
 
METHOD AdjColumns( aColumns, nDelta ) CLASS TSBrowse
...
LOCAL nVisible := 0, aVisible := {}
...
AEval( ::aColumns, {|oc| nVisible += iif( oc:lVisible, oc:nWidth, 0 ) })
AEval( aCol , {|nc| iif( obr:aColumns[ nc ]:lVisible, AAdd(aVisible, nc), Nil ) })

k := Len(aVisible)

...
For i := 1 To k
c := aVisible[ i ]

...


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




Пост N: 1262
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 22.03.18 21:31. Заголовок: SergKis пишет: Надо..


SergKis пишет:

 цитата:
Надо правку сделать


Поправил, конечно.
Благодарю за внимание

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



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


gfilatov2002
Поправьте APP_OOPREPORT для альтернативного задания клавиш
 
BUTTON 01 CAPTION 'First' PICTURE 'n1' ;
TOOLTIP 'Column report FIRST Ctrl+1, Shift+1' ;
ACTION wPost() SEPARATOR
BUTTON 02 CAPTION 'Last' PICTURE 'n2' ;
TOOLTIP 'Column report LAST Ctrl+2, Shift+2' ;
ACTION wPost() SEPARATOR
BUTTON 03 CAPTION 'Age' PICTURE 'n3' ;
TOOLTIP 'Column report AGE Ctrl+3, Shift+3' ;
ACTION wPost() SEPARATOR
BUTTON 04 CAPTION 'State' PICTURE 'n4' ;
TOOLTIP 'Column report STATE Ctrl+4, Shift+4' ;
ACTION wPost() SEPARATOR
BUTTON 05 CAPTION 'City' PICTURE 'n5' ;
TOOLTIP 'Column report CITY Ctrl+5, Shift+5' ;
ACTION wPost() SEPARATOR
BUTTON 06 CAPTION 'State ?' PICTURE 'n6' ;
TOOLTIP 'Column report STATE + Left(LAST, 1) Ctrl+6, Shift+6' ;
ACTION wPost() SEPARATOR
BUTTON 07 CAPTION 'City ?' PICTURE 'n7' ;
TOOLTIP 'Column report CITY + Left(LAST, 1) Ctrl+7, Shift+7' ;
ACTION wPost() SEPARATOR
...
oTabl:SetFocus()

ON KEY SHIFT+1 ACTION wPost(1)
ON KEY SHIFT+2 ACTION wPost(2)
ON KEY SHIFT+3 ACTION wPost(3)
ON KEY SHIFT+4 ACTION wPost(4)
ON KEY SHIFT+5 ACTION wPost(5)
ON KEY SHIFT+6 ACTION wPost(6)
ON KEY SHIFT+7 ACTION wPost(7)
ON KEY ESCAPE ACTION wPost(99)

END WINDOW
...
STATIC FUNC Report( oWnd, nEvent )
...
oWnd:Action := .F.
oBrw:lEnabled := .F.

oWnd:StatusBar:Say('... W A I T ...')
...
TsbReport( oWnd, nEvent, aRpt, cNam )

(This.oTabl.Object):Tsb:lEnabled := .T. // oBrw:lEnabled := .T.

(This.oTabl.Object):SetFocus() // oBrw:SetFocus()
...

PS
На время формирования отчета (oWnd:Action := .F.) блокируются действия окна по сообщениям до (oWnd:Action := .T.)

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