Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
1
RAD 2009-XE2

Не стандартное поведение стандартного компонента (Ошибка: A class named already exists)

09.04.2019, 15:08. Показов 1847. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток! Понадобилось мне немного расширить возможности у RadioButton, а именно запретить обработку OnClick. В прошлом уже делал подобную задачу, решалось все таким образом:

Delphi
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
33
34
type
TRadioButton = class(StdCtrls.TRadioButton)
protected
  ReadOnly: Boolean;
  procedure SetChecked(Value: Boolean); override;
end;
 
//---------------------
 
procedure TRadioButton.SetChecked(Value: Boolean);
begin
if not ReadOnly then
    inherited;
end;
 
//-----------
 
//использование 
procedure TForm1.FormShow(Sender: TObject);
var
  rb: TRadioButton;
begin
   rb := TRadioButton.Create(Self);
   with rb do
   begin
    Parent := Form1;
    top := 10;
    left := 10;
    ReadOnly := true;
   end;
end;
 
initialization
RegisterClasses([TRadioButton]); // обязательно
Все работало, проект компилировался, ошибок не возникало. Но понадобилось переехать на новый комп, и при компиляции старых проектов возникла проблема. Точнее компиляция проходит успешно, но при попытке запустить приложение, возникает ошибка:

A class named TRadioButton already exists
В чем может быть проблема ? Почему раньше не было проблем ? Работаю в Rad studio 2010. Возможно раньше была сборка другая.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2019, 15:08
Ответы с готовыми решениями:

Widgets, ошибка: 'class Ui::MainWindow' has no member named <...>
Добрый день! Пишу приложение QtWidgets и столкнулся со следующей проблемой: ...

A component named already exists
Здравствуйте! Такая проблема. Я создал метод, который динамически создает много картинок. И вот...

Ошибка: class Main is public, should be declared in a named Main.java
Выдает ошибку- class Main is public, should be declared in a file named Main.java - к коду: //...

Сообщение "A component named *** already exists"
Моя программа работает с &quot;железом&quot;, она управляет специальной измерительной системой, которая...

5
884 / 404 / 174
Регистрация: 20.10.2016
Сообщений: 1,828
09.04.2019, 15:28 2
Цитата Сообщение от DenProx Посмотреть сообщение
В чем может быть проблема ?
В том, что класс TRadioButton уже существует. Назовите ваш класс TMyRadioButton и все станет хорошо.
0
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
09.04.2019, 15:34  [ТС] 3
Nanotentacle, Да, это понятно, но больше интересует почему раньше работало. Сейчас изменение имени класса может повлечь за собой вереницу проблем. Проект большой достаточно.
0
884 / 404 / 174
Регистрация: 20.10.2016
Сообщений: 1,828
09.04.2019, 15:40 4
Цитата Сообщение от DenProx Посмотреть сообщение
Nanotentacle, Да, это понятно, но больше интересует почему раньше работало. Сейчас изменение имени класса может повлечь за собой вереницу проблем. Проект большой достаточно.
Может быть в uses не было модуля StdCtrls. Трудно предположить. В любом случае такое именование своих классов некорректно.
0
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
09.04.2019, 15:42  [ТС] 5
Nanotentacle, согласен. Придется костыль делать, для подмены TRadioButton на новый во время загрузки.
0
5858 / 4587 / 1447
Регистрация: 14.04.2014
Сообщений: 20,340
Записей в блоге: 20
10.04.2019, 05:51 6
этот костыль как раз должен работать БЕЗ registerClasses
0
10.04.2019, 05:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.04.2019, 05:51
Помогаю со студенческими работами здесь

Смоделировать стандартное (общеизвестное) поведение банкомата
Смоделировать стандартное (общеизвестное) поведение банкомата, выдающего, но не принимающего...

Проблема автодобавление строки (стандартное поведение TextBox на DataGrid)
Добрый вечер! Возьмём DataGrid. Про его поведение известно, что если в текстовой ячейки...

Управлять цветом заливки у стандартного компонента
Доброго времени суток! Подскажите, как проще всего &quot;научить&quot; CheckBox изменять цвет заливки ? ...

Наследование стиля от стандартного компонента wpf, к созданому мной
Добрый вечер! Я создал два компанента: public class MyNode : TreeViewItem { //... } ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru