Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/41: Рейтинг темы: голосов - 41, средняя оценка - 4.56
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3

Пропали подсказки кода по Ctrl+Space

29.10.2014, 13:13. Показов 8069. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, с недавнего времени,в одном из больших проектов пропали подсказки...как бы все галки выставлены.
Но добивает тот факт что в программе грубо говоря 10 тыщ строк...приблизительно до 8000 подсказки отбражаются,а дальше нет
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.10.2014, 13:13
Ответы с готовыми решениями:

Подсказки констант WinApi при Ctrl+Space
Здравствуйте, столкнулся с проблемой. Хочу я, например вывести MessageBox, пишу MessageBoxA(0,"123","123", MB_YESNO,...

Подсказки Билдера - отображение при нажатии Ctrl+Space
Можно ли сделать так, чтобы Builder подсказки выводил ТОЛЬКО по Ctrl+space? А то он тормозит когда их грузит, а грузит каждый раз когда я...

Быстрое написание кода на mac. (Контекстное меню ctrl+space в Windows)
Доброго времени суток. Столкнулся с такой проблемой после перехода на mac. Всегда когда писал код в любой IDE при нажатии ctrl+space...

17
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
29.10.2014, 15:10
Может кривонелецензионный билдер?
Хотя у меня такое же было с официальной экспресс вижуал студией.
Тут напрашивается самый бесполезный совет: вспоминайте какие действия со средой делали последними.
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33371 / 21497 / 8234
Регистрация: 22.10.2011
Сообщений: 36,893
Записей в блоге: 12
29.10.2014, 15:23
Самый бесполезный совет - это локализовать строку, после которой перестали показываться подсказки, и привести ее сюда. Чтобы можно было убедиться, что в маленьком проекте после подобной строки подсказки-таки отображаются.
1
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3
29.10.2014, 15:31  [ТС]
Нашел строку в которой теряется подсказка, то есть 2245 строка подсказка есть,а вот уже на 2246 нету,чудеса. =)
Миниатюры
Пропали подсказки кода по Ctrl+Space  
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3
30.10.2014, 00:06  [ТС]
Закомментирываю и все нормально

C
1
2
3
4
5
6
7
8
9
10
11
12
                if(GroupGrid->Cells[4][j]==GroupGrid->Cells[0][i])
                   {
 
                      im = new TMenuItem( mi);
                      im->Caption = GroupGrid->Cells[2][j];
                      im->ImageIndex=StrToInt(GroupGrid->Cells[3][j]);
 
                      im->OnClick=TitleSelect;
                      mi->Add(im);
                      im->SelectIndex= StrToInt(GroupGrid->Cells[0][j]);
 
                   }
Добавлено через 7 часов 24 минуты
В замешательстве....дело не в коде....какую функцию в это место не ставлю, перестает работать подсказка.
И Именно в одном месте прекращает существование. Может быть стоит где сто искать в h. файле?

Да и такой вопрос (это уже просто не знаю куда копать)...Очередность объявления функций в файле h. должна соответствовать очередности функций в ccp ?
0
Модератор
 Аватар для D1973
9910 / 6447 / 2455
Регистрация: 21.01.2014
Сообщений: 27,364
Записей в блоге: 3
30.10.2014, 05:28
Цитата Сообщение от Dinkin Посмотреть сообщение
Очередность объявления функций в файле h. должна соответствовать очередности функций в ccp ?
Нет.
1
 Аватар для Lelik-pahan
1703 / 899 / 207
Регистрация: 25.11.2009
Сообщений: 1,848
30.10.2014, 09:40
Если речь о 6-м билдере, то лечится снятием двух галочек в списке показываемых "ворнингов". Сейчас не помню, каких именно, попробую найти. Можешь и сам погуглить в этом направлении.

Добавлено через 8 минут
Вот, нашёл
C++ Builder 6 - не работает Code Completion в конце больших модулей
1
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3
30.10.2014, 10:30  [ТС]
Цитата Сообщение от Lelik-pahan Посмотреть сообщение
Если речь о 6-м билдере, то лечится снятием двух галочек в списке показываемых "ворнингов"
К сожалению речь о Rad Studio XE3
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
01.11.2014, 12:34
Может, все-таки разбить код на несколько файлов, а не мучаться с такой портянкой? Десять килострок на один логический юнит - явно многовато...
1
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3
01.11.2014, 13:09  [ТС]
Цитата Сообщение от BRcr Посмотреть сообщение
Может, все-таки разбить код на несколько файлов,
Ни разу не разбивал, но как я понимаю что это просто процедура запихивания функций по .h, верно?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33371 / 21497 / 8234
Регистрация: 22.10.2011
Сообщений: 36,893
Записей в блоге: 12
01.11.2014, 13:13
Нет, не по h-файлам, а по cpp-файлам (каждый из которых компилируется отдельно). Это разные вещи...
1
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3
01.11.2014, 14:10  [ТС]
Цитата Сообщение от UI Посмотреть сообщение
по cpp-файлам (каждый из которых компилируется отдельно).
Понимаю что это основы ,каждый должен уметь, но не разу не сталкивался....можно в вкратце описать алгоритм "вынимания" функции из кода,запихивания в отдельный сcp и далее его подключение?

Добавлено через 34 секунды
Да и такой вопрос, есть ли в этом какие то минусы?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33371 / 21497 / 8234
Регистрация: 22.10.2011
Сообщений: 36,893
Записей в блоге: 12
01.11.2014, 14:27
Для начала надо вынести все действия из функций-обработчиков событий интерфейса (то самое отделение логики от интерфейса, о котором я уже устал говорить, но никто не слушает, проще всего не задумываясь наштамповать весь код в обработчиках, да и все. А потом, если понадобится для второго компонента сделать то же самое - то Copy/Paste рулит). Скажем, если у тебя в обработчике нажатия на кнопку надо было нарисовать квадрат на форме, и ты делал это так:
C++
1
2
3
4
5
6
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    int cx = this->Width / 2, cy = this->Height / 2;
    int a = 50;
    this->Canvas->Rectangle(cx - a, cy - a, cx + a, cy + a);
}
, то вынеси рисование в отдельную функцию:
C++
1
2
3
4
5
6
7
8
9
void _fastcall DrawSquare(TCanvas *canvas, int cx, int cy, int a)
{
    canvas->Rectangle(cx - a, cy - a, cx + a, cy + a);
}
 
void __fastcall TForm1::Button14Click(TObject *Sender)
{
    DrawSquare(this->Canvas, this->Width / 2, this->Height / 2, 50);
}
, и ты уже можешь DrawSquare реализовать в другом cpp-файле, безо всяких проблем. Ну, то есть, вместо постоянного использования реальных имен компонентов используй формальные параметры, в которые уже при вызове будешь подставлять нужные компоненты фактическими параметрами... Тогда "разнос" по нескольким файлам пройдет безболезненно...
Цитата Сообщение от Dinkin Посмотреть сообщение
Да и такой вопрос, есть ли в этом какие то минусы?
Есть, это занимает время. Если ты сразу писал "все в одном", то чтобы это "все в одном" разбросать на несколько файлов - тебе придется потратить определенное количество времени. Но потом ты поймешь, в чем преимущества. Начиная с того, что время компиляции проекта значительно уменьшится (ибо перекомпилироваться будет не всё, а только те файлы, которые изменились), и заканчивая тем, что просто удобнее такой проект, где функции грамотно разбиты по файлам, сопровождать...

Просто вынос методов/функций в h-файлы этого преимущества тебе не даст, перекомпилироваться все равно будет один большой cpp (в который вставлены маленькие h-файлы) полностью.
1
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3
01.11.2014, 15:00  [ТС]
Да,всегда подобно выношу в отдельные функции, но вопрос а как вывести в отдельный ccp именно, и далее его подключить...вот на Вашем примере (про рисование квадрата) как вывести функцию рисования в отдельный файл ?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33371 / 21497 / 8234
Регистрация: 22.10.2011
Сообщений: 36,893
Записей в блоге: 12
01.11.2014, 15:37
Лучший ответ Сообщение было отмечено Dinkin как решение

Решение

Вот просто так вынести: File->New->Unit (C++ Builder), и в
Unit2.h
C++
1
2
3
4
5
6
7
8
#ifndef Unit2H
#define Unit2H
 
#include <Vcl.Graphics.hpp>
 
void __fastcall DrawSquare(TCanvas *, int, int, int);
 
#endif
Unit2.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
//---------------------------------------------------------------------------
 
#pragma hdrstop
 
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
 
void __fastcall DrawSquare(TCanvas *canvas, int cx, int cy, int a)
{
    canvas->Rectangle(cx - a, cy - a, cx + a, cy + a);
}
, и там, где надо вызвать:
C++
1
2
3
4
5
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include "Unit2.h" // <---
. Всё, дальше - проблема Билдера это все собрать.

Или, если у тебя есть отдельно CPP-файл, который ты хочешь добавить в проект - то Project -> Add to Project, или щелчок правой кнопкой мыши на названии exe-файла в Project Manager-е:
Миниатюры
Пропали подсказки кода по Ctrl+Space  
1
74 / 54 / 17
Регистрация: 10.07.2014
Сообщений: 329
03.11.2014, 11:20
Цитата Сообщение от UI Посмотреть сообщение
void __fastcall DrawSquare(TCanvas *, int, int, int);
Еще небольшое такое уточнение... Если писать так, то IDE хуже подсказывать будет.
А если в хедере оставить имена со смыслом, тогда и по подсказке IDE легче будет ориентироваться
C++
1
void __fastcall DrawSquare(TCanvas *canvas, int cx, int cy, int size);
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33371 / 21497 / 8234
Регистрация: 22.10.2011
Сообщений: 36,893
Записей в блоге: 12
03.11.2014, 11:44
Цитата Сообщение от krv Посмотреть сообщение
А если в хедере оставить имена со смыслом, тогда и по подсказке IDE легче будет ориентироваться
Чем, интересно? Плевать Билдер хотел на имена параметров, он их все одно пропускает. В Дельфи можно использовать XMLDoc, и показывать подсказки вот в таком виде:



А вот Билдер, как всегда, этого делать не умеет... Исключительно через костыль...
0
74 / 54 / 17
Регистрация: 10.07.2014
Сообщений: 329
03.11.2014, 12:08
Да, ошибся...
Мне казалось что для всех функций он показывает в подсказке по Ctrl+Space имена параметров, а для самописных это не так, даже если они - эти имена - в хедере есть.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.11.2014, 12:08
Помогаю со студенческими работами здесь

При нажатии на Ctrl+Space показывать форму
Здравствуйте. У меня на форме есть Cheack, который при установке Form1.Cheack.Checked=True делает Form1.Hide. Мне нужно чтобы при...

При нажатии на ctrl+space закрывается форма
Здравствуйте. Допустим, есть форма. Мне нужно, чтобы при нажатии на пробел и контрл (вместе) закрывалась форма. Как можно реализовать?

Resharper. При нажатии ctrl shift space, не появляется автодополнение
Ребята помогите плз при нажатии ctrl shift space,не появляется автодополнение! может в настройках включить нужно?

Rider. Пропали подсказки IntelliSence
Куда-то пропали подсказки...Ни по точке , ни по нажатию клавиши подсказки не появляются.Как включить? Добавлено через 10 часов 59...

Восстановить удаленные файлы (пропали файлы после нажатия Ctrl +Z)
Народ, срочно нужна ваша помощь. Кратко, вчера с флеш-адаптера скопировал себе видео-материал с мероприятия. Сегодня каким-то путем нажал...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Первый деплой
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