Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Замена в 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 не устраивает это сделать?


Наверх

Титульная страница Поиск, карта сайта Написать письмо