Готовится к опубликованию новая сборка №48, которая выйдет в конце недели. Если у Вас есть интересные наработки для включения в новый релиз, то сейчас самое удобное время для их отправки мне
Кратко, что нового:
- исправление обнаруженных ошибок и неточностей кода; - новый класс HEADERIMAGE для Grid и Browse; - свойство Address в Hyperlink может теперь открывать папку или файл на диске; - добавлен NOTABSTOP класс для Browse; - поддержка пользовательских компонентов (заимствована из оффициального релиза); - расширения и исправления в библиотеках TsBrowse и PropGrid; - обновлены сборки Харбор и HMGS-IDE; - новые и обновленные старые примеры (как обычно ).
Отправлено: 30.07.19 11:23. Заголовок: PS Ведь все фонты по..
PS Ведь все фонты по DEFINE FONT ... цепляются к _FORMNAME_ 'Main' и там живут
SergKis
постоянный участник
Пост N: 2698
Зарегистрирован: 17.02.12
Отправлено: 30.07.19 11:38. Заголовок: PPS Если фонтов нет ..
PPS Если фонтов нет в списке DEFINE FONT ..., работают С ф-ии _SetFont(...), _SetFontHandle(...), а они не используют базу. По мне, команды удаления фонтов в _EraseControl() не нужны.
SergKis
постоянный участник
Пост N: 2699
Зарегистрирован: 17.02.12
Отправлено: 30.07.19 11:44. Заголовок: SergKis пишет По мне..
SergKis пишет
цитата:
По мне, команды удаления фонтов в _EraseControl() не нужны
Уточню, если они находятся в секции 'Main' - удалять не нужно.
Зачем удалять фонт, созданный (сохранен в базе _HMG_aControlType == 'FONT') по DEFINE FONT ... ?
Поправил этот фрагмент кода с учетом Вашего предложения:
цитата:
*-----------------------------------------------------------------------------* FUNCTION _EraseControl ( i, p ) *-----------------------------------------------------------------------------* LOCAL hWnd LOCAL mVar LOCAL t, x
x := _HMG_aControlFontHandle [ i ]
IF ISNUMERIC ( x ) .AND. !Empty ( x ) .AND. AScan( _HMG_aControlHandles, x ) == 0 DeleteObject ( x ) ENDIF
Благодарю за помощь
gfilatov2002
moderator
Пост N: 1542
Зарегистрирован: 11.02.10
Отправлено: 31.07.19 10:43. Заголовок: Всем кому это интересно
Подготовил 2-й релиз-кандидат для новой сборки 19.08 со следующим списком изменений: Скрытый текст
* Fixed missed hiding of all controls on a FOCUSED deleted TabPage in the function _DeleteTabPage(). It exists in the official version too.
* Added possibility to modify the following Windows events at runtime: - OnInit - OnRelease - OnInteractiveClose - OnGotFocus - OnLostFocus - OnNotifyClick - OnMouseclick - OnMouseDrag - OnMouseMove - OnMove - OnSize - OnMaximize - OnMinimize - OnPaint - OnRestore - OnDropFiles
* Added the useful pseudo-functions RGB2n( n1 [, n2] [, n3] ) and n2RGB( n ) for converting of a color array.
* The 'Cursor' property is supported in the function GetProperty() for the Forms.
* Added possibility to modify of 'OnEnter' event for the controls at runtime.
* Added possibility to modify of the 'OnListDisplay/OnDropDown' and 'OnListClose/OnCloseUp' events for ComboBox control at runtime.
* The Spinner control supports now a changing of the INCREMENT property at runtime.
* The Timer control supports now a changing of the INTERVAL and ONCE properties at runtime.
* The BTNTEXTBOX control supports now a changing of the separated TOOLTIPs for the edit box and buttons at runtime.
* The GETBOX control supports now a changing of the separated TOOLTIPs for the edit box and buttons at runtime.
* The global fonts which were defined by the command DEFINE FONT <font> FONTNAME <name> ... will preserved after closing of a form.
* A 'Value' property will changed to a first available item in the RadioGroup control if a focused item was disabled with a putting of 'ReadOnly' property.
* Updated the TSBrowse, HBPrinter and Sqlite3 libraries.
* Added the new interesting samples and updated some Basic and Advanced samples.
Хотя эта сборка работает стабильно, выпуск финальной версии отложен по финансовым причинам
SergKis
постоянный участник
Пост N: 2701
Зарегистрирован: 17.02.12
Отправлено: 01.08.19 11:28. Заголовок: gfilatov2002 Может ..
*-----------------------------------------------------------------------------* PROCEDURE _PopEventInfo( n ) *-----------------------------------------------------------------------------* LOCAL l
Тогда в блоке кода на окно, контрол можно ставить среду This запомненную ранее, к примеру, на TIMER другого окна ACTION {|| _PopEventInfo( Len( _HMG_aEventInfo ) - 1 ), ... }
Добавил, хотя эта коррекция является опасным хаком, на мой взгляд
SergKis
постоянный участник
Пост N: 2707
Зарегистрирован: 17.02.12
Отправлено: 02.08.19 10:55. Заголовок: gfilatov2002 пишет Д..
gfilatov2002 пишет
цитата:
Добавил, хотя эта коррекция является опасным хаком, на мой взгляд
Большой опасности нет (не удаляем из стека, применяя n), на мой взгляд, но понимать, что происходит, конечно надо. Вариантов больше получается, к примеру 1 define window ... (сохраняет среду), если сделать _PushEventInfo ... end window (восстановит среду, но останется доп. установка) action window ... _PopEventInfo() (окончательно восстановит среду до работы окна) This среда будет стоять для окна (в блоках контролов среда ставится\восстанавливается для тек. окна) 2 В Timer (к примеру, на Main окне) поставив This среду по n (который можно определить по разному) можно анализировать ThisWindow.Name и даже This.Name, что бы проделывать разные операции в зависимости от имен. Завершение блока кода Timer восстановит из последнего элемента _HMG_aEventInfo, т.е. то что было при входе.
Вот в этом и проблема - обычно пользователи библиотеки (они же прикладные разработчики) редко хотят заморачиваться такими вещами. Но как дополнительная возможность - не помешает, я думаю.
gfilatov2002 Андрей сказал, что у меня в примере простая карточка, без вызова справочника. Исправил пример, добавив имитацию вызова справочников у 2х GetBox кнопками Так же сделал на этих GetBox F5 и DublClick для вызова справочника + ToolTip информация Пример тут https://TransFiles.ru/ocym6
SergKis
постоянный участник
Пост N: 2713
Зарегистрирован: 17.02.12
Отправлено: 05.08.19 11:02. Заголовок: PS Небольшая бяка в ..
PS Небольшая бяка в примере. Если карточка изменена, фокус на GetBox и нажимаем Esc, то запрос на сохранение карточки, сделанный на AletYesNo(...), улетает в координаты 0,0. Правка такая
STATIC FUNC Age_CardSave( oBrw, lSave ) ... LOCAL nRec := ATail(aRec) LOCAL cFocu := This.FocusedControl
Все даты в формате GMT
3 час. Хитов сегодня: 57
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет