Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с вызовом форм в Borland, Проблема с эксепшном в файле vcl60.bpl 
:(
    Опции темы
SydeX
Дата 9.1.2005, 02:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 3.11.2004
Где: Таллинн, Эстония

Репутация: нет
Всего: нет



Платформа: x86 / MS Windows 2000 SP4
Платформа2: x86 / MS Windows 98SE

Borland C++ Builder 6.0 Enterprise Trial (на крякнутом те же грабли)

Вот беда - есть у нас две формы Form1 и Form2 когда загружается форма1 она проверяет целостность своих конфигов - если конфиги оказываются битыми - она модально вызывает Форм2 в котором будет сообщение об ошибке.
И вот беда - прописываю алгоритм по нужному евенту в Форм1 - то есть при загрузке - ну код примерно такой -

---- FORM1.cpp ----

#include <stdio.h>
#include <stdlib.h>
#include <form1.h>
#include <form2.h>


if(validate_cfg(cfg_path)<0) {
Form2->ShowModal();
If(Form2->Critical == 1) exit(0);
}

Что в Форм2.спп не важно - пробовал даже если он вообще пустой - то есть с пустыми функциями - грабли всё равно появляются.
Компилится и собирается всё хорошо и красиво - но как только запускаешь - если в Винде - то кидает просто EAccessException такой любимый красный значок под ним окей и рядом эта надпись - а если в борланде - то пишет длинные адреса памяти - пишет что нарушение прав доступа по такому то адресу в vcl60.bpl (точно не помню кажется такое название библиотеки) - и как ни странно - кажет что ошибка вот в этой строке главном файле проекта:
Application->CreateForm(__classid(TForm2), &Form2);
Ну я думаю объяснять не надо что этот файл генерит сам борланд.
Если убрать из исходника строчку вызова формы - то есть:
Form2->ShowModal();
Всё летает без проблем.
Если скажем процедуру вызова формы запихать в __fastcall функцию - и привязать сиё дело с вызовом формы к какому нить евенту - скажем к клику по меню - то тоже красиво вызывает - а вот если просто по человечески вызывать форму - кидает ексепшн.

Никак не могу понять - проблема в кривизне моих рук или в Борланде.
Народ может у кого есть какие идеи ?
PM MAIL WWW ICQ   Вверх
_hunter
Дата 9.1.2005, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



проблема -- в руках smile

если форма на протяжении всего времени не нужна -- зачем ее создавать автоматом?
Application->CreateForm(__classid(TForm2), &Form2);
из файла проекта -- удали.
добавь к первой форме заголовок второй
и перед показом создай ее.
все должно работать


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
SydeX
Дата 10.1.2005, 01:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 3.11.2004
Где: Таллинн, Эстония

Репутация: нет
Всего: нет



Cпасибо, млин я как то даже не подумал. Спасибо большое - действительно помогло. Млин кривизна моих рук меня порой самого поражает smile smile
PM MAIL WWW ICQ   Вверх
Hroft
Дата 27.1.2005, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 20.10.2003
Где: Москва

Репутация: 1
Всего: 3



Project-Options-Forms посмотри еще, там Form2 в Available можно переместить, то же самое, но как-то естественнее.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0460 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.