Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > ValueListEditor может ли себя сохранять и загружат


Автор: Delphist 3.3.2009, 19:44
Есть компонент TValueListEditor. Возник вопрос может ли он себя сохранять в реестр (на крайняк в файл) и загружать из реестра (файла). Если нет, есть ли аналоги данного компонента умеющие это делать?

И еще такой момент, можно ли в ValueListEditor'e для каждого Key делать так что у его Value мог быть скажем ComboBox, или поле в котором можно вводить только цифры, см. рис.

Автор: bems 3.3.2009, 20:35
TStringList умеет себя сохранять. А у TValueListEditor есть соотв. свойство

Автор: Delphist 4.3.2009, 10:11
Цитата(bems @  3.3.2009,  21:35 Найти цитируемый пост)
TStringList умеет себя сохранять. А у TValueListEditor есть соотв. свойство 

А вот этот момент, можно ли в ValueListEditor'e для каждого Key делать так что у его Value мог быть скажем ComboBox, или поле в котором можно вводить только цифры

Автор: ~FoX~ 4.3.2009, 10:12
Может так покатит?
Код

procedure TForm1.Button1Click(Sender: TObject);
var f: TFileStream;
begin
  f := TFileStream.Create('c:\VLE.vle', fmcreate);
  f.WriteComponent(ValueListEditor1);
  f.Free;

end;

procedure TForm1.Button2Click(Sender: TObject);
var
  f: TFileStream;
begin
  f := TFileStream.Create('c:\VLE.vle', fmOpenRead);
  f.ReadComponent(ValueListEditor1);
  f.Free;
end;

Автор: Delphist 4.3.2009, 13:24
Цитата(Delphist @  4.3.2009,  11:11 Найти цитируемый пост)
А вот этот момент, можно ли в ValueListEditor'e для каждого Key делать так что у его Value мог быть скажем ComboBox, или поле в котором можно вводить только цифры 

посмотрел более внимательно на ValueListEditor, оказывается он и сам все это умеет, у него есть свойство ItemProps задающий стиль для каждого ключа, ну и соответственно сообытия OnPickList, OnGetEditMask  smile

Автор: Delphist 5.3.2009, 11:27
Возникли некоторые проблемы. Когда я установил PickList для какого-либо ключа, 
Код

var
  vle: TValueListEditor
  sl: TSringList;

...
  sl.Add('Значение №1');
  sl.Add('Значение №2');
  sl.Add('Произвольное значение);

  vle.ItemProp['МОЙ_КЛЮЧ'].PickList := sl;
...

Это дает возможность того, что теперь на строке МОЙ_КЛЮЧ в колонке Value выскакивает раскрывающийся список 
из трех элементов:
Код

  Значение №1
  Значение №2
  Произвольное значение

скажите, пожалуйста, в каком мне обработчике TValueListEditor'a нужно написать код, чтобы при выборе значения "Произвольное значение" в поле Value заносилась пустая строка.

в обработчике OnStringsChange я написал так:
Код

procedure
  TfmOMSSettingDlg.vleParamStringsChange(Sender: TObject);
begin

  with vle do
  if Values[Keys[Row]] = 'Произвольное значение' then
      Values[vle.Keys[Row]] := '';
end;

но эффект не совсем тот который я хотел, дело в том, что сначало появляется в поле надпись "Произвольное значение", а уж потом, когда я перехожу на новую строку появляеся пустая сторка, а хотелось бы сразу

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)