Автор | Сообщение |
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; - новые и обновленные старые примеры (как обычно ).
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|
SergKis
|
| постоянный участник
|
Пост N: 1705
Зарегистрирован: 17.02.12
|
|
Отправлено: 12.01.18 14:21. Заголовок: Vlad04 SergKis пише..
Vlad04 SergKis пишет цитата: | crazy пример, перебор всех контролов всех окон |
| Выбрать контролы одного окна, тоже надо перебрать _HMG_aControlHandles и по handle окна это сделать.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5692
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.01.18 15:52. Заголовок: SergKis пишет: по т..
SergKis пишет: Мне очень понравился стиль написания программы. Жалко что не было такого раньше.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5698
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.01.18 16:45. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Если есть еще пожелания/предложения для следующей сборки, то они с удовольствием будут приняты... |
| У меня возник вопрос: А как можно задать фонт для титула таблицы для Excel2() ? Мне ответили - пока никак, надо развивать Exel2. Есть пожелание для небольшого развития METHOD Excel2( cFile, lActivate, hProgress, cTitle, lSave, bPrintRow ) CLASS TSBrowse 1) Добавить возможность задания фонта для титула таблицы, это то что над шапкой таблицы. А то выходит очень маленьким фонтом. А в идеале бы хотелось чтобы туда можно было передавать хотя бы 3 фонта в массиве (титул,шапка,ячейки), для независимого построения листа экселя ! Таким образом можно будет подобрать приличный вид листа экселя. Всё равно же при задании большого фонта в таблице высота ячейки не меняется. 2) Да и еще бы использовать то что предложил SergKis в Пост N: 1706.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1708
Зарегистрирован: 17.02.12
|
|
Отправлено: 13.01.18 18:40. Заголовок: С пожеланием Ардрея,..
С пожеланием Ардрея, получилось так : METHOD Excel2( cFile, lActivate, hProgress, xTitle, lSave ) CLASS TSBrowse ... nOldCol := ::nCell Local nCntCols := ::nColCount(), oCol, ; aFntLine := array(nCntCols), ; aFntHead := array(nCntCols), ; aFntFoot := array(nCntCols), ; hFntTitl, cTitle Default nInstance := 0 If HB_ISARRAY(xTitle) .and. Len(xTitle) > 1 cTitle := xTitle[1] hFntTitl := xTitle[2] EndIf Default cFile := "Book1.xls", ; lActivate := .T., ; lSave := .F., ; cTitle := "", ; hFntTitl := hFont CursorWait() For i := 1 To nCntCols oCol := ::aColumns[ i ] aFntLine[ i ] := oCol:hFont aFntHead[ i ] := oCol:hFontHead aFntFoot[ i ] := oCol:hFontFoot If HB_ISBLOCK(oCol:hFont) oCol:hFont := hFont EndIf If HB_ISBLOCK(oCol:hFontHead) oCol:hFontHead := hFont EndIf If HB_ISBLOCK(oCol:hFontFoot) oCol:hFontFoot := hFont EndIf Next ::lNoPaint := .F. ... For nCol := 1 To Len( ::aColumns ) If Empty( ::aColumns[ nCol ]:hFont ) .and. Empty( ::aColumns[ nCol ]:hFontHead ) Loop EndIf hFont := ::aColumns[ nCol ]:hFont If hFont != Nil aFontTmp := GetFontParam(hFont) IF AScan( aFont, {|e| e[ 1 ] == aFontTmp[ 1 ] .and. e[ 2 ] == aFontTmp[ 2 ] .and. ; e[ 3 ] == aFontTmp[ 3 ] .and. e[ 4 ] == aFontTmp[ 4 ] .and. ; e[ 5 ] == aFontTmp[ 5 ] .and. e[ 6 ] == aFontTmp[ 6 ] } ) == 0 AAdd( aFont, aFontTmp ) endif EndIf If hFont != Nil .and. hFntTitl != hFont hFont := hFntTitl aFontTmp := GetFontParam(hFont) IF AScan( aFont, {|e| e[ 1 ] == aFontTmp[ 1 ] .and. e[ 2 ] == aFontTmp[ 2 ] .and. ; e[ 3 ] == aFontTmp[ 3 ] .and. e[ 4 ] == aFontTmp[ 4 ] .and. ; e[ 5 ] == aFontTmp[ 5 ] .and. e[ 6 ] == aFontTmp[ 6 ] } ) == 0 AAdd( aFont, aFontTmp ) endif EndIf hFont := ::aColumns[ nCol ]:hFontHead If hFont != Nil aFontTmp := GetFontParam(hFont) IF AScan( aFont, {|e| e[ 1 ] == aFontTmp[ 1 ] .and. e[ 2 ] == aFontTmp[ 2 ] .and. ; e[ 3 ] == aFontTmp[ 3 ] .and. e[ 4 ] == aFontTmp[ 4 ] .and. ; e[ 5 ] == aFontTmp[ 5 ] .and. e[ 6 ] == aFontTmp[ 6 ] } ) == 0 AAdd( aFont, aFontTmp ) endif EndIf hFont := ::aColumns[ nCol ]:hFontFoot If hFont != Nil aFontTmp := GetFontParam(hFont) IF AScan( aFont, {|e| e[ 1 ] == aFontTmp[ 1 ] .and. e[ 2 ] == aFontTmp[ 2 ] .and. ; e[ 3 ] == aFontTmp[ 3 ] .and. e[ 4 ] == aFontTmp[ 4 ] .and. ; e[ 5 ] == aFontTmp[ 5 ] .and. e[ 6 ] == aFontTmp[ 6 ] } ) == 0 AAdd( aFont, aFontTmp ) endif EndIf Next If Len( aFont ) > 4 ASize( aFont, 4 ) EndIf ... For nRow := 1 To ( ::nLen ) If nRow == 1 If ! Empty( cTitle ) cTitle := StrTran( cTitle, CRLF, Chr( 10 ) ) nAlign := If( Chr( 10 ) $ cTitle, 5, 1 ) hFont := hFntTitl aFontTmp := GetFontParam( hFont ) nFont := AScan( aFont, {|e| e[ 1 ] == aFontTmp[ 1 ] .and. e[ 2 ] == aFontTmp[ 2 ] .and. ; e[ 3 ] == aFontTmp[ 3 ] .and. e[ 4 ] == aFontTmp[ 4 ] .and. ; e[ 5 ] == aFontTmp[ 5 ] .and. e[ 6 ] == aFontTmp[ 6 ] } ) FWrite( nHandle, BiffRec( 4, cTitle, 0, 0,, nAlign,, Max( 0, nFont - 1 ) ) ) nLine := 3 EndIf For nCol := 1 To Len( ::aColumns ) uData := If( ValType( ::aColumns[ nCol ]:cHeading ) == "B", ; Eval( ::aColumns[ nCol ]:cHeading, nCol, Self ), ; ::aColumns[ nCol ]:cHeading ) ... Next If ::lDrawFooters For nCol := 1 To Len( ::aColumns ) uData := If( ValType( ::aColumns[ nCol ]:cFooting ) == "B", ; Eval( ::aColumns[ nCol ]:cFooting, nCol, Self ), ; ::aColumns[ nCol ]:cFooting ) If ValType( uData ) != "C" uData := " " EndIf uData := Trim( StrTran( uData, CRLF, Chr( 10 ) ) ) nAlign := Min( LoWord( ::aColumns[ nCol ]:nFAlign ), 2 ) nAlign := If( Chr( 10 ) $ uData, 4, nAlign ) hFont := ::aColumns[ nCol ]:hFontFoot aFontTmp := GetFontParam( hFont ) nFont := AScan( aFont, {|e| e[ 1 ] == aFontTmp[ 1 ] .and. e[ 2 ] == aFontTmp[ 2 ] .and. ; e[ 3 ] == aFontTmp[ 3 ] .and. e[ 4 ] == aFontTmp[ 4 ] .and. ; e[ 5 ] == aFontTmp[ 5 ] .and. e[ 6 ] == aFontTmp[ 6 ] } ) FWrite( nHandle, BiffRec( 4, uData, nLine - 1, nCol - 1, .T., nAlign + 1,, ; Max( 0, nFont - 1 ) ) ) If hProgress != Nil If nCount % nEvery == 0 SendMessage(hProgress, PBM_SETPOS, nCount, 0) EndIf nCount ++ EndIf Next ++nLine EndIf FWrite( nHandle, BiffRec( 10 ) ) FClose( nHandle ) For i := 1 To nCntCols oCol := ::aColumns[ i ] oCol:hFont := aFntLine [ i ] oCol:hFontHead := aFntHead [ i ] oCol:hFontFoot := aFntFoot [ i ] Next If hProgress != Nil SendMessage(hProgress, PBM_SETPOS, nTotal, 0) EndIf ... т.е. титул задавать массивом {"TEST TITLE EXCEL.", GetFontHandle('Font_5') }
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5699
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.01.18 18:47. Заголовок: SergKis пишет: METH..
SergKis пишет: цитата: | METHOD Excel2( cFile, lActivate, hProgress, xTitle, lSave ) |
| 1) Чтобы у всех не свалились программы, наверное нужно сделать проверку на массив. Если не массив, то работать нужно по старому, а если массив то по новому ! 2) И как сделать показ своей функции ? Допустим показа простого кол-ва: nCol / Len( ::aColSizes ) Блин, на старых компах так медленно идёт загрузка 5 тыс. записей...
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1709
Зарегистрирован: 17.02.12
|
|
Отправлено: 13.01.18 19:29. Заголовок: Andrey пишет Если не..
Andrey пишет цитата: | Если не массив, то работать нужно по старому, а если массив то по новому ! |
| Ты прав, пропустил If HB_ISARRAY(xTitle) .and. Len(xTitle) > 1 cTitle := xTitle[1] hFntTitl := xTitle[2] Else cTitle := xTitle EndIf убрал у себя cTitle := AllTrim(cTitle) это всегда можно сделать снаружи
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5700
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.01.18 19:32. Заголовок: SergKis пишет: это ..
SergKis пишет: цитата: | это всегда можно сделать снаружи |
| Нет не всегда. Я очень не люблю когда рабочии системы - пересобираешь новой версией и они начинают валиться ! А как сделать показ своей функции ? Допустим показа простого кол-ва: nCol / Len( ::aColSizes ) Я вызываю свою фоновую функцию WaitThreadSay(cVal) // вывод доп.информации Если это сложно, то фиг с ним, не надо.
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1230
Зарегистрирован: 11.02.10
|
|
Отправлено: 15.01.18 11:53. Заголовок: SergKis пишет: С по..
SergKis пишет: цитата: | С пожеланием Ардрея, получилось так |
| Добавил эти правки в RC 2 новой сборки. Благодарю за помощь P.S. В связи с необходимостью лечения позвоночника (остеохондроз и прочее) вынужден сократить время посещения форума и работы над новой сборкой, которая запланирована к выходу на следующей неделе...
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1710
Зарегистрирован: 17.02.12
|
|
Отправлено: 15.01.18 18:23. Заголовок: gfilatov2002 еще не..
gfilatov2002 еще немного правок в excel2 ... For nCol := 1 To Len( ::aColumns ) If ::aColumns[ nCol ]:lBitMap Loop ElseIf Empty( ::aColumns[ nCol ]:hFont ) .and. Empty( ::aColumns[ nCol ]:hFontHead ) Loop EndIf hFont := ::aColumns[ nCol ]:hFont ... For nRow := 1 To ( ::nLen ) If nRow == 1 ... For nCol := 1 To Len( ::aColumns ) If ::aColumns[ nCol ]:lBitMap Loop EndIf uData := If( ValType( ::aColumns[ nCol ]:cHeading ) == "B", ; ... EndIf ...
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1231
Зарегистрирован: 11.02.10
|
|
Отправлено: 15.01.18 21:56. Заголовок: SergKis пишет: еще ..
SergKis пишет: цитата: | еще немного правок в excel2 |
| OK, спасибо
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1711
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.01.18 15:44. Заголовок: gfilatov2002 еще пр..
gfilatov2002 еще правки METHOD LButtonDown( nRowPix, nColPix, nKeyFlags ) CLASS TSBrowse ... oCol, ix If ! ::lEnabled Return 0 EndIf Default ::lDontChange := .F. ... METHOD LButtonUp( nRowPix, nColPix, nFlags ) CLASS TSBrowse Local nClickRow, nDestCol If ! ::lEnabled Return 0 EndIf If nKeyPressed != Nil ::DrawPressed( nKeyPressed, .F. ) EndIf ...
|
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1232
Зарегистрирован: 11.02.10
|
|
Отправлено: 16.01.18 18:40. Заголовок: SergKis пишет: еще ..
SergKis пишет: Сделал Благодарю за помощь
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1233
Зарегистрирован: 11.02.10
|
|
Отправлено: 22.01.18 12:14. Заголовок: Завершена подготовка..
Завершена подготовка очередной сборки 18.01, которая будет опубликована послезавтра. В связи с необходимостью длительного лечения позвоночника (год и более) выпуск новых сборок будет приостановлен...
|
|
|
Alw Spencer
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 22.01.18 14:34. Заголовок: gfilatov2002 Но мы..
gfilatov2002 Но мы Вас ещё ведь услышим? Или лечение не позволит попасть на форум?
|
|
|
Vlad04
|
| постоянный участник
|
Пост N: 757
Зарегистрирован: 13.10.05
|
|
Отправлено: 22.01.18 14:55. Заголовок: длительного лечения ..
цитата: | длительного лечения позвоночника |
| Будьте осторожны ! Никаких операций! Будьте здоровы.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1712
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.01.18 15:24. Заголовок: Мой опыт борьбы (бол..
Мой опыт борьбы (более 15 лет) с неисправностью позвоночника (без травм, из за сдвига дисков, от сидения - работа такая), одна нога почти на 10 см. была короче другой. По каким только врачам, институтам не ходил, толку 0. Пока 3 женщины с лечебной физкультуры не стали делать растяжку мышц, сухожилий, дело чуть сдвинулось и по их наводке, попал к мануалисту, занимающемуся со спортсменами, кикбоксеры, бойцы без правил, ... Год ходил каждую неделю, потом раз в 2, месяц (мышцы, сухожилия обладают памятью). Он поставил меня на ноги. Сейчас продолжаю ходить по самочувствию. А с операциями, Vlad04 прав, надо очень осторожно. Насмотрелся я в реабилитационных центрах на людей после них .... Удачи в лечении.
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1234
Зарегистрирован: 11.02.10
|
|
Отправлено: 22.01.18 15:38. Заголовок: SergKis пишет: Удач..
SergKis пишет: Благодарю за добрые слова! Пока прописали "скорую помощь" - занятия на профилакторе Евминова Alw Spencer пишет: Обязательно Просто сокращаетя до минимума время сидения перед монитором...
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1235
Зарегистрирован: 11.02.10
|
|
Отправлено: 24.01.18 11:02. Заголовок: Опубликована новая с..
Опубликована новая сборка 18.01 для BCC 5.51 для компиляторов Harbour и xHarbour Базовый дистрибутив-инсталлятор находится по адресу http://hmgextended.com/files/CONTRIB/hmg-18.01-setup.exe Имеются в наличии также готовые сборки для следующих пар (Си-компилятор+Харбор): - MinGW 7.2.0 32-bit для Harbour 3.2.0dev; - MinGW 7.2.0 64-bit для Harbour 3.4.0dev; - MS VisualC 2017 32-bit для Harbour 3.2.0dev; - Borland/Embarcadero C++ 7.3 (32-bit) для Harbour 3.2.0dev. ссылки на которые будут доступны по Вашему запросу До новых встреч!
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5702
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.01.18 17:18. Заголовок: Собрал на новой верс..
Собрал на новой версии несколько своих проектов ! Полёт нормальный !!!
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1752
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.02.18 12:17. Заголовок: gfilatov2002 Немног..
gfilatov2002 Немного правок CLASS TWndData ... METHOD Release() INLINE iif( ::IsWindow, iif( ::lAction, PostMessage(::nHandle, WM_CLOSE, 0, 0), Nil ), Nil ) METHOD Restore() INLINE ShowWindow( ::nHandle, SW_RESTORE ) METHOD Show() INLINE _ShowWindow( ::cName ) METHOD Hide() INLINE _HideWindow( ::cName ) _METHOD DoEvent( Key, nHandle ) ... CLASS TCnlData INHERIT TWndData ... METHOD PostMsg( nKey ) INLINE iif( ::oWin:Action, PostMessage( ::oWin:nHandle, ::WM_nMsgC, nKey, ::nHandle ), ) METHOD SendMsg( nKey ) INLINE iif( ::oWin:Action, SendMessage( ::oWin:nHandle, ::WM_nMsgC, nKey, ::nHandle ), ) ... ... METHOD Restore() INLINE ::Show() METHOD Show() INLINE _ShowControl( ::cName, ::oWin:cName ) ...
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|