Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];

Вниз

Выпадающий список знач свойства и ReadOnly   Найти похожие ветки 

 
Priest ©   (2005-10-27 17:54) [0]

Делаю свой редактор свойста и пишу

function TMyPropEditor.GetAttributes: TPropertyAttributes;
begin
Result := [paValueList, paSortList, paRevertable];
end;

Пользователь может поменять значение свойства (выбрать из списка), а также написать вручную...Как запретить заносить неверное значение?


 
Юрий Зотов ©   (2005-10-27 18:34) [1]

При формировании списка сохранять его, а перед присвоеним проверять веденное значение на вхождение в список.

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;


 
Priest ©   (2005-10-28 09:01) [2]

Спасибо...Так я и делал. Только список у меня глобальный, поэтому сохранять его нет нужды.



Страницы: 1 вся ветка

Форум: "Компоненты";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.014 c
15-1144588919
Бугага
2006-04-09 17:21
2006.04.30
"Дефис" вместо "минуса"


9-1128962305
JurMan
2005-10-10 20:38
2006.04.30
OnLine games


15-1144711390
dyd
2006-04-11 03:23
2006.04.30
PHP


2-1144856079
GeoNew
2006-04-12 19:34
2006.04.30
WebBrowser2


2-1144925760
костян
2006-04-13 14:56
2006.04.30
Господа программисты,проблема с DBGrid и MonthCalendar





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский