Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 594

Не работают методы в BCB6

02.10.2013, 10:44. Показов 1455. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
- Здравствуйте все Форумчане! Вот фрагмент кода:
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
// .........
void __fastcall  TTmr::ImageMouseDown(TObject*  Sender,
  TMouseButton  Button, TShiftState  Shift, int  X, int  Y)
{
  // óêàçàòåëü íà Çâåíî âûáðàííîãî "Èíòåðâàëà Òàéìåðà".
  sel_int_link = NULL;  //(link<TInt*>*)
 
  //==========================================================================
  // если - "Режим Работы с Интервалом" ...
  if ( Add_Mode_Key == false )
  {
    // *** Режим Работы с Интервалом. ***
    // если в данном Таймере - Интервалов НЕТ (и Списка пока НЕТ) ...
    if ( Ints_List == NULL )
    {
      // не делать ничего.
      return;
    }
    // если в данном Таймере - Интервалы ЕСТЬ (и Список уже ЕСТЬ) ...
    else
    {
      // .....
      Select_Int( X );  //(const int)
      // .....
      Treet_Int();
    }
  }
 
  // .........
- Это обработчик щелчка мышью по Имеджу.
- Имедж создается в этом-же классе TTmr - динамически.
- Методы Select_Int(...) и Treet_Int() так-же объявляются и определяются в этом-же классе TTmr.
- Все нормально компилится, собирается, запускается в работу. Но, как знают все пользующие
BCB6, при запуске в работу в самой левой колонке листинга кода напротив выполняемых операторов
и методов средой всегда ставится "бубочка" - маленькая синяя точка. Только на эту точку можно
поставить "Точку Останова" отладчика. Так вот напротив метода Select_Int(...) такая "точечка"
НЕ ПОЯВЛЯЕТСЯ ВООБЩЕ. И при работе программы этот метод - ПРОСТО ПРОПУСКАЕТСЯ!
- Проверил кажется все, что связано с обработчиком - ImageMouseDown(...), методами -
Select_Int(...) и Treet_Int(). Ситуация сохраняется ...
- Пользователи BCB6 и подобных старых версий, может у кого возникали подобные "финты"?
Может Вы выработали какие приемы, как с этим бороться или хотя-бы как-то ухватить такую
ситуацию "за хвост" ...? Хотя-бы узнать, откуда это лезет ...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.10.2013, 10:44
Ответы с готовыми решениями:

sin и BCB6
Всем привет, решил побаловаться в С++, написать программу чтоби считала синус и косинус void __fastcall TForm1::Button1Click(TObject...

Переход BCB6 -> XE4
Здравствуйте! Подскажите, плиз, перетащил свой старый проект из Builder 6 в Rad Builder XE4. ilink32 выкинул кучу ошибок в входных...

Не устанавливается EhLib 3.6 на BCB6
Добрый день, возникла проблема с установкой EhLib 3.6 на BCB6. Скачал отсюда http://www.ehlib.com/RUS/registration.htm архив EhLib 3.6,...

10
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
02.10.2013, 12:10
Цитата Сообщение от Staut Посмотреть сообщение
Так вот напротив метода Select_Int(...) такая "точечка" НЕ ПОЯВЛЯЕТСЯ ВООБЩЕ.
Гадать не будем, но наверное у тебя всегда Ints_List == NULL или Add_Mode_Key == true. Вот оно и не заходит туда.
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
02.10.2013, 12:23
Поставь брекпоинт на строчку выше, если этой строчки нет, то напиши пустую (int t=0 ) и поставь на нее. Отладь по шагам и посмотри заходит в эти методы программа или нет.
1
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 594
02.10.2013, 13:06  [ТС]
- _Dimon_, gumi250 все честно, значения ключей такие, что программа заведомо попадает в
ветвь кода else (в строке 21). Весь "прикол" в том, что в этой ветви else 1-й оператор (метод Select_Int(...))
СТАНОВИТСЯ НЕРАБОЧИМ. На нем нет "бубочки", на нем нельзя поставить точку останова, он не
выполняется!
- Попробовал перед ним поставить, как советовал gumi250, пустой оператор:
C++
1
2
3
  int  t = 0;
  Select_Int(...);
  Treet_Int();
, так теперь на методах Select_Int(...) и Treet_Int() - "бубочки" есть и они выполняются, а на первом операторе
int t = 0; "бубочки" нет и точку останова поставить нельзя, и не выполняется!
- Приложение теперь вроде заработало, но чинить программы с помощью пустых операторов, согласитесь,
негоже.
- Т.е. первый оператор в блоке else почему-то НЕРАБОЧИЙ. Интересный эффект, не знаю как за него
и браться!
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
03.10.2013, 02:34
может глупый совет, но попробуй сделать Clear и скомпилировать наново. мало ли че ...
1
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 594
03.10.2013, 10:01  [ТС]
- Спасибо, _Dimon_, за совет. Вы видимо имеете в виду полную перекомпиляцию проекта (Project
=> Build Project1)? Я уже делал это не раз. Иногда это действительно помогает, только не в таких случаях.
Я уже уверен, что ошибка или "неточность", не знаю как там она называется, лежит где-то далеко!
- Вся эта ситуация возникла после того, как я решил немного переделать вполне нормальный и надежно
работающий проект. Мне не понравилось, что один из классов проекта (TTmr) очень сильно разросся. Он
занимает один модуль и аж семь его расширений! Хотел выделить часть этого класса в другой класс. Ну и
видно что-то наворочал. У меня уже когда-то было раза два совершенно такое-же. Тоже просто переставала
работать часть кода со всеми вытекающими из этого последствиями (это хорошо заметно по все тем-же
"бубочкам" во время пуска проекта). И тогда мне, не помню, по моему приходилось перебирать весь проект
заново.
- Я вышел на форум имея слабую надежду, что коллективный разум может быть уже выработал какие-то
приемы борьбы с такими "мутными" ситуациями. Может есть какие-либо методы отладки, позволяющие выйти
на причину таких "странных явлений". Народу ведь работающего в Бильдерах много. Может кто и нащупал какой
"приемчик".
- Ну а если нет, то прийдется вернуться к старому варианту кода и делать все медленнее, по-складам!
Еще раз спасибо _Dimon_ за участие!
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
03.10.2013, 11:39
Вообщемто если брекпоинт не ставится там где должен и выполнение ф-ций зависит от наличия пустого оператора впереди, то скорее всего это проблема не вашего кода, а среды, т.е. билдера. Тут совет один попробовать на другой машине. И если получится, то нужно переставлять среду.
1
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 594
03.10.2013, 14:00  [ТС]
- Спасибо gumi250, я действительно бьюсь с этой ошибкой на работе и совсем забыл, что
можно попробовать и дома... Если и дома будет то же самое, то это скорее всего даже не ошибка,
а какая-то "неточность в объявлении классов", которая не ловится компилятором (ведь ни ошибок,
ни, даже, предостережений - НЕТ). Даже интересно попробовать...
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33374 / 21499 / 8235
Регистрация: 22.10.2011
Сообщений: 36,894
Записей в блоге: 11
03.10.2013, 14:07
Начать проверку можно с отключения оптимизатора кода, и полной пересборки проекта. Этот оптимизатор такие глюки добавляет в программу иногда...
1
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 594
03.10.2013, 16:23  [ТС]
- UI, под оптимизатором Вы имеете в виду: Project => Options... => Compiler => Code optimisation =>
у меня выбрано (None) - т.е. никакой оптимизации; А Project => Options... => Pascal => Code generation =>
Optimization => у меня нет галочки (оптимизация не выбрана). Что касается перебрать проект заново, то
видимо прийдется ... Попробую ...
0
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 594
07.10.2013, 11:11  [ТС]
- Пробовал мое приложение дома - все то-же. Не хочется больше терять на него время. Хорошо,
что у меня сохранился исходный код (до переделок). Сделал все заново! Разделил мой класс TTmr на
две части в "безопасном", так-сказать, режиме. Все по слогам, не спеша ... Все прекрасно разделилось
и работает! Жаль, что опять, как и в прежние разы, о которых я уже говорил раньше, так и не понял, -
почему возникают такие "финты". Видимо действительно какие-то неточности в объявлении классов,
которые не ловятся компилятором.
- Спасибо Всем за участие в теме!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.10.2013, 11:11
Помогаю со студенческими работами здесь

Компонент для BCB6
Доброго времени дня! Посоветуйте компонент, который представляет собой обычную кнопку-выключатель, с возможностью менять цвет при...

Индикатор загруженности процессора (BCB6)
Всем привет, есть аналог диспетчера задач, но на нём нету данного индикатора, который присутствует в стандартном диспетчере. Каким образом...

Перенос проекта из BCB6 в ХЕ2
Уважаемые! Имеется проблема в компиляции проекта из BCB6 на стадии линковки в ХЕ2: Error: Unresolved external 'FT_Write' referenced...

BCB6, ADO, MySQL
Здравствуйте! Такая ситуация: BCB6, ADO, MySQL Имеются 2 базы данных с аналогичной структурой (Те ж таблици, в том же количестве,...

Нужен совет! MySQL + BCB6
Входная инфа: есть бд(MySQL) с некоторыми таблицами, я делаю выборку с бд в приложение(BCB6), отображаю результат в BDGrig. Задача...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru