Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
160 / 159 / 13
Регистрация: 14.01.2010
Сообщений: 1,497

Предок класса

09.10.2010, 18:02. Показов 3221. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Есть необходимость узнать есть ли у класса предок tcontrol.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.10.2010, 18:02
Ответы с готовыми решениями:

Для чего ещё может быть нужен конструктор класса кроме присвоения полям класса начальных значений?
Для чего ещё может быть нужен конструктор класса кроме присвоения полям класса начальных значений?

Базовый класс - предок
Создать базовый класс - Предок, у которого есть имя. Определить виртуальную функцию печати. Создать производный класс Ребенок, у которого...

Возможно ли создать объект своего класса, который состоит из объектов другого класса?
Возможно ли создать объект своего класса, который состоит из объектов другого класса, например: TShip = class (TStaticObj) ...

5
КотЪ
 Аватар для Zabiyak
219 / 219 / 60
Регистрация: 26.05.2009
Сообщений: 688
09.10.2010, 19:39
Delphi
1
if TButton.ClassParent = TControl then showmessage('yehyehyeh!');
Вместо TButton пишите класс, предка которого нужно проверить.
0
160 / 159 / 13
Регистрация: 14.01.2010
Сообщений: 1,497
09.10.2010, 20:55  [ТС]
Я имею ввиду не родителя а дальнего предка (tcontrol). Ясное дело для всех контролов он предок, а если попадется др класс без него. Как узнать?
0
 Аватар для Mawrat
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
09.10.2010, 22:29
Проверка для экземпляра класса:
Delphi
1
  if MyObj is TControl then
0
160 / 159 / 13
Регистрация: 14.01.2010
Сообщений: 1,497
10.10.2010, 09:51  [ТС]
Хотелось бы полностью рабочий пример
Delphi
1
2
3
4
var
sl:tstringlist;
begin
  if sl is TControl then ShowMessage('q');
Не запускается.
0
 Аватар для Mawrat
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
10.10.2010, 13:22
Если проверяемый экземпляр не создан - его надо создать через его конструктор. И поверять надо опосредовано. Т. к. на этапе разработки компилятор видит иерархию и выдаст ошибку, если класс экземпляра не содержит TControl в иерархии предков.
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
procedure TForm1.Button1Click(Sender: TObject);
var
  Sl : TStringList;
  Obj : TObject;
begin
  Sl := TStringList.Create;
  
  Obj := Sl;
  if Obj is TControl then
    ShowMessage(Obj.ClassName + ' - да')
  else
    ShowMessage(Obj.ClassName + ' - нет')
  ;
  
  //Уничтожаем экземпляр, если он не нужен.
  Sl.Free;
 
  Obj := Self;
  if Obj is TControl then
    ShowMessage(Obj.ClassName + ' - да')
  else
    ShowMessage(Obj.ClassName + ' - нет')
  ;
end;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.10.2010, 13:22
Помогаю со студенческими работами здесь

Как обратиться к свойству класса из метода этого же класса
Добрый день! function Tta_component.check: boolean; //âåðíåò true åñëè ïðè èíèöèàëèçàöèè áûëà äîïóùåíà îøèáêà var temp_result:...

Определение типа класса по объявлению переменной данного класса
Можно ли по объявлению переменной некоторого класса определить тип этого класса? Реализация данной задачи необходима с целью...

Объявление класса, создание экземпляров класса. Наследование классов
Вообщем начал делать программу:"Создать класс Матрицы, обеспечивающего размещение матрицы произвольного размера с возможность изменения...

Создать класс обыкновенная дробь, поля класса – числитель и знаменатель. Методы класса: вывод дроби. В классе
Создать класс обыкновенная дробь, поля класса – числитель и знаменатель. Методы класса: вывод дроби. В классе предусмотреть методы...

Вызов метода класса методом другого класса
Есть 2 класса: UControl с классом TControl и UEditor с классом TEditor. Метод класса TControl должен вызвать метод класса TEditor. ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru