| Автор | Сообщение |
|
|
| модератор
|
Пост N: 699
Зарегистрирован: 25.05.05
|
|
Отправлено: 29.01.08 13:59. Заголовок: Новая версия Расширенного релиза библиотеки MiniGUI (часть VI ) (продолжение)
Начало темы находится здесь, а теперь АНОНС * АНОНС * АНОНС * АНОНС * АНОНС Готовится к опубликованию новая сборка №48, которая выйдет в конце недели. Если у Вас есть интересные наработки для включения в новый релиз, то сейчас самое удобное время для их отправки мне Кратко, что нового: - исправление обнаруженных ошибок и неточностей кода; - новый класс HEADERIMAGE для Grid и Browse; - свойство Address в Hyperlink может теперь открывать папку или файл на диске; - добавлен NOTABSTOP класс для Browse; - поддержка пользовательских компонентов (заимствована из оффициального релиза); - расширения и исправления в библиотеках TsBrowse и PropGrid; - обновлены сборки Харбор и HMGS-IDE; - новые и обновленные старые примеры (как обычно  ).
|
 |

|
|
Ответов - 129
, стр:
1
2
3
4
5
6
7
All
[только новые]
|
|
|
|
| постоянный участник
|
Пост N: 4810
Зарегистрирован: 17.02.12
|
|
Отправлено: 20.09.25 18:10. Заголовок: gfilatov2002 Если н..
gfilatov2002 Если нет AltD(1), то нет и проверки, я так понял, но у меня НИКОГДА нет режима AltD, команды такой в коде. И на своем PC при разработке VerifyControl удобна в отладке (есть вызов, нет его - не важно), а на PC клиента уже она лишняя. Т.е. надо вставлять в INIT PROCEDURE ... AltD( App.Cargo:oIni:nVerifyControl ) ? Где nVerifyControl = 0\1
|
 |

|
|
|
| moderator
|
Пост N: 2495
Зарегистрирован: 11.02.10
|
|
Отправлено: 20.09.25 18:15. Заголовок: SergKis пишет: надо..
SergKis пишет: | цитата: | | надо вставлять в INIT PROCEDURE ... AltD( App.Cargo:oIni:nVerifyControl ) Где nVerifyControl = 0\1 |
| Да, верно. 
|
 |

|
|
|
| постоянный участник
|
Пост N: 4812
Зарегистрирован: 17.02.12
|
|
Отправлено: 20.09.25 18:23. Заголовок: gfilatov2002 А прим..
gfilatov2002 А применение AltD(0\1) разве не тащит лишние объектники в модуль, для реализации своих решений ? А при таком решении будет тащить всегда, раньше были рекомендации, не включать в конечную программу эти модули. Были какие то решения о динамическом переводе режима 0 в режим 1 и получении всей информации о программе у клиента.
|
 |

|
|
|
| moderator
|
Пост N: 2496
Зарегистрирован: 11.02.10
|
|
Отправлено: 20.09.25 18:36. Заголовок: SergKis пишет: разв..
SergKis пишет: | цитата: | | разве не тащит лишние объектники в модуль |
| Нет, конечно. Вот эта функция из исходников Харбора: | цитата: | #define ALTD_DISABLE 0 #define ALTD_ENABLE 1 PROCEDURE AltD( nAction ) IF PCount() == 0 ELSEIF HB_ISNUMERIC( nAction ) SWITCH nAction CASE ALTD_DISABLE Set( _SET_DEBUG, .F. ) EXIT CASE ALTD_ENABLE Set( _SET_DEBUG, .T. ) EXIT ENDSWITCH ENDIF RETURN |
|
|
 |

|
|
|
| постоянный участник
|
Пост N: 4813
Зарегистрирован: 17.02.12
|
|
Отправлено: 20.09.25 18:55. Заголовок: gfilatov2002 :sm36..
gfilatov2002 AltD(0) 
|
 |

|
|
|
| постоянный участник
|
Пост N: 4814
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.09.25 23:50. Заголовок: gfilatov2002 Положи..
gfilatov2002 Положил вариант примера basic\mdi_2 на ftp
|
 |

|
|
|
| moderator
|
Пост N: 2499
Зарегистрирован: 11.02.10
|
|
Отправлено: 23.09.25 15:34. Заголовок: Благодарю за поправк..
Благодарю за поправки в функции _TBrowse() P.S. Добавил пропущенный второй параметр при определении кодового блока | цитата: | {|ob,op| _TBrowse_bAdjColumns(ob,op) } |
|
|
 |

|
|
|
| постоянный участник
|
Пост N: 4815
Зарегистрирован: 17.02.12
|
|
Отправлено: 23.09.25 16:53. Заголовок: gfilatov2002 пишет Д..
gfilatov2002 пишет | цитата: | | Добавил пропущенный второй параметр |
| Нашел неточность в _TBrowse ... IF HB_ISARRAY( oParam:aFont ) IF Len( oParam:aFont ) < 5 ASize( oParam:aFont, 5 ) ENDIF FOR i := 1 TO Len( oParam:aFont ) IF Empty( oParam:aFont[ i ] ) ; oParam:aFont[ i ] := oParam:aFont[ 1 ] ENDIF NEXT ELSE ...
|
 |

|
|
|
| постоянный участник
|
Пост N: 4816
Зарегистрирован: 17.02.12
|
|
Отправлено: 26.09.25 13:51. Заголовок: gfilatov2002 Предло..
gfilatov2002 Предложение (множественное выполнение блоков кода в ::bOnDrawLine) METHOD DrawLine( xRow, lDrawCell ) CLASS TSBrowse ... IF ::bOnDrawLine != NIL IF IsArray( ::bOnDrawLine ) FOR nI := 1 TO Len( ::bOnDrawLine ) IF IsBlock( ::bOnDrawLine[ nI ] ) IF ! Empty( Eval( ::bOnDrawLine[ nI ], Self, xRow ) ) RETURN Self ENDIF ENDIF NEXT ELSEIF ! Empty( Eval( ::bOnDrawLine, Self, xRow ) ) RETURN Self ENDIF ENDIF /* IF ::bOnDrawLine != NIL IF ! Empty( Eval( ::bOnDrawLine, Self, xRow ) ) RETURN Self ENDIF ENDIF */ ... METHOD DrawSelect( xRow, lDrawCell ) CLASS TSBrowse ... IF ::bOnDrawLine != NIL IF IsArray( ::bOnDrawLine ) FOR nI := 1 TO Len( ::bOnDrawLine ) IF IsBlock( ::bOnDrawLine[ nI ] ) IF ! Empty( Eval( ::bOnDrawLine[ nI ], Self, xRow ) ) RETURN Self ENDIF ENDIF NEXT ELSEIF ! Empty( Eval( ::bOnDrawLine, Self, xRow ) ) RETURN Self ENDIF ENDIF /* IF ::bOnDrawLine != NIL IF ! Empty( Eval( ::bOnDrawLine, Self, xRow ) ) RETURN Self ENDIF ENDIF */ ... Другие предложения и примеры положил на ftp
|
 |

|
|
|
| moderator
|
Пост N: 2500
Зарегистрирован: 11.02.10
|
|
Отправлено: 26.09.25 14:15. Заголовок: SergKis пишет: Пред..
SergKis пишет: Большое спасибо за эти дополнения. Обязательно посмотрю новые примеры с подключением третьей базы. P.S. Все изменения приняты, примеры 8 и 9 стали компактными. 
|
 |

|
|
|
| постоянный участник
|
Пост N: 4817
Зарегистрирован: 17.02.12
|
|
Отправлено: 26.09.25 23:05. Заголовок: gfilatov2002 Добави..
gfilatov2002 Добавил назначение событий нажатий кнопок мышки, положил на ftp
|
 |

|
|
|
|
|
| постоянный участник
|
Пост N: 4818
Зарегистрирован: 17.02.12
|
|
Отправлено: 27.09.25 11:31. Заголовок: gfilatov2002 Неболь..
gfilatov2002 Небольшая правка METHOD CellMarginLeftRight( nJ, cData, oColumn, nAlign, lMultiLine, nOut ) CLASS TSBrowse ... IF HB_ISCHAR( cBuf ) .AND. Len( cBuf ) > 0 DEFAULT cData := "" DEFAULT lMultiLine := CRLF $ cData IF lMultiLine ...
|
 |

|
|
|
| moderator
|
Пост N: 2501
Зарегистрирован: 11.02.10
|
|
Отправлено: 27.09.25 15:56. Заголовок: SergKis пишет: прав..
SergKis пишет: OK Благодарю за дополнения 
|
 |

|
|
|
| постоянный участник
|
Пост N: 4819
Зарегистрирован: 17.02.12
|
|
Отправлено: 27.09.25 22:48. Заголовок: gfilatov2002 Еще не..
gfilatov2002 Еще небольшая правка h_controlmisc2.prg STATIC FUNCTION _TBrowse_bBody( ob, op ) ... IF IsArray( aCol ) .and. Len( aCol ) > 0 a := {} FOR EACH cCol IN aCol nCol := iif( IsChar(cCol), ob:nColumn( cCol, .T. ), cCol ) IF nCol > 0 ; AAdd(a, nCol) ENDIF NEXT IF Len( a ) > 0 ; ob:HideColumns( a, .T. ) ; DO EVENTS ENDIF ENDIF
|
 |

|
|
|
| постоянный участник
|
Пост N: 4820
Зарегистрирован: 17.02.12
|
|
Отправлено: 28.09.25 10:00. Заголовок: gfilatov2002 На ftp..
gfilatov2002 На ftp положил пример, по использованию, на основе примера от Андрея
|
 |

|
|
|
| moderator
|
Пост N: 2502
Зарегистрирован: 11.02.10
|
|
Отправлено: 28.09.25 10:39. Заголовок: SergKis пишет: поло..
SergKis пишет: | цитата: | | положил пример, по использованию |
| Большое спасибо 
|
 |

|
|
|
| постоянный участник
|
Пост N: 4821
Зарегистрирован: 17.02.12
|
|
Отправлено: 28.09.25 12:40. Заголовок: gfilatov2002 Еще пр..
gfilatov2002 Еще правка и пример с ее использованием положил STATIC FUNCTION _TBrowse_Create( oParam, uAlias, cBrw, nY, nX, nW, nH ) ... IF IsArray( oParam:aSizeLen ) .and. Len( oParam:aSizeLen ) > 0 j := Len( oParam:aSizeLen ) oParam:aSize := array( j ) ; AFill( oParam:aSize, 10 ) ...
|
 |

|
|
|
| moderator
|
Пост N: 2503
Зарегистрирован: 11.02.10
|
|
Отправлено: 28.09.25 14:05. Заголовок: SergKis пишет: Еще ..
SergKis пишет: OK 
|
 |

|
|
|
| постоянный участник
|
Пост N: 4823
Зарегистрирован: 17.02.12
|
|
Отправлено: 02.10.25 10:40. Заголовок: gfilatov2002 Предло..
gfilatov2002 Предложение добавить параметры (для вариантов работы без препроцессора в блоках кода) FUNCTION _DoControlEventProcedure ( bBlock, i, cEventType, nParam, nParam2 ) ... IF _HMG_BeginWindowActive == .F. .OR. !( hb_defaultValue( cEventType, '' ) == 'CONTROL_ONCHANGE' ) .OR. _HMG_MainClientMDIHandle != 0 #ifdef _OBJECT_ i := _WindowObj( _HMG_aFormHandles[ _HMG_ThisFormIndex ] ) #endif lRetVal := Eval ( bBlock, hb_defaultValue( nParam, 0 ), nParam2, _HMG_ThisControlName, i ) ENDIF ... FUNCTION _DoWindowEventProcedure ( bBlock, i, cEventType ) ... #ifdef _OBJECT_ i := _WindowObj( _HMG_aFormHandles[ _HMG_ThisFormIndex ] ) #endif lRetVal := Eval ( bBlock, _HMG_ThisFormName, i ) ... PS. Положил на ftp примеры с _TBrowse(...), возможно, будут интересны, использованы расчеты размеров от фонта, т.е. App.Object, можно менять размер фонта, переменные cFont := "Arial", nSize := 12
|
 |

|
|
|
| moderator
|
Пост N: 2506
Зарегистрирован: 11.02.10
|
|
Отправлено: 02.10.25 12:33. Заголовок: SergKis пишет: Пред..
SergKis пишет: | цитата: | | Предложение добавить параметры |
| Это, конечно, возможно. Но я не понял, почему в функции _DoControlEventProcedure() использовано | цитата: | i := _WindowObj( _HMG_aFormHandles[ _HMG_ThisFormIndex ] ) |
| а не | цитата: | i := _ControlObj( _HMG_ThisControlName, _HMG_ThisFormName ) |
| 
|
 |

|
|
Ответов - 129
, стр:
1
2
3
4
5
6
7
All
[только новые]
|
|