Главная страница
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.017 c
1-34115
snake1977
2002-10-31 17:04
2002.11.11
Много поточность


1-33989
NorthMan
2002-11-01 15:11
2002.11.11
Господа, как же сделать, чтобы в ListBox е картинки разные были в


1-34052
Alex
2002-10-30 21:23
2002.11.11
Координатная система TImage


14-34179
dimonf
2002-10-21 17:46
2002.11.11
Можно ли экзешник перекомпилить в дельфи исходник?


14-34204
Malder
2002-10-22 01:22
2002.11.11
Достаточно прикольно, хотя и, действительно, просто