Delphi 6. Что нового? 7
Delphi 6. Что нового? Изменения в палитре компонентов.
Компонент TValueListEditor.
На странице Additional в Delphi 6 появился новый компонент.
TValueListEditor представляет собой специальную сетку для редактирования строковых списков. Эта сетка содержит следующую пару слов в заголовке списка: Название/Значение в форме Name=Value. Названия и значения являются потомками объекта TSTRINGS, который является в свою очередь значением свойства Strings.
Этот компонент можно представить как компиляцию двух компонентов ListBox и StringGrid.
Специальная сетка содержит два столбца: один столбец для названий и один столбец для значений. По умолчанию, столбец названий имеет имя Key, а столбец значение — имя Value. Вы можете изменять эти имена по своему усмотрению, используя свойство TitleCaptions Инспектора объекта.
Для изменения заголовков найдите свойство TitleCaptions в Инспекторе объекта и произведите двойной щелчок по кнопке с тремя точками справа от этого свойства. Откроется диалоговое окно редактора заголовков.
Вы можете удалить фиксированную строку заголовков редактора, используя комплексное свойство DisplayOptions. Если установите значение doColumnTitles равным False, то это приведет к удалению фиксированной строки имен. Свойство doAutoColResize разрешает или запрещает изменение размера колонки заголовка по ширине текста.
Когда вы производите запись значения заголовка, колонка отображения заголовка автоматически приспосабливается к размеру заголовка таким образом, чтобы текст полностью заполнил новую ширину заголовка. Если DisplayOptions не включает doKeyColFixed, каждая колонка имеет ширину, равную половине ширины специального редактора.
Вы можете управлять возможностью разрешения или запрещения редактирования столбцов имен, используя комплексное свойство KeyOptions, которое содержит отдельные параметры, позволяющие редактировать имена элементов списка, добавлять названия элементов списка и их значения, удалять названия элементов списка и их значения. Вы можете определять: должны ли быть названия уникальными, т.е. в этом случае вы не сможете ввести элементы с одинаковыми названиями.
Свойства компонента ValueListEditor
Свойство property DefaultColWidth: Integer; — определяет ширину в пикселях ключевого столбца, по умолчанию для него принято значение 150.
Свойство property DefaultRowHeight: Integer; — определяет высоту в пикселях всех строк компонента. По умолчанию установлено значение 18.
Вы можете изменять ширину ячеек компонента после запуска приложения с помощью мыши. Высоту и ширину ячеек можно изменять программно, например:
procedure TForm1.Button1Click (Sender: TObject);
begin
if ValueListEditor1.ColWidths[1] > 100 then
ValueListEditor1.RowHeights[1]:=75;
end;
Вы можете определить ширину сетки, разделяющую ячейки специального редактора:
procedure TForm1.FormCreate (Sender: TObject);
begin
if ValueListEditor1.DefaultColWidth> 90 then
ValueListEditor1.GridLineWidth:= 10
else
ValueListEditor1.GridLineWidth:= 15;
end;
Чтобы обеспечить возможность редактирования специализированного списка, необходимо установить в комплексном свойстве KeyOptons следующие значения:
KeyEdit=True, KeyAdd=True, KeyDelete=True.
Следующий программный код позволяет добавлять в определенные вами ячейки необходимые значения:
procedure TForm1.BitBtn1Click (Sender: TObject);
begin
ValueListEditor1.Cells[0,1]:= 'Приложение';
ValueListEditor1.Cells[1,1]:= 'Delphi';
end;
Свойство DoAutoColResize позволяет изменять размеры ячейки, когда происходит их редактирование, размеры столбца автоматически корректируются так, чтобы они полностью вместили новое текстовое значение. Используется совместно с опцией doKeyColFixed комплексного свойства DisplayOptions.
Свойство doColKeyFixed разрешает или запрещает изменять размеры заголовка первого столбца редактора. Используется совместно с опцией doAutoColResize комплексного свойства DisplayOptions.
Если установлены значения doColKeyFixed=False, а doAutoColResize=True, то вы не сможете изменять размеры ячеек по ширине с помощью мыши.
Если установлены значения doColKeyFixed=True, а doAutoColResize=False, то вы сможете изменять размеры ячеек по ширине с помощью мыши.
Вы можете установить для свойств doColKeyFixed и doAutoColResize одинаковые значения False или True и посмотреть, какой получится результат, чтобы впоследствии выбрать необходимый.
Свойство property DropDownRows: Integer; — ограничивает величину раскрывающегося списка, который появляется для значений, использующих список с кнопкой-указкой (кнопка со стрелкой справа в окне специального редактора на элементах списка значений).
Используйте DropDownRows, чтобы указать максимальный размер раскрывающегося списка, который появляется, когда пользователь нажимает кнопку-указку, раскрывающую значения, которые имеются во вложенном списке.
Свойство DropDownRows игнорируется для значений, которые не имеют кнопки-указки. Для обеспечения появления вложенных значений в элементе списка необходимо проделать следующее: для выбранного элемента специализированного списка необходимо использовать свойство ItemProps, в свою очередь относящееся к нему свойство EditStyle необходимо установить в значение esPickList:
ValueListEditor1.ItemProps[0].EditStyle:=esPickList;
Если вы хотите установить кнопку-указку для всех остальных элементов списка, например, имеется всего три элемента в списке, то запишите следующий программный код:
ValueListEditor1.ItemProps[0].EditStyle:=esPickList;
ValueListEditor1.ItemProps[1].EditStyle:=esPickList;
ValueListEditor1.ItemProps[2].EditStyle:=esPickList;
В этом случае вы получите одну кнопку-указку на все элементы. Эта кнопка перемещается по элементам списка. Если вы работали с базами данных Access, то могли видеть списки с кнопкой, раскрывающей вложенные списки.
Вы можете редактировать элементы списка в столбце Value, используя свойство ItemProps.
Каждый элемент имеет отдельный объект TItemProp, который позволяет вам:
определить маску редактирования, чтобы ограничить ввод;
определить максимальную длину строки для вводимых значений;
определить значения только для чтения;
Вы можете определить такое обстоятельство, чтобы элементы редактора, имеющие кнопку-указку, содержали список значений, из которых пользователь может выбирать необходимое значение.
Если вы определяете, что имеется элемент со стрелкой, раскрывающей список, то вы должны снабдить этот элемент списком значений, из которых пользователь может производить выбор. Список значений может быть статический (PickList свойство объекта TItemProp) или динамический, т.е. новые значения добавляются во время выполнения приложения. Вы можете также комбинировать два этих подхода, т.е. иметь статический список, который изменяется добавлением элементов программным способом. Например,
ValueListEditor1.ItemProps[0].PickList.Add('DELPHI');
Владимир Скуратов
(c) компьютерная газета
Компонент TValueListEditor.
На странице Additional в Delphi 6 появился новый компонент.
TValueListEditor представляет собой специальную сетку для редактирования строковых списков. Эта сетка содержит следующую пару слов в заголовке списка: Название/Значение в форме Name=Value. Названия и значения являются потомками объекта TSTRINGS, который является в свою очередь значением свойства Strings.
Этот компонент можно представить как компиляцию двух компонентов ListBox и StringGrid.
Специальная сетка содержит два столбца: один столбец для названий и один столбец для значений. По умолчанию, столбец названий имеет имя Key, а столбец значение — имя Value. Вы можете изменять эти имена по своему усмотрению, используя свойство TitleCaptions Инспектора объекта.
Для изменения заголовков найдите свойство TitleCaptions в Инспекторе объекта и произведите двойной щелчок по кнопке с тремя точками справа от этого свойства. Откроется диалоговое окно редактора заголовков.
Вы можете удалить фиксированную строку заголовков редактора, используя комплексное свойство DisplayOptions. Если установите значение doColumnTitles равным False, то это приведет к удалению фиксированной строки имен. Свойство doAutoColResize разрешает или запрещает изменение размера колонки заголовка по ширине текста.
Когда вы производите запись значения заголовка, колонка отображения заголовка автоматически приспосабливается к размеру заголовка таким образом, чтобы текст полностью заполнил новую ширину заголовка. Если DisplayOptions не включает doKeyColFixed, каждая колонка имеет ширину, равную половине ширины специального редактора.
Вы можете управлять возможностью разрешения или запрещения редактирования столбцов имен, используя комплексное свойство KeyOptions, которое содержит отдельные параметры, позволяющие редактировать имена элементов списка, добавлять названия элементов списка и их значения, удалять названия элементов списка и их значения. Вы можете определять: должны ли быть названия уникальными, т.е. в этом случае вы не сможете ввести элементы с одинаковыми названиями.
Свойства компонента ValueListEditor
Свойство property DefaultColWidth: Integer; — определяет ширину в пикселях ключевого столбца, по умолчанию для него принято значение 150.
Свойство property DefaultRowHeight: Integer; — определяет высоту в пикселях всех строк компонента. По умолчанию установлено значение 18.
Вы можете изменять ширину ячеек компонента после запуска приложения с помощью мыши. Высоту и ширину ячеек можно изменять программно, например:
procedure TForm1.Button1Click (Sender: TObject);
begin
if ValueListEditor1.ColWidths[1] > 100 then
ValueListEditor1.RowHeights[1]:=75;
end;
Вы можете определить ширину сетки, разделяющую ячейки специального редактора:
procedure TForm1.FormCreate (Sender: TObject);
begin
if ValueListEditor1.DefaultColWidth> 90 then
ValueListEditor1.GridLineWidth:= 10
else
ValueListEditor1.GridLineWidth:= 15;
end;
Чтобы обеспечить возможность редактирования специализированного списка, необходимо установить в комплексном свойстве KeyOptons следующие значения:
KeyEdit=True, KeyAdd=True, KeyDelete=True.
Следующий программный код позволяет добавлять в определенные вами ячейки необходимые значения:
procedure TForm1.BitBtn1Click (Sender: TObject);
begin
ValueListEditor1.Cells[0,1]:= 'Приложение';
ValueListEditor1.Cells[1,1]:= 'Delphi';
end;
Свойство DoAutoColResize позволяет изменять размеры ячейки, когда происходит их редактирование, размеры столбца автоматически корректируются так, чтобы они полностью вместили новое текстовое значение. Используется совместно с опцией doKeyColFixed комплексного свойства DisplayOptions.
Свойство doColKeyFixed разрешает или запрещает изменять размеры заголовка первого столбца редактора. Используется совместно с опцией doAutoColResize комплексного свойства DisplayOptions.
Если установлены значения doColKeyFixed=False, а doAutoColResize=True, то вы не сможете изменять размеры ячеек по ширине с помощью мыши.
Если установлены значения doColKeyFixed=True, а doAutoColResize=False, то вы сможете изменять размеры ячеек по ширине с помощью мыши.
Вы можете установить для свойств doColKeyFixed и doAutoColResize одинаковые значения False или True и посмотреть, какой получится результат, чтобы впоследствии выбрать необходимый.
Свойство property DropDownRows: Integer; — ограничивает величину раскрывающегося списка, который появляется для значений, использующих список с кнопкой-указкой (кнопка со стрелкой справа в окне специального редактора на элементах списка значений).
Используйте DropDownRows, чтобы указать максимальный размер раскрывающегося списка, который появляется, когда пользователь нажимает кнопку-указку, раскрывающую значения, которые имеются во вложенном списке.
Свойство DropDownRows игнорируется для значений, которые не имеют кнопки-указки. Для обеспечения появления вложенных значений в элементе списка необходимо проделать следующее: для выбранного элемента специализированного списка необходимо использовать свойство ItemProps, в свою очередь относящееся к нему свойство EditStyle необходимо установить в значение esPickList:
ValueListEditor1.ItemProps[0].EditStyle:=esPickList;
Если вы хотите установить кнопку-указку для всех остальных элементов списка, например, имеется всего три элемента в списке, то запишите следующий программный код:
ValueListEditor1.ItemProps[0].EditStyle:=esPickList;
ValueListEditor1.ItemProps[1].EditStyle:=esPickList;
ValueListEditor1.ItemProps[2].EditStyle:=esPickList;
В этом случае вы получите одну кнопку-указку на все элементы. Эта кнопка перемещается по элементам списка. Если вы работали с базами данных Access, то могли видеть списки с кнопкой, раскрывающей вложенные списки.
Вы можете редактировать элементы списка в столбце Value, используя свойство ItemProps.
Каждый элемент имеет отдельный объект TItemProp, который позволяет вам:
определить маску редактирования, чтобы ограничить ввод;
определить максимальную длину строки для вводимых значений;
определить значения только для чтения;
Вы можете определить такое обстоятельство, чтобы элементы редактора, имеющие кнопку-указку, содержали список значений, из которых пользователь может выбирать необходимое значение.
Если вы определяете, что имеется элемент со стрелкой, раскрывающей список, то вы должны снабдить этот элемент списком значений, из которых пользователь может производить выбор. Список значений может быть статический (PickList свойство объекта TItemProp) или динамический, т.е. новые значения добавляются во время выполнения приложения. Вы можете также комбинировать два этих подхода, т.е. иметь статический список, который изменяется добавлением элементов программным способом. Например,
ValueListEditor1.ItemProps[0].PickList.Add('DELPHI');
Владимир Скуратов
(c) компьютерная газета
Компьютерная газета. Статья была опубликована в номере 48 за 2001 год в рубрике программирование :: delphi