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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2015, 11:04   #1
cawendish
Пользователь
 
Регистрация: 10.12.2014
Сообщений: 12
По умолчанию Есть ли функция, которое выдает имя переменной?

Здравствуйте!
Время от времени мне надо отлаживать delphi программы, т.е. следить за изменениями целого ряда переменных.
Вопрос: как передать в строчную переменную название другой переменной?

Например:

Код:
var

  i   : integer;
  str : string;

begin

  i   :=5;
  str := ИмяПеременной(i) + ' = ' + IntToStr(i);

end.
И чтобы в результате str было равно 'i = 5'
cawendish вне форума Ответить с цитированием
Старый 10.02.2015, 11:08   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

В таком духе, по другому ни как
Код:
str := 'i = ' + IntToStr(i);
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.02.2015, 11:21   #3
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Код:
TVarValue = record
  aValue: Integer; // любая переменная
  aType: String; // тип переменной
end;

var
  i: TVarValue;

...

i.aValue := 1;
i.aType := 'Integer';
...

str :=  i.aType + InttoStr(i.aValue);
что-то типа этого
ZuBy вне форума Ответить с цитированием
Старый 10.02.2015, 11:25   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Имя переменной все равно нет. Впрочем не важно, можно и свой тип сделать, но все равно в любом случае имя переменной только текстовой константой можно передать, программно ни как не вычислить
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.02.2015, 11:51   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
название другой переменной?
Практически никак. Максимум что удастся - использовать RTTI но только на методах и полях классов.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.02.2015, 14:14   #6
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Автор, а ты знаешь, что название переменных в Windows - это их адресс? И что ты будешь передавать, тогда: Адресс = значение?
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 10.02.2015, 14:17   #7
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от ZuBy Посмотреть сообщение
Код:
TVarValue = record
  aValue: Integer; // любая переменная
  aType: String; // тип переменной
end;

var
  i: TVarValue;

...

i.aValue := 1;
i.aType := 'Integer';
...

str :=  i.aType + InttoStr(i.aValue);
что-то типа этого
Вообще-то правильней так:
Код:
TVarValue= record 
AValue: array of Byte; //любая информация в компьютере - это байты
AType: String;
end;
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.

Последний раз редактировалось саша40; 10.02.2015 в 14:22.
саша40 вне форума Ответить с цитированием
Старый 10.02.2015, 14:28   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Вообще-то правильней так
Вообще-то есть variant, если что.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.02.2015, 14:37   #9
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Цитата:
Сообщение от саша40 Посмотреть сообщение
Вообще-то правильней так:
для тех кто в танке, это был пример
ZuBy вне форума Ответить с цитированием
Старый 10.02.2015, 15:18   #10
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Никак. Веди лог в каком-нибудь TStringList. Но по своему скромному опыту скажу, что необходимость контролировать целый ряд переменных является следствием неправильной организации программы. Составляйте программы так, чтобы такая необходимость не появлялась в принципе, либо очень-очень редко.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать имя события/функции, которое было выполенно в Run Time? artemavd Общие вопросы Delphi 14 07.09.2012 19:06
Имя переменной Alex Cones Общие вопросы Delphi 9 09.07.2010 21:04
Как можнО засечь промежуток времени, которое проработала функция DarkEvil Общие вопросы Delphi 11 18.11.2009 17:23
Имя переменной как переменная. Как получить доступ к такой переменной? Denni Microsoft Office Access 8 02.04.2009 10:06