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

Вниз

Доступ к форме Owner-у   Найти похожие ветки 

 
ИгорьК   (2002-10-31 15:07) [0]

Почему такой код работает:
...
var nb: integer;
begin
nb:=(Owner.FindComponent("qrPred") as TADOQuery).FieldByName("N_BASE").AsInteger;
qrUpdPred.Parameters.ParamValues["N_BASE"]:=nb;
end;

а такой говорит - "нарушение прав доступа":
...
begin
Parameters.ParamValues["N_BASE"]:=(Owner.FindComponent("qrPred") as TADOQuery).FieldByName("N_BASE").AsInteger;
end;


 
asmith   (2002-10-31 16:15) [1]

Поскольку оба примера не совсем эквивалентны (в первом случае присвоение идет qrUpdPred.Parameters.ParamValues["N_BASE"], а во втором Parameters.ParamValues["N_BASE"]), то, видимо, во втором случае имеется оператор with, который все и путает.


 
Владислав   (2002-10-31 16:28) [2]

Этот вопрос почти философский!

Ответь на следующие вопросы.
1. Что произойдет, если Owner = nil?
2. Что произойдет, если не существует компонент с именем "qrPred"?
3. Что произойдет, если компонент с именем "qrPred" не является TADOQuery или его наследником?
4. Что произойдет, если у объекта (Owner.FindComponent("qrPred") as TADOQuery) нет поля с именем "N_BASE"?

Часть ответов на мои вопросы - это ответы на твои вопросы. Другая часть - это ответы на твои возможные в будущем вопросы.


 
ИгорьК   (2002-10-31 17:39) [3]

Все на что я ссылаюсь - существует, ни каких "если" не может быть.


 
Владислав   (2002-10-31 18:17) [4]

Тебе видней...
Значит твое "нарушение прав доступа" возникает просто так. Напиши в техподдержку мелкософта...


 
Zemal   (2002-10-31 19:00) [5]

Мне кажется всё дело в этом AsInteger... используй Value, пример:
begin
Parameters.ParamValues["N_BASE"]:=(Owner.FindComponent("qrPred") as TADOQuery).FieldByName("N_BASE").Value;
end;
Или попробуй поставить у параметра в свойствах, что он Integer... наверняка у тебя там стоит Unknown.
Или попробуй ...ParamByName("N_BASE").Values, чем чёрт не шутит :), может заработает :).
Вообще это может быть из-за того же WITH... ведь Owner может быть разный для разных компонентов :), учти это :).


 
Zemal   (2002-10-31 19:02) [6]

Кстати, нажми на своём Owner комбинацию Ctrl+Space и посмотри как он там описан... тип у него TForm? гы-гы :)



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

Форум: "Основная";
Текущий архив: 2002.11.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.008 c
1-33982
BIN
2002-10-31 14:44
2002.11.11
Конвертер Делфи6 -> Делфи3


14-34173
BKGG
2002-10-21 09:38
2002.11.11
программа которий читаеть DLL-и


7-34275
Holder
2002-07-18 15:10
2002.11.11
Можно ли заблокировать из Windows кнопку Reset ? (на корпусе)


14-34193
Rouse_
2002-10-22 05:22
2002.11.11
Бойцовский клуб


14-34196
vopros
2002-10-21 11:48
2002.11.11
Кто посоветует, хорошую школу где обучают





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский