Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2016, 23:29   #1
dimkoss
Пользователь
 
Регистрация: 06.02.2016
Сообщений: 35
По умолчанию Access Violation

Переместил процедуры для печати в отдельный .pas
http://pastebin.com/uwgNr1VJ
При вызове процедур, выкидывает Access Violation на строке
if ADOQuery1.FieldCount > 2 then
В чем может быть дело?
dimkoss вне форума Ответить с цитированием
Старый 20.06.2016, 00:03   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Не создана Form1 и/или ADOQuery1 (который, судя по всему, находится на этой форме).

запомните, прежде чем обратиться к любому свойству/методу объекта, нужно предварительно этот объект СОЗДАТЬ.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.06.2016, 00:47   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Я так понял, это - не модуль главной формы ?
Тогда почему ADOQuery1 , а не Form1.ADOQuery1 , как в других местах ?

Или сделать with Form1 ...
type_Oleg вне форума Ответить с цитированием
Старый 20.06.2016, 05:49   #4
dimkoss
Пользователь
 
Регистрация: 06.02.2016
Сообщений: 35
По умолчанию

TPrinting = class(TForm1) Разве это не означает, что все компоненты с первой формы доступны в tprinting?
dimkoss вне форума Ответить с цитированием
Старый 20.06.2016, 08:37   #5
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Разве это не означает, что все компоненты с первой формы доступны в tprinting?
Это означает, что ты пронаследовал класс. И всё.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 20.06.2016, 08:48   #6
dimkoss
Пользователь
 
Регистрация: 06.02.2016
Сообщений: 35
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Это означает, что ты пронаследовал класс. И всё.
А почему тогда adoquery недоступна? Она есть в том классе?
dimkoss вне форума Ответить с цитированием
Старый 20.06.2016, 08:56   #7
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
А почему тогда adoquery недоступна? Она есть в том классе?
а ты память под неё поклянчил вызовом конструктора?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 20.06.2016, 11:22   #8
dimkoss
Пользователь
 
Регистрация: 06.02.2016
Сообщений: 35
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
а ты память под неё поклянчил вызовом конструктора?
Можно по подробнее об этом?
dimkoss вне форума Ответить с цитированием
Старый 20.06.2016, 11:52   #9
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Можно по подробнее об этом?
кусок исходника покажь.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 20.06.2016, 13:16   #10
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Переместил процедуры для печати в отдельный .pas
Вопрос: Зачем ?
Ответ: Хотел сделать УНИВЕРСАЛЬНЫЙ вывод данных.
1. сделать такой класс
Код:
type
  TPrinting = class(TForm1)
TPrinting =class(TObject ???) TComponent ???
мы же ХОТИМ сделать "универсальную" печать, а НЕ только и исключительно для Form1.

2. После этого УБРАТЬ из этого класса ВСЕ упоминания ПЕРЕМЕННОЙ Form1.

Не получается ?
ДОБАВЛЯЕМ в процедуры ПАРАМЕТРЫ
Код:
 procedure PBar(parentform: TForm); //примерно!!! ТАК!!!
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 20.06.2016 в 13:19.
evg_m на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Access violation Vanta11a C++ Builder 4 12.04.2013 18:14
Access violation dimavit Общие вопросы Delphi 3 29.07.2012 19:16
access violation ho_N Компьютерное железо 2 30.11.2011 08:36
Access Violation SunKnight Общие вопросы Delphi 2 05.06.2008 16:46
Access Violation Carbon Общие вопросы Delphi 12 18.09.2007 19:55