:: MVP ::
|
|
:: RSS ::
|
|
|
Как изменить количество колонок в TValueListEditor?
procedure TForm1.Button1Click(Sender: TObject);
begin
// Особого смысла в этом нет, так как
// значение для всех колонок будет одно
ValueListEditor1.ColCount := 3;
ValueListEditor1.TitleCaptions.Text :=
'Ключ'#13'Значение'#13'Что-то ещё';
end;
|
Как вставить в TValueListEditor раскрывающийся список с возможными значениями?
procedure TForm1.FormCreate(Sender: TObject);
begin
ValueListEditor1.InsertRow('Ключ', '', True);
ValueListEditor1.ItemProps[0].ReadOnly := True;
ValueListEditor1.ItemProps[0].EditStyle := esPickList;
end;
procedure TForm1.ValueListEditor1GetPickList(Sender: TObject;
const KeyName: string; Values: TStrings);
begin
Values.Add('Значение 1');
Values.Add('Значение 2');
end;
|
Как вызвать в TValueListEditor диалоговое окно для редактирования значения?
procedure TForm1.FormCreate(Sender: TObject);
begin
ValueListEditor1.InsertRow('1', '', True);
ValueListEditor1.ItemProps[0].ReadOnly := True;
ValueListEditor1.ItemProps[0].EditStyle := esEllipsis;
end;
procedure TForm1.ValueListEditor1EditButtonClick(Sender: TObject);
begin
ValueListEditor1.Strings.ValueFromIndex[ValueListEditor1.Row-1] :=
InputBox('Редактирование значения', 'Введите новое значение',
ValueListEditor1.Strings.ValueFromIndex[ValueListEditor1.Row-1]);
end;
|
Как использовать разные редакторы в TValueListEditor с несколькими колонками?
uses
{...,} Vcl.Grids;
type
TValueListEditor = class({Vcl.}ValEdit.TValueListEditor)
protected
function GetEditStyle(ACol: Integer; ARow: Integer): TEditStyle; override;
function CreateEditor: TInplaceEdit; override;
private
procedure GetCbxItems(ACol, ARow: Integer; Items: TStrings);
procedure GetValue(Sender: TObject);
end;
TForm1 = class(TForm)
ValueListEditor1: TValueListEditor;
procedure FormCreate(Sender: TObject);
{...}
end;
implementation
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
// Особого смысла в этом нет, так как
// значение для всех колонок будет одно
ValueListEditor1.ColCount := 3;
ValueListEditor1.TitleCaptions.Text :=
'Ключ'#13'Значение (из списка)'#13'Значение (из редактора)';
end;
{ TValueListEditor }
function TValueListEditor.CreateEditor: TInplaceEdit;
var
Inplace: TInplaceEditList;
begin
Inplace := TInplaceEditList.Create(Self);
Inplace.DropDownRows := 5;
Inplace.OnGetPickListitems := GetCbxItems;
Inplace.OnEditButtonClick := GetValue;
Result := Inplace;
end;
function TValueListEditor.GetEditStyle(ACol, ARow: Integer): TEditStyle;
begin
case ACol of
1: Result := esPickList;
2: Result := esEllipsis;
else
Result := esSimple;
end;
end;
procedure TValueListEditor.GetValue(Sender: TObject);
begin
with Sender as TValueListEditor do
Strings.ValueFromIndex[Row-1] :=
InputBox('Редактирование значения', 'Введите новое значение',
Strings.ValueFromIndex[Row-1]);
end;
procedure TValueListEditor.GetCbxItems(ACol, ARow: Integer;
Items: TStrings);
var
i: Integer;
begin
for i := 0 to 10 do
Items.Add(IntToStr(i*100));
end;
|
При использовании материала - ссылка на сайт обязательна
|
|