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

Вниз

Доступ к форме 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
14-34237
Peter Gluhiy
2002-10-23 13:50
2002.11.11
Для любителей OnLine тестов!


1-34100
Ghost!
2002-10-30 22:00
2002.11.11
сложный вопрос


14-34239
Polevi
2002-10-23 16:34
2002.11.11
http://www.yandex.ru/yandsearch?text=DS+J%7BETKB%3F+NJDFHBO+


4-34320
Nikolas ShmuS
2002-09-27 00:31
2002.11.11
какая функция минимизирует окошко? )


1-34032
tytus
2002-11-03 00:48
2002.11.11
Обновление OLEAUT32.DLL