Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Для новичков > ошибка Access violation |
Автор: jorka 16.11.2008, 12:08 | ||
ошибка возникает в конструкторе, я в ООП не силен, подскажите что не так
ЗЫ TPackage - базовый класс |
Автор: Christoph 16.11.2008, 13:33 |
А если TPackage базовый класс, разве у него может быть предок? ОТ кого наследуются методы? в Базовом классе не может быть inherited |
Автор: jorka 16.11.2008, 13:45 | ||
убрал inherited, проблема всеравно осталась, на том же поле. ЗЫ я где-то читал что все базовые классы наследуются от TObject |
Автор: SneG0K 16.11.2008, 14:14 |
Это разбирать надо SetKind(). И не обязательно это от конструктора, может все хорошо создалось, а SetKind() пытается прочитать\записать не созданную переменную или наоборот. |
Автор: jorka 16.11.2008, 14:19 | ||||||
SetKind() это процедура того же класса TPackage.
я попробовал написать так:
надо ж все-таки задать параметры по умолчанию, и всеравно таже ошибка( ЗЫ kind это переменная класса TPackage. private kind: integer; |
Автор: THandle 16.11.2008, 14:27 | ||
jorka, покажи весь свой код, весь этот класс. А инициализировать все нулями - незачем. Все это происходит уже в TObject.InitInstance, на сколько я понял:
|
Автор: Sansa 16.11.2008, 14:28 |
Хотелось бы видеть полную интерфейсную часть класса |
Автор: jorka 16.11.2008, 14:29 | ||
|
Автор: THandle 16.11.2008, 14:39 | ||
jorka, 1) Зачем столько раз писать type, private, public...?
2) Зачем инициализировать нулями? 3) Какая хоть ошибка? У меня все нормально компилируется и создается. 4) Лучше используй свойства. |
Автор: jorka 16.11.2008, 14:50 | ||||
1) Не освоился еще 2) Не знаю, думал конструктор для этого и нужен 3) Если с классом все нормально, тогда возможно я не правильно его вызываю
я правильно делаю? 4) Какие свойства? |
Автор: THandle 16.11.2008, 14:54 | ||
нет.
property. Почитай либо в книжке какой либо в интернете/на форуме поищи ![]() |
Автор: jorka 16.11.2008, 15:00 | ||||
всё зашуршало, работает) Спасибо. |
Автор: Christoph 16.11.2008, 16:20 |
А вот еще вопрос...так чисто для себя! Вот смотрите чем отличается переменная класса от свойства? То что для свойства устанавливается метод чтения и записи? P.s THandle Красивей было если бы отдельно были процедуры, отдельно функции ![]() |
Автор: jorka 16.11.2008, 20:48 |
вопрос не по теме: есть две формы, вторая show когда на первой нажимается кнопка. почему form2.create происходит после того как выполнится form1.create ? |
Автор: Christoph 16.11.2008, 21:34 |
ну можно создаавать форму вторую по нажатию кнопки, или сразу при запуске проги, создавать две формы! Имхо без кода тяжело говорить |
Автор: jorka 16.11.2008, 22:09 | ||
все оказалось намного проще и веселее, все дело в файле проекта, там есть строка
а если ее удалить, то можно уже и экспериментировать ![]() |
Автор: SneG0K 16.11.2008, 22:44 |
А какое отношение форма имеет к твоему классу? |
Автор: jorka 16.11.2008, 23:10 | ||
никакого ![]() |
Автор: SneG0K 16.11.2008, 23:16 |
дак че, когда ты убрал инициализацию формы все заработало? |
Автор: Christoph 16.11.2008, 23:44 |
Не понимаю что тут хотят сделать ![]() ![]() |
Автор: jorka 17.11.2008, 10:22 | ||
да, убрал инициализацию из файла проекта и впихнул в кнопку ) теперь при нажатии кнопки у меня создается новая форма(количество не ограничено) с определенными параметрами. дело в том что в Form2.create у меня прописан код отрисовки моделей, и он выполнялся без параметров при запуске первой формы, а теперь норм) |
Автор: THandle 17.11.2008, 11:02 |
Christoph, http://forum.vingrad.ru/articles/topic-157712.html Тут посмотри про свойства. jorka, подозрительно это все. Значит ты вручную создаешь форму. А освобождаешь ли ты память? Лучше покажи код, а то утечки там могут быть не маленькие... |
Автор: Mariska 24.11.2008, 19:52 |
Мальчики помогите сдать практику пожалуйста!!!!!!!!! Добавлено через 1 минуту и 14 секунд ![]() |
Автор: Qu1nt 24.11.2008, 20:07 |
Mariska, я тебя благословляю!) |