![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
константы
Gu © (2012-01-11 20:56:00)почему при
Const
a=Ansistring('mama');
b=Ansistring(a+'papa');
все норм компилится, при
Const
a:Ansistring='mama';
b:Ansistring=a+'papa';
или
a:Ansistring='mama';
b:Ansistring=Ansistring(a+'papa');
пишет E2026 Constant expression expected?
Как правильно объявить константу состоящую из анси символов и имеющую в себе предидущие (c:Ansistring=a+b+'брат')?
Dimka Maslov (2012-01-11 21:22:00) [1][3] Это константы, которые будут заменены компилятором на значения в момент компиляции. Тип будет, какой указан для соотв. переменных.
[4] Читай документацию про ключевое слово const, особенно - что такое типизированная константа.
[5] Так больше делать нельзя.
И в догонку - забудь про ansistring и делай всё в юникоде. Так оно быстрее будет и надёжнее. ansistring же появляется только там, где это действительно надо при передаче в другое приложение.
Gu (2012-01-11 21:03:00) [2]
> [2]
и как тогда константам тип присваивать (создать константу типа ансистринг), как тут пишут например http://delphiworld.narod.ru/base/typed_constants.html
Gu (2012-01-11 21:00:00) [3]
> [2]
а как же надпись Const в начале?
Gu (2012-01-11 20:59:00) [4]просто в случае
Const
a=Ansistring('mama');
b=Ansistring(a+'papa');
где норм компилится все - a и b какого типа будут? не юникоде часом?
Dimka Maslov (2012-01-11 20:58:00) [5]потому что
const
a: ansistring='mama' создаёт не константу, а переменную с заранее заданным значением.
а
const
a=ansistring('mama') - константу, которая будет подставлена в нужные места компилятором.
Gu (2012-01-11 20:57:00) [6]p.s. Xe2
если просто пишу
Const
a='mama'
то a - получается типа unicodestring, а нужно ansistring