Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2013, 11:35   #1
lexaltd
Форумчанин
 
Регистрация: 21.07.2008
Сообщений: 192
По умолчанию В Variant добавить Class

Можно ли в тип данных Variant, добавить свой класс?

Чтоб было типа:

Код:
procedure TForm1.BitBtn2Click(Sender: TObject);
var
 MC : TMyClass;
 V:Variant;
begin
 V := TMyClass.Create;
 //или
 V := MC;
end;
lexaltd вне форума Ответить с цитированием
Старый 16.10.2013, 11:42   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

у компилятора спроситть гораздо быстрее чем на форуме
eval вне форума Ответить с цитированием
Старый 16.10.2013, 12:00   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Так, в порядке извращения
Код:
procedure TForm1.Button2Click(Sender: TObject);
var xLabel: TLabel;
    xVariant: Variant;
begin
  xLabel:=TLabel.Create(Self);
  xLabel.Parent:=Self;
  xLabel.Caption:='Мой лэйбл';
  xLabel.Top:=40;
  xLabel.Left:=140;
  xVariant:=Integer(xLabel);
  TLabel(Integer(xVariant)).Caption:='через вариант';
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.10.2013, 12:11   #4
lexaltd
Форумчанин
 
Регистрация: 21.07.2008
Сообщений: 192
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Так, в порядке извращения
Код:
procedure TForm1.Button2Click(Sender: TObject);
var xLabel: TLabel;
    xVariant: Variant;
begin
  xLabel:=TLabel.Create(Self);
  xLabel.Parent:=Self;
  xLabel.Caption:='Мой лэйбл';
  xLabel.Top:=40;
  xLabel.Left:=140;
  xVariant:=Integer(xLabel);
  TLabel(Integer(xVariant)).Caption:='через вариант';
end;
А нельзя ли как то сделать чтоб обращаться к переменой xVariant: Variant;
Код:
xVariant.Caption:='через вариант';
lexaltd вне форума Ответить с цитированием
Старый 16.10.2013, 12:16   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Смотрите #2
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.10.2013, 12:32   #6
lexaltd
Форумчанин
 
Регистрация: 21.07.2008
Сообщений: 192
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Смотрите #2
То есть нет?

Может можно каким нибуть извращением добиться?
lexaltd вне форума Ответить с цитированием
Старый 16.10.2013, 12:37   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Сообщение от lexaltd Посмотреть сообщение
Может можно каким нибуть извращением добиться?
А я чем добился? Все равно класс исходного объекта должен фигурировать, иначе компилятор не поймет. Или на уровне адресов методов объекта, но для этого очень хорошо нужно знать устройство объекта на низком уровне. Оно надо?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.10.2013, 13:59   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А зачем именно в Variant? Наверняка другое решение есть
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.10.2013, 14:40   #9
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Может можно каким нибуть извращением добиться?
Пишите свой OLE-сервер с блэкджеком и шляпами, регистрируете в системе. Используете где угодно, как угодно.
Человек_Борща вне форума Ответить с цитированием
Старый 16.10.2013, 15:27   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Можно ли в тип данных Variant, добавить свой класс?
Он для этого не предназначен. Да и OleVariant для Дельфийских классов тоже не айс.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не удается добавить сортировку в List Control: Error 64 error C2504: 'CHeaderCtrl' : base class undefined vaan.sk Общие вопросы C/C++ 2 29.11.2012 09:48
Тип Variant Дэкан1 Помощь студентам 1 21.05.2010 20:31
Variant to Stream & Variant from Stream Oreol Общие вопросы Delphi 1 24.03.2009 13:14
Variant в TDateTime SoLL Общие вопросы Delphi 2 13.02.2009 11:49
тип Variant Михаил Юрьевич Общие вопросы Delphi 3 31.01.2008 09:05