![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли при описании константы использовать функции? [D5]
lipskiy © (2002-04-08 01:12:00)Например, описывается строковая константа, но внутри нее необходимо вставить кусок текста, который вычисляется в зависмости от настроек программы. Как это можно сделать?
Например:
const
Text = "Зарегистрированная версия. Пользователь: " + GetUserName;
Где GetUserName - некая функция, которая возвращает строку.
(Пример от балды, в конкретику текста не вникайте, на самом деле надо совершенно другое назначение текста).
[MC]NuClon (2002-04-08 20:31:00) [1]кхе кхе... Если вам надобно скажем в строке кусок текста, который вычисляется...
Вспомним такую вещь в C. Когда для формирования строк используются такие %d, %f и др. Просто остаётся сделать функцию, которая всё это анализирует.
И вообще, что других способов нет??
lipskiy (2002-04-08 19:59:00) [2]Да, кусок текста встраивается в зависимости от настроек программы. Естественно, его можно добавить к константе при инициализации и т.п. Это и так ясно. Вопрос был именно в описании - чтобы не париться и не делать специальных действий при инициализации - а сразу объявить и все.
Ок, понял что нельзя. Вопрос закрыт. Спасибо всем.
Толик (2002-04-08 16:34:00) [3]to Anatoly Podgoretsky ©
Да, Вы правы. Объявлять константу в подобном виде нельзя. Но мне казалось, что вопрос стоит несколько шире:
"...описывается строковая константа, но внутри нее необходимо вставить кусок текста, который вычисляется в зависмости от настроек программы..."
Вот как раз в момент определения "настроек программы" и можно вставить "кусок текста" в эту константу.
Alx2 (2002-04-08 16:10:00) [4]Попробуй $define
и конструкции типа IFDEF etc...
Anatoly Podgoretsky (2002-04-08 15:59:00) [5]Толик © (08.04.02 15:37)
Никто не просит менять константу, вопрос об определении константы в указаном виде.
Ответ в указанном виде нельзя.
Толик (2002-04-08 15:37:00) [6]На самом деле константе можно присваивать какие унодно значения!
const
Str: string = "Это константа?"
begin
string((@Str)^) := "Ну и что это за константа после этого???";
ShowMessage(Str); //А казалось бы константа...
end;
AFROLOV (2002-04-08 14:32:00) [7]Сделай глобальную переменную и инициализируй ее в начале работы программы.
Romkin (2002-04-08 14:30:00) [8]Можно сделать переменную, а значение ей присваивать в разделе initialization модуля, будет практически как константа. Если надо, чтобы нельзя было менять - сделай в interface функцию, выводящую эту строку
lipskiy (2002-04-08 14:24:00) [9]2 SVM
ok, понял, жалко :(
SVM (2002-04-08 08:14:00) [10]Constant expressions cannot include variables, pointers, or function calls, except calls to the following predefined functions:
Abs, Chr, Hi, High, Length, Lo, Low, Odd,
Ord, Pred, Round, SizeOf, Succ, Swap, Trunc
gek (2002-04-08 08:02:00) [11]const
Text :string ="Зарегистрированная версия. Пользователь"
как хочешь так и меняй
dymka (2002-04-08 07:55:00) [12]Попробуй скомпилировать, если не компилируется - значит нельзя :)