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

Вниз

Наследуемые формы и ADOCommand на форме-предке   Найти похожие ветки 

 
analyser   (2004-09-16 15:51) [0]

Вот такая штука:

Есть иерархия форм. На форме-предке определен ADOCommand и он используется в разных процедурах/методах этой формы, что-то вроде:

with ADOCommand do begin
 Parameters[1].Value := Val;
 Execute;
end;


На реальных формах-наследниках этот ADOCommand наполняется реальным содержимым и выполняются процедуры/методы предка.
Для первой открытой формы-наследника все тип-топ. Для второй (при открытой первой) уже не работает, выдавая ошибку "Object is already in collection.Cannot append" именно при попытке выполнить Execute;

Поиском по DelphiKingdom нашел странный топик:
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=11728
и озадачился - что это означает?

(Я вообще-то извернулся, но осадок остался - что не так делал?)

ЗЫ: Аналогичным образом определенные на форме-предке ADODataSet"ы прекрасно работают на формах-наследниках, никак не мешая друг другу...
ЗЗЫ: А вообще, использует ли кто иерархию форм с Data Access компонентами ?


 
KSergey ©   (2004-09-16 16:14) [1]

> определен ADOCommand

Как? Можно уточнить? Или на форму брошен? А как форма создаетя?

Мне просто интересно. Странная ситуация, хотя действительно есть упоминание и именно в разрезе ADO...
Я кидал ADOQuery на базовую форму, создавал наследников. Проблем не помню.


 
analyser   (2004-09-16 16:23) [2]

KSergey [1]
ADOCommand в предке именно "брошен на форму", т.е. форма (и все ее наследники) содержит этот компонент.

> А как форма создаетя?
Не понял...
Создаются формы-наследники, и все они содержат этот компонент.

>Я кидал ADOQuery на базовую форму...
Так я же и говорю - с TADODataSet - проблемм нет.


 
KSergey ©   (2004-09-16 16:26) [3]

> > А как форма создаетя?
> Не понял...
> Создаются формы-наследники,

Код.
Или они автокрейтные? (мне просто интересно, на вопрос все равно ответа не знаю)


 
analyser   (2004-09-16 16:57) [4]

KSergey [3]
Да код-то тривиальный - в конечном итоге все сводится к:

Application.CreateForm(ClassForm, NewForm);

где ClassForm - имя класса формы, NewForm - имя создаваемой формы.

А что ? (Мне тоже стало интересно...)


 
KSergey ©   (2004-09-16 17:07) [5]

> [4] analyser   (16.09.04 16:57)
> А что ?

Да так... На ум положил ;)

А вообще для динамически создаваемых компонент давно взял за правило: создал - присвой Name пустую строку. Почему-то компоненты с одинаковым не пустым именем (в пределах одного владельца? что-то я не вникал) создать нельзя, а вот с пустым - сколько хочешь. Ну да видать борландовцам виднее. ;)
Впрочем, видимо для FindComponent (или как там оно) придумано. Но факт: присвоил пустую строку - и все здорово. И голова не болит. Создавать какие-либо уникальные имена - не очень-то удобно (кода во всяком случае больше).


 
analyser   (2004-09-16 17:43) [6]

[5] KSergey
Ни фига не понял... О каких именах речь...
...Динамически создаваемые компоненты...
М.б. это ты о чем-то своем ?


 
KSergey ©   (2004-09-16 18:07) [7]

> [6] analyser   (16.09.04 17:43)
> Ни фига не понял... О каких именах речь...

TComponent.Name


 
analyser   (2004-09-16 18:16) [8]

[7] KSergey

Спасибо, объяснил :) А то я все думаю, что это за имена такие непонятные.
Кроме шуток - я действительно не понял, что ты хотел сказать.
В контексте моего вопроса не было ни слова о динамически создаваемых компонентах (я не имею в виду формы - те, да, создаются динамически, и присваемые им имена мне не мешают - более того, я ни разу не пробовал создавать формы с одинаковыми именами, тем более с сознательно пустыми...)
Впрочем, как я понял, это все лирика. Главное в:
на вопрос все равно ответа не знаю
Нет?


 
KSergey ©   (2004-09-17 07:14) [9]

> [8] analyser   (16.09.04 18:16)
> Главное в:
> на вопрос все равно ответа не знаю
> Нет?

Кому как ;)



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

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

Наверх




Память: 0.49 MB
Время: 0.035 c
1-1096359556
Zhekson
2004-09-28 12:19
2004.10.17
Сорторовка в DBGrid


14-1095878044
Sheng
2004-09-22 22:34
2004.10.17
Любителям комьютерной 3d графики


14-1096139584
kaZaNoVa
2004-09-25 23:13
2004.10.17
Windows 2003 & Modem


3-1095752054
Rule
2004-09-21 11:34
2004.10.17
Непонятное суммирование в IB в storedprocedure


1-1096917443
lipskiy
2004-10-04 23:17
2004.10.17
Как предотвратить "замерзание" проигрывания авишки в TAnimate