![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выпадающий список знач свойства и ReadOnly
Priest © (2005-10-27 17:54:00)Делаю свой редактор свойста и пишу
function TMyPropEditor.GetAttributes: TPropertyAttributes;
begin
Result := [paValueList, paSortList, paRevertable];
end;
Пользователь может поменять значение свойства (выбрать из списка), а также написать вручную...Как запретить заносить неверное значение?
Priest (2005-10-28 09:01:00) [1]Спасибо...Так я и делал. Только список у меня глобальный, поэтому сохранять его нет нужды.
Юрий Зотов (2005-10-27 18:34:00) [2]При формировании списка сохранять его, а перед присвоеним проверять веденное значение на вхождение в список.
type
TMyPropEdit = class(...)
private
FList: TStringList;
FProc: TGetStrProc;
procedure MyProc(const S: string);
public
constructor ... // в нем создать FList
destructor ... // в нем уничтожить FList
procedure GetValues(Proc: TGetStrProc); override;
procedure SetValue(const Value: string); override;
...
end;
procedure TMyPropEdit.GetValues(Proc: TGetStrProc);
begin
FList.Clear;
FProc := Proc;
... // формируем список, но вместо Proc вызываем MyProc
end;
procedure TMyPropEdit.MyProc(const S: string);
begin
FList.Add(S);
FProc(S)
end;
procedure SetValue(const Value: string);
begin
if FList.IndexOf(Value) < 0 then
raise ...; // возбуждаем исключение
inherited
end;