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

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

02.10.2013, 10:44. Показов 1483. Ответов 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
Сообщений: 596
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
Сообщений: 596
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
Сообщений: 596
03.10.2013, 14:00  [ТС]
- Спасибо gumi250, я действительно бьюсь с этой ошибкой на работе и совсем забыл, что
можно попробовать и дома... Если и дома будет то же самое, то это скорее всего даже не ошибка,
а какая-то "неточность в объявлении классов", которая не ловится компилятором (ведь ни ошибок,
ни, даже, предостережений - НЕТ). Даже интересно попробовать...
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33411 / 21521 / 8236
Регистрация: 22.10.2011
Сообщений: 36,922
Записей в блоге: 12
03.10.2013, 14:07
Начать проверку можно с отключения оптимизатора кода, и полной пересборки проекта. Этот оптимизатор такие глюки добавляет в программу иногда...
1
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 596
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
Сообщений: 596
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
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru