C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Key
dog
Отправлено: 14.12.2006, 10:52


Ученик-кочегар

Группа: Участник
Сообщений: 5



На форме есть button если нажимать на него мышкой процедура выполняется правильно, но если передать этой кнопке фокус и нажать enter то выдается сообщение
Project test.exe raised exception class EAccessViolation with message 'Access violation at address 400CC0C3 in module 'vcl60.bpl''.
Write of address 0000000D. Process stopped. Use Step or Run to continue. и выполнение прекращается, с чем это связанно?
Romikgy
Отправлено: 14.12.2006, 11:14


Дежурный стрелочник

Группа: Участник
Сообщений: 72



имхо , здесь телепатов не встречал sad.gif
Код показывай!
dog
Отправлено: 14.12.2006, 11:21


Ученик-кочегар

Группа: Участник
Сообщений: 5



для button
void __fastcall TForm1::btnSaleClick(TObject *Sender)
{
PropertySet password("Password");
PropertySet price("Price");
PropertySet quantity("Quantity");
PropertySet store("Department");
PropertySet tax1("Tax1");
PropertySet tax2("Tax2");
PropertySet tax3("Tax3");
PropertySet tax4("Tax4");
PropertySet string("StringForPrinting");

password << edPassword->Text;
price << edPrice->Text;
quantity << edQuantity->Text;
store << edStore->Text;
tax1 << cbTax1->ItemIndex;
tax2 << cbTax2->ItemIndex;
tax3 << cbTax3->ItemIndex;

string << edString->Text;

ECR.Exec(password);
ECR.Exec(price);
ECR.Exec(quantity);
ECR.Exec(store);
ECR.Exec(tax1);
ECR.Exec(tax2);
ECR.Exec(tax3);

ECR.Exec(string);

ECR.Exec(sale);

Variant res = ECR.Exec(error);
Variant resDesc = ECR.Exec(errorDesc);
edError->Text = IntToStr(int(res)) + ": " + resDesc;
edOperatorNumber->Text = ECR.Exec(operatornum);
}
olegenty
Отправлено: 14.12.2006, 13:36


Ветеран

Группа: Модератор
Сообщений: 2412



на какой строке при отладке возникает ошибка?
Romikgy
Отправлено: 14.12.2006, 14:46


Дежурный стрелочник

Группа: Участник
Сообщений: 72



Что есть
PropertySet
ECR
?

и страное преобразование
edError->Text = IntToStr(int(res)) + ": " + resDesc;
вариант в строку без конвертирование?
dog
Отправлено: 14.12.2006, 15:08


Ученик-кочегар

Группа: Участник
Сообщений: 5



если выполнять каждую строку пошагово то по завершению процедуры в случае когда кнопка нажата кликом мышки все нормально, а в случая когда на кнопке фокус и нажат enter процедура выполняется до последней } и выдает ошибку.
Причем во время выполнения программы в компиляторе появляется сообщение
[C++ Предупреждение] main.cpp(4): W8058 Cannot create pre-compiled header: write failed
dog
Отправлено: 14.12.2006, 15:35


Ученик-кочегар

Группа: Участник
Сообщений: 5



Я использую драйвер принтера перем. ECR экспорт-глобальная переменная для работы с драйвером т.е.
ECR.Exec(password); вызов метода драйвера
Romikgy
Отправлено: 14.12.2006, 16:25


Дежурный стрелочник

Группа: Участник
Сообщений: 72



такое ощущение что у тя что то лежит в обработчике кнопок клавиатуры, и там есть глюка в коде!
(имхо что то с указателем)
olegenty
Отправлено: 14.12.2006, 16:39


Ветеран

Группа: Модератор
Сообщений: 2412



call stack?

Вернуться в Вопросы программирования в C++Builder