Форум: "Компоненты";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
ВнизМгновенное изменение Найти похожие ветки
← →
capkoh © (2005-08-30 14:20) [0]Как можно сделать реальное изменение текстового свойства, как Text в TEdit? Т.е. текст на компоненте изменяется сразу же при введении очередного символа в поле свойства.
Посмотрел как сделано в TControl:
property Caption: TCaption read GetText write SetText stored IsCaptionStored;
procedure TControl.SetText(const Value: TCaption);
begin
if GetText <> Value then SetTextBuf(PChar(Value));
end;
procedure TControl.SetTextBuf(Buffer: PChar);
begin
Perform(WM_SETTEXT, 0, Longint(Buffer));
Perform(CM_TEXTCHANGED, 0, 0);
end;
Но, ведь, SetText будет выполняться не сразу при вводе текста...
← →
Юрий Зотов © (2005-08-30 15:03) [1]Это делается не самим компонентом, а редактором свойства (что и естественно, потому что этот механизм относится исключительно к design-time). Если метод GetAttributes редактора свойства включает флаг paAutoUpdate, то при каждом изменении свойства сразу же и автоматически вызывается его метод SetValue.
Для строкового свойства можно и не писать свой редактор, а просто объявить свойство с типом TCaption (а не просто string). Тогда автоматически подключится уже готовый редактор TCaptionProperty (что и использовано в TControl для свойства Caption).
Страницы: 1 вся ветка
Форум: "Компоненты";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.08 c