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

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

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

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

Сообщение PapaNT » 06.12.2020 00:32:35

В процессе работы мне как-то пришлось собирать строку TLabel.Caption из разных компонент. Оказалось, что если присутствовал символ амперсанда "&", то при выводе строки он исчезал, а следующая за ним буква становилась подчеркнутой. Вылечилось просто. Вместо одного амперсанда я поставил два "&&" и все заработало :)
PapaNT
постоялец
 
Сообщения: 167
Зарегистрирован: 11.09.2009 12:06:46
Откуда: Москва

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

Сообщение Alex2013 » 06.12.2020 06:33:18

Это то же самое, что и с одинарной кавычкой ! (Внутри строки нельзя поставить ' но если поставить ТРИ ''' то "тоже все заработает" :idea: )
Alex2013
долгожитель
 
Сообщения: 3049
Зарегистрирован: 03.04.2013 11:59:44

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

Сообщение Снег Север » 06.12.2020 08:49:20

В Caption & имеет смысл назначения следующего за ним символа "горячим". Поэтому не надо путать поведение свойства Caption и обычной строки. Одиночная кавычка внутри строки обозначается её удвоением ( а не утроением). При записи строк в текстовые поля баз данных приходится маскировать еще и слеш ("\") его удвоением.
Короче, учите матчасть, ребятки! :mrgreen:
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3039
Зарегистрирован: 27.11.2007 16:14:47

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

Сообщение Alex2013 » 07.12.2020 00:07:28

Хм, действительно удвоение .... странно откуда я утроение взял... :roll:
Наверное сбился со счета при подобном присваивании S:=''''; :wink:
Alex2013
долгожитель
 
Сообщения: 3049
Зарегистрирован: 03.04.2013 11:59:44

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

Сообщение Vadim » 07.12.2020 06:08:51

То ли дело Fortran. В нём, если тебе в строке нужны одинарные кавычки, то саму строку ты оборачиваешь двойными. А если нужны двойные - то одинарными. ;-) :-D
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

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

Сообщение SSerge » 07.12.2020 06:30:18

Vadim, а когда нужно было в фортране поизгиляться над TLabel.Caption, то можно было легко и непринуждённо отбросить бесцельные мечтания. :D
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

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

Сообщение Alex2013 » 07.12.2020 19:23:21

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


Визуал Фортран (с ООП) ? :wink: Представил ... Брр... Страшно !! :wink:
Alex2013
долгожитель
 
Сообщения: 3049
Зарегистрирован: 03.04.2013 11:59:44

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

Сообщение Vadim » 08.12.2020 05:23:10

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

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

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

А вот и зря. ;-) Интрефейс для Gtk и WinAPI у Fortran'а есть. Другое дело, что это действительно нифига не нужно, извращение... :-)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

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

Сообщение Vapaamies » 21.02.2021 22:09:06

На самом деле надо:
Код: Выделить всё
Label1.ShowAccelChar := False;
Аватара пользователя
Vapaamies
постоялец
 
Сообщения: 292
Зарегистрирован: 24.07.2012 22:37:59
Откуда: Санкт-Петербург


Вернуться в База знаний

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Рейтинг@Mail.ru