QuotedStr добавляет единый знак кавычки в начале и в конце строки, переданной в качестве аргумента. Что может вводить в заблуждение, так это то, как отладчик показывает строки.
Например, следующий код
procedure TForm1.Button2Click(Sender: TObject);
var
a, b, c, r: string;
begin
a := 'A';
b := 'B';
c := 'C';
r := QuotedStr(a) + ',' +
QuotedStr(b) + ',' +
QuotedStr(c);
Label2.Caption := r; // breakpoint here
end;
с точкой излома на последней строке показывает, что это в Local Variables
панели:
но фактическая метка заголовка выглядит следующим образом:
Отладчик включает строки в одинарных кавычках для отображения, а поскольку ваши строки уже содержат одинарные кавычки, похоже, что будут двойные кавычки.
код, который Вы отправили в комментарии ...
procedure TForm9.Button2Click(Sender: TObject);
var MyString : String;
begin
//#44
MyString := QuotedStr('String1');
MyString := MyString + ',' + QuotedStr('String2');
ShowMessage(MyString);
end;
... производит этот результат:
и если сообщение расширяется с показывая длина, например:
ShowMessage(MyString + ' Length: ' + IntToStr(Length(MyString)));
... он производит это:
Одинарные кавычки, длина, как и ожидалось.
Нет, он обматывает строку одиночными кавычками. То, что вы можете увидеть, это две последовательные одинарные кавычки. – TLama
Как я могу просто вставить одну цитату, например. 'abc', 'xyz', 'pqr'. Я либо получаю 'abc, xyz, pqr' или '' abc '', '' xyz '', '' pqr ''. Что мне делать, чтобы получить желаемый результат? –
Похоже, вы соединяете эту цепочку сами; если это так, то просто конкатенируйте все его части и, наконец, оберните результат «QuotedStr». – TLama