Вверх ↑
Ответов: 1942
Рейтинг: 627
#1: 2013-11-26 23:17:17 ЛС | профиль | цитата
Элемент AdjustControls: Настройки интерфейса.
Предназначен для изменения и получения свойств интерфейсных элементов.
Возможности элемента
1. Изменения позиции и габаритов: Отступ слева и справа, ширина и высота.
2. Выравнивание элементов.
3. Цвет элементов.
4. Шрифт элементов.
5. Доступность и видимость элементов.
6. Очистка элемента (удаление текста, строк и т.п.)
7. Установка фокуса на элемент.
8. Перенос элемента на задний или передний план.
9. Перерисовка элемента.
10. Текст в элементах: Заголовок в формах, текст в текстовом поле, строки в списке строк.
11. Установка и снятие значения у Checkboxи RadioButton.
12. Установка вкладок в элемент TabControl.
13. Установка цветов в элемент ColorBox.
14. Установка даты в элемент DDatePicker.
15. Установка колонок и строк в таблицы StringTable StringTableMTMTStrTbl
16. Установка текста и строк в ComboBox.
Скачать последнюю версию элемента 3.65
(работает под всеми компиляторами)
Распаковать архив, установить элемент (перетащить файл AdjustControl.ini на рабочее поле Hiasm), скопировать файлы (формата pas) в папку с HiAsm Elementsdelphicode, перезапустить HiAsm.


Для удобства редактирования свойств элемента рекомендую воспользоваться редакторами:
Подробно о редакторах

По умолчанию у AdjustControls стандартные редакторы свойств (редактор строк). Все приходиться вписывать в ручную, а значит, не исключены опечатки и как следствие не правильная работа элемента. Да и запомнить правильное написание свойств интерфейсных элементов начинающему не так просто. При использовании усовершенствованных редакторов, добавление нужных имен или свойств сводиться к обычному выбору курсором нужного. Конечно значения придется вписывать вручную, но опечатка в данном случае не так критична.

Для установки редакторов можно воспользоваться схемой InstallRedactors (см. ниже) или проделать следующие:
1. Скопировать в папку с установленным HiAsm в Intedit файлы редакторов (ParametersList.sha, NameList.sha, PropList.sha).
2. Вставить на поле HiAsm элемент AdjustControls Настройки интерфейса, выделить его и нажать Ctrl+G. В открывшемся редакторе файла AdjustControls.ini добавить перед строкой [Property] строки:
#ini
[Handlers]
ParametersList=Parameters
NameList=IncludeNameList,ExcludeNameList
PropList=IncludePropList,ExcludePropList
Нажать иконку сохранить или клавиши Ctrl+S.Перезапустить HiAsm.

InstallRedactors.sha: файл для установки файлов редакторов в HiAsm. Достаточно открыть файл в HiAsm, запустить (кнопкой F9) и в запущенной программе выбрать нужные параметры установки редакторов. Так же при помощи InstallRedactors можно удалить ранее установленные редакторы.

На данный момент есть недостатки, а именно:
1. Редакторы ParametersList и NameList для получения имен интерфейсных элементов вынуждены выделять все элементы на поле HiAsm и копировать. В результате после закрытия редактора свойств остается выделенными все элементы на поле HiAsm, а не один элемент AdjustControls. (После выхода из редактора достаточно кликнуть мышью на пустое поле HiAsm и снова выбрать элемент).
2. Из за копирования элементов на поле в редакторы попадают элементы только из текущей и дочерних контейнеров (если таковые имеются в схеме), а элементы из родительского(-их) контейнеров не попадают в редактор. (Как вариант, переносить элемент для редактирования в корневой контейнер. После редактирования возвращать на место.)
Вид редактора свойства Parameters
Вид редактора свойств IncludeNameList и ExcludeNameList
Вид редактора свойств IncludePropList и ExcludePropList
Скачать архив с файлами редакторов: adjustcontrolsredactors.zip



Изначальный текст поста (устаревшая информация)

В этой теме предлагаю обсудить возможность создания элемента для группового изменения свойств интерфейсных компонентов. Так же с помощью такого элемента возможно сохранение свойств интерфейсных компонентов в файл.
Для чего вообще такой элемент?
Бывает что нужно изменить свойства нескольких интерфейсных элементов. К примеру в зависимости от выбора пункта в списке строк, выставить предустановки: установить флажки, заблокировать переключатели, ввести шаблон в редактор текста и т.п. Конечно можно заморочить и все сделать по "старинке" проведя нужные связи (doCheck, doVisible, doText). Или заполнить список в элементе и одним doSet внести нужные изменения.
Для чего получать свойства элементов?
Как правило для сохранения в файл, для последующей загрузки и установки предыдущих состояний.
Как работает элемент?
1. Задается свойство Name интерфейсным элементам, которым планируется изменять свойства.
2. В списке SetValue (тестового элемента) задаются свойства элемента и их значения.
В формате: Имя=свойства=значение Так же доступно общее имя "all".
3. При вызове doSet происходит перебор всех интерфейсных элементов на форме и если у него заданно имя и в списке есть для его имени свойства со значениями, происходит их изменение.
Доступные свойства
left,top,width,height: позиция элемента
align: выравнивание элемента, возможные значения как 0,1,2,3,4,5 так и "none", "left","top","ritht","bottom","client".
color: цвет элемента, возможные значения: пока только цифровое значение (0 -черный, 255-красный и т.д.)
text,caption: текст в элементе (они полностью взаимозаменяемые).
visible,enabled: видимость и доступность элемента, значения 1 или 0.
checked,selected: выбор элемента, значения 1 или 0. (в флажках и переключателях)
select: выбор пункта в элементе. (в списке строк, выпадающем списке и т.п.)
fontname,fontcolor,fontsize,fontstyle : свойства шрифта в элементе, значения: цвет цифровое значение (см. свойство Color), fontstyle символы "b","i","u","s" (к примеру выделенный курсив fontstyle=bi)
cursor: пока не реализовано.
Получение свойств элемента (doGet) не до конца реализовано (выдается позиция), планируется указание нужных свойств.
ВАЖНО:для тестирования элемента необходимо изменить файл Win.pas. В архиве находиться файл с внесенными изменениями, измененные строки в конце помечены "//test".
Для тех кто хочет внести изменения в файл Win.pas самостоятельно.

Необходимо вставить только три строки (помечены "//test")
#pasWin.pas

public
fname:string; //test
...
property Name:string read fname; //test

procedure THIWin.Init;
begin
...

THIWin(Control).fName := _prop_Name;//test
end;

На данный момент элемент в стадии разработки (код "сырой").
[color=green
Хочу попробовать элемент! Меньше букв![/color]]
1. Скачать архив, ссылка внизу поста.
2. Распаковать.
3. Скопировать в другую папку файл Win.pas. из HiasmElementsdelphicodeWin.pas
4. Вместо него скопировать из распакованного архива Win.pas.
5. Установить элемент: перетащить на рабочее поле файл adjustment.ini, в появившемся окне нажать ОК.
6. Закрыть, открыть Hiasm.
7. Открыть пример из архива Adjustment_test_01.sha.
8. Для тестирования использовать компилятор FPC.

После тестирования скопируйте свой Win.pas обратно!

andrestudio, спасибо за помощь.

Высказывайтесь.
Скачать архив с элементом и примером: ссылка на архив
карма: 9

3
файлы: 4adjustcontrolsredactors.zip [134.5KB] [343], imagenames.jpg [29KB] [2189], imageprops.jpg [30.5KB] [2250], imageparameters.jpg [41.6KB] [2248]
Голосовали:Konst, ser_davkin, andrestudio
Редактировалось 3 раз(а), последний 2020-07-22 17:20:23