Итак, у меня есть очень простой код ниже. Я использую эту функцию в нескольких событиях onclick для передачи заголовка TMenuItems.
procedure TForm1.BtnClick(Sender: TObject);
begin
TestFrm.MyVar:= TMenuItem(Sender).Caption;
InteractiveSchedulerFrm.ShowModal;
end;
Однако результатом этого является то, что поле TestFrm.MyVar в конечном итоге включает в себя амперсанд, которого изначально не было, и всегда в кажущемся случайным месте.
Я временно исправил проблему, заменив все амперсанды в строке, но мне больше всего любопытно, что вызывает размещение амперсанда в строке.
Пример:
TMenuItem (Отправитель) .Caption = 'TEST';
TestFrm.MyVar = 'TE & ST' или '& TEST' и т. Д.