![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Замена в Run-Time [D7, WinXP]
Valera © (2005-07-22 10:45:00)Доброго времени суток. Я создал наследника TEdit: TMyEdit = class(TEdit). Зарегистрировал в палитре все работает. Возможно ли при работающей программе (моей) заменить Edit-ы на мой TMyEdit. Я понимаю можно в design, но очень надо. Заранее благодарю.
TUser (2005-07-25 10:09:00) [1]var T: TEdit;
begin
T:=TMyEdit.Create(Edit1.Owner);
T.Assign (Edit1);
Edit1.Free;
end;
PS. В большинстве случаев этот вариант сработает, но учти, что будут вызовы метода Notification, и если, например, Edit1 - это для кого-то FocusControl, то получиться нехорошо.
Amoeba (2005-07-25 10:04:00) [2]А если установить GExperts, то это вообще становится элементарной задачей в DesignTime.
Юрий Зотов (2005-07-25 03:43:00) [3]Существуют текстовые редакторы, позволяющие делать поиск и замену в файлах. Натравливаем такой редактор на *.pas и *.dfm (при выгруженной Delphi) и меняем строку 'TEdit' на 'TMyEdit' (как целое слово). Остается только перекомпилировать проект.
ЮЮ (2005-07-25 03:19:00) [4]Пробегмсь по Form.Controls и как найдешь TEdit, создавай TMyEdit с теми же свойствами, что и у "покойнмчка" (кроме Name) м затем убей его.
З.Ы. При условии, что в коде не используется код тмпа Edit1.<сыойство>, где Edit1 - компонет, положенный в дизайне, ибо ссылка будет битая. тогда придется
<запомнить св-ва Edit1>
Edit1.Free;
Edit1 := TMyEdit.Create(Self);
<востановить св-ва Edit1>
и так для каждого TEdit на форме.
Не проще сделать в IDE "заменить" 'TEdit' на 'TMyEdit' и тоже самое в dfm и обойтись без геморроя?
Fay (2005-07-22 13:13:00) [5]2 Valera (22.07.05 10:45)
Замена - это что, где и когда?
Получите, блин, хрустальную сову досрочно 8)
evvcom (2005-07-22 11:09:00) [6]
> Возможно ли при работающей программе (моей) заменить Edit-ы
> на мой TMyEdit. Я понимаю можно в design, но очень надо
Хотелось бы узнать, почему в design-time не устраивает это сделать?