Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];

Вниз

Наследуемые формы и 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.036 c
1-1096750081
Major
2004-10-03 00:48
2004.10.17
Закрытие окна


3-1095410136
}|{yk
2004-09-17 12:35
2004.10.17
Это глюк Firebird?


14-1096349062
Vlad Oshin
2004-09-28 09:24
2004.10.17
Можно ли контролер домена NT4 запихать в другой домен 2003?


4-1094909921
InfMag
2004-09-11 17:38
2004.10.17
Блокировшик


4-1095240975
xman
2004-09-15 13:36
2004.10.17
HDD





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский