Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Определить тип объекта в С++ builder 2007  (Прочитано 10150 раз)
0 Пользователей и 1 Гость смотрят эту тему.
desolator
Гость
« : 02-01-2010 16:11 » 

Здравствуйте, собственно сабж.
Передаю в функцию указатель на TObject, и так, как не хочется отлавливать потом ошибки (функцией будет пользоватся другой человек), хотел-бы проверить его (объекта тип) перед выполнением операций над ним.
Скажу сразу, что компонент - TListBox а функция, по заполнению массива из значений Item'ов из ListBox. (Понимаю, что чуть бредово - от листбокса лучше отказатся - но человек именно так и пытается написать).
Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 02-01-2010 19:20 » 

Если точно знаешь, какой должен быть тип, и хочешь перестраховаться - то dynamic_cast поможет.
Записан
lapulya
Молодой специалист

ru
Offline Offline

« Ответ #2 : 03-01-2010 00:28 » 

а почему нельзя сразу написать функцию с нужным типом, тогда точно ошибки в рантайме не будет.
Записан

С уважением Lapulya
zubr
Гость
« Ответ #3 : 03-01-2010 09:15 » 

Не помню как в билдере, для Delphi  Borland предоставляет информацию о типах времени исполнения (RTTI). К примеру, чтобы проверить какого типа объект есть ключевое слово is: if MyObject is TListBox then...
Записан
lapulya
Молодой специалист

ru
Offline Offline

« Ответ #4 : 03-01-2010 11:26 » 

если есть dynamic_cast (в чем я конечно же не уверен), то писать таакую if MyObject is TListBox then... эээ конструкцию, как минимум нехорошо.
Записан

С уважением Lapulya
desolator
Гость
« Ответ #5 : 03-01-2010 14:34 » 

Не помню как в билдере, для Delphi  Borland предоставляет информацию о типах времени исполнения (RTTI). К примеру, чтобы проверить какого типа объект есть ключевое слово is: if MyObject is TListBox then...
Вот что мне надо было -  просто в 6 билдере юзал такое, а в 2007 только осваиваюсь, или бросать 2007 и качать что-то новое лучше?
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines