Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.017 c
3-5437
Наташа
2003-02-13 13:30
2003.03.03
Удаление записи


1-5487
PrettyFly
2003-02-20 16:44
2003.03.03
Edit in TTreeView


1-5502
UDS
2003-02-20 20:20
2003.03.03
Вопрос по компоненту


3-5390
Alexanders
2003-02-03 15:42
2003.03.03
БД в интернет


1-5647
Sniffer
2003-02-20 15:18
2003.03.03
I/O error 87




   Наверх