| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Class Completion |
| Автор: <Spawn> 6.9.2003, 20:56 | ||
Как его заставить работать? В книге написано, что достаточно, например, обьявить свойство:
и нажать Ctrl+Shift+C для автоматического создания методов. Но сколько не пытался ни чего не выходит(Использую Д7). Может это где то настраивается? |
| Автор: Vex 6.9.2003, 21:02 |
| Сорри за оффтоп, но что такое Class Completion и с чем его едят? (в двух словах) |
| Автор: <Spawn> 6.9.2003, 21:13 | ||
Это механизм Дельфи, позволяющий избавиться от нудного набирания обьявлений класса. К примеру(так описано в книге), при введении полностью завершенного определения класса нужно разместить курсор внутри этого определения и нажать Ctrl+Shift+C, полсе чего Дельфи автоматически сформирует шаблоны определения методов класса, включая ключевые слова begin и end. Или еще пример - тот, который я привел в начале. То есть если есть свойство
то после нажатия Ctrl+Shift+C должно добавиться поле FX и метод SetX. |
| Автор: dm9 6.9.2003, 21:18 |
| У меня работает - всё, вроде, по умолчанию. Посмотри в контекстном меню: там должен быть пункт "Complete class at cursor - Shift+Ctrl+C". Вроде, горячие клавиши в IDE не настраиваются. И ещё: переключись на English - раскладку |
| Автор: <Spawn> 6.9.2003, 21:23 |
| Хм. Странно как то. Горячие клавиши не работают(и при русской и при английской раскладке), а из меню все нормально срабатывает. |
| Автор: dm9 6.9.2003, 21:25 |
| А, ещё. У меня сначала не сработало: была запущена аська и там по умолчанию стоит улавливание этого сочетания клавиш и открывается какое-то окно настроек. Вырубил аську - всё заработало. Может, у тебя тоже кто-то ловит клавиши раньше Delphi? |
| Автор: Vit 7.9.2003, 15:38 |
| А ты правильно свойство опиши, тогда и будет работать: property x:integer read fx write Sets; |
| Автор: stab 7.9.2003, 16:10 | ||
не, Vit оно и так должно работать. |
| Автор: Vit 7.9.2003, 16:53 |
| Не должно оно так работать, иначе как компиллятор узнает как ты собираешься определять свойство, как минимум компиллятор должен знать: 1) определяешь ли read или write или обоих 2) используешь методы для read и write или простым назначением поля. Если свойство определено как property X:integer; То во-первых это неправильное определение свойства, так как не определено как его ни читать ни писать, а в связи с этим class completition работать не будет - он работает только на правильно задекларированных конструкциях. Собственно class completition НЕ ДОСТРАИВАЕТ И НЕ ИСПРАВЛЯЕТ конструкции, он предназначен только для одного - для задекларированной конструкции создать скелет реализации, а если создана реализация то создать соответствующую декларацию. Здесь же конструкция неправильная, поэтому class completition не будет делать реализацию неправильной конструкции, а исправлять ошибочные построения - это вообще вне сферы действия этого эксперта |
| Автор: stab 7.9.2003, 17:38 | ||
© Delphi Help |