Строки с амперсандом "&"

Делимся вариантами решения наиболее часто задаваемых вопросов.

Модератор: Модераторы

Ответить
PapaNT
постоялец
Сообщения: 167
Зарегистрирован: 11.09.2009 12:06:46
Откуда: Москва

Строки с амперсандом "&"

Сообщение PapaNT »

В процессе работы мне как-то пришлось собирать строку TLabel.Caption из разных компонент. Оказалось, что если присутствовал символ амперсанда "&", то при выводе строки он исчезал, а следующая за ним буква становилась подчеркнутой. Вылечилось просто. Вместо одного амперсанда я поставил два "&&" и все заработало :)
Alex2013
долгожитель
Сообщения: 3240
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

Это то же самое, что и с одинарной кавычкой ! (Внутри строки нельзя поставить ' но если поставить ТРИ ''' то "тоже все заработает" :idea: )
Аватара пользователя
Снег Север
долгожитель
Сообщения: 3072
Зарегистрирован: 27.11.2007 15:14:47
Контактная информация:

Сообщение Снег Север »

В Caption & имеет смысл назначения следующего за ним символа "горячим". Поэтому не надо путать поведение свойства Caption и обычной строки. Одиночная кавычка внутри строки обозначается её удвоением ( а не утроением). При записи строк в текстовые поля баз данных приходится маскировать еще и слеш ("\") его удвоением.
Короче, учите матчасть, ребятки! :mrgreen:
Alex2013
долгожитель
Сообщения: 3240
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

Хм, действительно удвоение .... странно откуда я утроение взял... :roll:
Наверное сбился со счета при подобном присваивании S:=''''; :wink:
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

То ли дело Fortran. В нём, если тебе в строке нужны одинарные кавычки, то саму строку ты оборачиваешь двойными. А если нужны двойные - то одинарными. ;-) :-D
SSerge
энтузиаст
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Сообщение SSerge »

Vadim, а когда нужно было в фортране поизгиляться над TLabel.Caption, то можно было легко и непринуждённо отбросить бесцельные мечтания. :D
Alex2013
долгожитель
Сообщения: 3240
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

SSerge писал(а):Vadim, а когда нужно было в фортране поизгиляться над TLabel.Caption, то можно было легко и непринуждённо отбросить бесцельные мечтания. :D


Визуал Фортран (с ООП) ? :wink: Представил ... Брр... Страшно !! :wink:
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

SSerge писал(а):... то можно было легко и непринуждённо отбросить бесцельные мечтания.

Слова из песни, которые не выкинешь писал(а):Потому что нельзя быть красивой такой...

:D
Alex2013 писал(а):Представил ... Брр... Страшно !!

А вот и зря. ;-) Интрефейс для Gtk и WinAPI у Fortran'а есть. Другое дело, что это действительно нифига не нужно, извращение... :-)
Аватара пользователя
Vapaamies
постоялец
Сообщения: 292
Зарегистрирован: 24.07.2012 22:37:59
Откуда: Санкт-Петербург
Контактная информация:

Сообщение Vapaamies »

На самом деле надо:

Код: Выделить всё

Label1.ShowAccelChar := False;
Ответить