Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вылетает при завершении

16K
16 августа 2007 года
Rezus666
46 / / 15.08.2007
Прога выдаёт ошибку типа "access violation at ..." при завершении работы, onClose проходит спокойно, далее также спокойно Project1.cpp, вылетает при работе с Forms.hpp на строчке
"/* TCustomForm.Destroy */ inline __fastcall virtual ~TForm(void) { }"
оно мне не мешает, но в чём дело и как можно исправить мне интересно.
\\Зарание благодарен.\\
12K
16 августа 2007 года
__AleXX__
133 / / 02.04.2007
Мож. ты где-то удаляешь то, что не должен, то что билдер и сам за тебя почистит...
а вообще интересно было бы код посмотреть
16K
16 августа 2007 года
Rezus666
46 / / 15.08.2007
Да, вроде не чего не удаляю, сама прога ещё в стадии экспериментального зародыша (20 строк, от силы), а что косается кода, завтро(17.08.2007) посмотришь
\\спасибо что откликнулся\\
16K
17 августа 2007 года
Rezus666
46 / / 15.08.2007
Вот код:
Код:
//------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
AnsiString ZnachCell;
int KorRow, KorCol;
//------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject *Sender)
{
int i;
AnsiString NLF, DateNau;
DateNau = DateTimeToStr(Date());
for (i=1;i<13;i++)
{
NLF = IntToStr(i)+"2007.txt";
StringGrid1->Cols->LoadFromFile(NLF);
}
StringGrid1->Cols[0]->LoadFromFile("ColDDR.txt");
StringGrid1->ColWidths[0]=210;
for (i=1;i<15;i++)
StringGrid1->Cells[0]= i;
StringGrid1->Rows[5]->Text = "------------------------------------------";
for (i=0;i<15;i++)
StringGrid1->Cells[5] = "-----------------------------------------------";
}
//------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1SelectCell(TObject *Sender, int ACol,
      int ARow, bool &CanSelect)
{
ZnachCell = StringGrid1 ->Cells [ACol ][ARow ];
KorCol = ACol;
KorRow = ARow;
EditTextCell->Text = ZnachCell;
}
//------------------------------------------------------------------------
void __fastcall TForm1::BtnPrimClick(TObject *Sender)
{
StringGrid1 ->Cells [KorCol][KorRow] = EditTextCell->Text;
}
//------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
int i;
AnsiString NLF;
for (i=1;i<13;i++)
{
NLF = IntToStr(i)+"2007.txt";
StringGrid1->Cols->SaveToFile(NLF);
}
//------------------------------------------------------------------------

Больше не чего не изменялось и не добоалялось
12K
17 августа 2007 года
__AleXX__
133 / / 02.04.2007
Сложно сказать, что может быть не так.
Всё вроде бы чесно, кроме того,
что если ты не выбираешь в стринггриде поле, т.е. не вызывается функция StringGrid1SelectCell, а жмешь сразу кнопку Prim, а при этом в стринг гриде случаем не с 1 начинаются колонки (этот факт не помню).
Мож че-то и происходит.

Замечания:
1. переменные KorRow, KorCol все-таки я б инициализировал какими-то безобидными значениями.
2. в функции BtnPrimClick мож. быть вариант, когда ты пытаешься обратиться к полю StringGrid1 ->Cells [0][0],
а в функции FormClose, ты сохраняешь начиная с 1 ячейки. (мож так и надо по логике).
3. Кроме того проверь есть ли у тебя 12-я ячейка в стринг-гриде...

P.S. так сложно сказать, если хош. могу дома посмотреть весь проект, если ты его конечно выложишь :))
16K
17 августа 2007 года
Rezus666
46 / / 15.08.2007
Цитата: __AleXX__

Замечания:
1. переменные KorRow, KorCol все-таки я б инициализировал какими-то безобидными значениями.
2. в функции BtnPrimClick мож. быть вариант, когда ты пытаешься обратиться к полю StringGrid1 ->Cells [0][0],
а в функции FormClose, ты сохраняешь начиная с 1 ячейки. (мож так и надо по логике).
3. Кроме того проверь есть ли у тебя 12-я ячейка в стринг-гриде...

P.S. так сложно сказать, если хош. могу дома посмотреть весь проект, если ты его конечно выложишь :))


1.Попробую
2.не обращаюсь к StringGrid1 ->Cells [0][0], да и значения начинаются с 0 т.е. обращение к StringGrid1 ->Cells [0][0] не вызовит ошибки
3.имеются ячейки от [0][0] до [12][20]

16K
17 августа 2007 года
Rezus666
46 / / 15.08.2007
проект выложу, только там уже есть добавления, и ещё осталось запихать в архив весом не более позволеного;)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог