С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 20.03.2015
Сообщений: 9

EAccessViolation исключение

10.06.2016, 07:56. Показов 1720. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ситуация следующая. Имеется калькулятор, где кнопки /,x,+,-,= завязаны на один обработчик с помощью ActionList (Не надо говорить, что месье знает толк в извращениях - такое задание). При нажатии кнопки "=", Билдер предлагает мне пройти в сад. Остальные кнопки работают как задуманно. Код обработчика, место исключения и скрин прикладываю. Выручайте, мастера.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
void __fastcall TForm1::OperationsExecute(TObject *Sender)
{
        TComponent* VInm = dynamic_cast<TAction*>(Sender)->ActionComponent;
        int OpHook = VInm->Tag;
        //int OpHook = ((TComponent*)Sender) -> Tag;
        //long *s_var = new long;
        float s_var;
        float e_var;
        float a_var;
        AnsiString m_op = "/x+-";
        //char ed_str[200];
        //char *ed_str = Edit1->Text.WideChar;
        //strcpy(*ed_str, Edit1->Text.c_str());
        int l_ch = AnsiPos(Edit1->Text.AnsiLastChar(),m_op);
        if(l_ch != 0){
        //if(!(AnsiStrScan(*m_op,ed_str)))
                Edit1->Text = Edit1->Text.Delete(Edit1->Text.Length(),1);
                Edit1->Text = Edit1->Text + m_op[OpHook];
        }
        else{
                Edit1->Text = Edit1->Text + m_op[OpHook];
                Edit2->Text = StrToInt(Edit2->Text)+1;
        }
 
        if (StrToInt(Edit2->Text) > 1 || VInm->Tag == 61){
                Edit1->Text = Edit1->Text.Delete(Edit1->Text.Length(),1);
                s_var = StrToFloat(Edit1->Text.SubString(1,AnsiPos(m_op[OpHook],Edit1->Text)-1));
                e_var = StrToFloat(Edit1->Text.Delete(1,AnsiPos(m_op[OpHook],Edit1->Text)));
                ShowMessage(s_var);
        }
 
}
Миниатюры
EAccessViolation исключение   EAccessViolation исключение  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.06.2016, 07:56
Ответы с готовыми решениями:

Исключение EAccessViolation при закрытии приложения
При выходе из приложения возникает исключение: Я не знаю в какую сторону копать, чтобы понять почему оно возникает... ...

EAccessViolation в связи с Form2
Доброго времени суток, дорогие форумчане! Возникла у меня ошибка и не знаю, что мне с ней делать.. В проекте существует две формы:...

Не запускается программа, ошибка EAccessViolation
Добрый день! Код взят отсюда https://www.cyberforum.ru/cpp-builder/thread103448.html, собирался его переделать, но для начала запустить...

2
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
10.06.2016, 08:20
Цитата Сообщение от Girei Посмотреть сообщение
m_op = "/x+-"
А где в этой строчке знак '=' ? Естественно, l_ch ноль. А это значит else. А там m_op[index]..., index скорее всего обеспечивает вылет за границы массива.
Вот приблизительно так, мне думается.
0
0 / 0 / 0
Регистрация: 20.03.2015
Сообщений: 9
10.06.2016, 08:31  [ТС]
Так и есть. Кнопки отлавливал по полю Tag. У "=" с дуру выставил 7 и получил вылет за границы массива.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.06.2016, 08:31
Помогаю со студенческими работами здесь

EAccessViolation with message 'Access Violation'
Доброго времени суток. Имеется проект, одной из задач которого является поиск устройств в сети. Устройства находятся без проблем, но как...

Ошибка raised exception class EAccessViolation.......
Дорогой народ, может поможете решить проблему. Делаю я прогу на С++ архитект 2009, создал Форму1 , форму2, форму3 . Связал их, и с помощью...

raised exception class eaccessviolation with message.
текст самой проги//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #pragma hdrstop ...

EAccessViolation при попытке модифицировать переменную
При компиляции вылетает данная ошибка. Project Muz_sintezator.exe raised exception class EAccessViolation with message 'Access violation...

Ошибка EAccessViolation при доступе к элементам массива
Ошибка вылазит в двух местах (и там и там ругается на rtl60.bpl) void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru