Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.03;
Скачать: CL | DM;

Вниз

Проблема наследия   Найти похожие ветки 

 
T{}r(l-l   (2003-02-20 15:13) [0]

Доброго времени суток, уважаемые!
Такая ситуация:
Есть форма Form1 и её наследник Form2.Есть юнит , в который я вынес все stored proc из Form1(для удобства - их много).И вот проблема: в процедуре я пишу Form1.Edit1 , т.е. явно указываю имя формы.Можно ли абстрагироваться от имени формы?Чтобы было что-нибудь в духе ObjectName.Edit1 , или придётся переносить вс е процедуры обратно в Form1?
Заранее благодарен.


 
Reindeer Moss Eater   (2003-02-20 15:21) [1]

Можно ли абстрагироваться от имени формы?
Не можно, а нужно!

Откуда уверенность, что экземпляр формы всегда один, и что только переменная Form1 содержит ссылку на него?

И вообще зависимость модулей друг от друга - это плохо.


 
T{}r(l-l   (2003-02-20 15:31) [2]

Так как конкретно абстрагироваться от имени?Может (Sender as TForm).Name или как-нибудь ещё?


 
Reindeer Moss Eater   (2003-02-20 16:12) [3]

Form1 в твоем случае - это переменная автоматически вставленная IDE в интерфейсную часть модуля.
Не обязательно использовать именно эту переменную. Не обязательно и её дефолтное имя (Form1)


 
T{}r(l-l   (2003-02-20 16:43) [4]

Form1 и Form2 я назвал их так, для примера.Нужно чтобы процедура просто смотрела от какой формы пришло сообщение и всё.


 
passm ©   (2003-02-20 16:45) [5]

T{}r(l-l (20.02.03 15:13)> Self.Edit1...


 
T{}r(l-l   (2003-02-20 16:47) [6]

Спасибо, завтра попробую....


 
pasha676   (2003-02-20 16:58) [7]

Что то или я не понял суть проблеммы или одно из двух...

Ведь если я в процедуре класса просто напишу Edit1, это автоматически означает обращение именно к Edit1 именно этого экземпляра. Че огород городить.


 
passm ©   (2003-02-20 17:03) [8]

pasha676 (20.02.03 16:58)> На самом деле очень удобно.
Еще недавно писал процедуру, где осуществлялась обработка классов с перебором предков... помогает.
К тому же, например, можно вызывать методы по схеме: DoSomeThing(Self)
...



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

Текущий архив: 2003.03.03;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.023 c
4-5927
Evgeniy Startsev
2003-01-15 13:11
2003.03.03
ClassName


8-5673
Карлсон
2002-11-16 14:33
2003.03.03
WDirectX


3-5431
mate
2003-02-12 16:33
2003.03.03
Пробелы в записях


1-5607
Alxd
2003-02-18 21:37
2003.03.03
Замена менеджера памяти.


9-5363
PaRL
2002-09-29 16:33
2003.03.03
3D MAX