Как я могу добавить заголовок / текст в мой csExDropDownList Combobox в Delphi? - PullRequest
0 голосов
/ 11 января 2019

В настоящее время я пытаюсь создать комбинированный список с надписью. Под заголовком я подразумеваю текст, который вы видите, когда еще не нажали на него или если вы выбираете опцию.

До того, как я добавил csExDropDownList, он работал нормально, но я хотел, чтобы он был ReadOnly. Теперь, когда я редактирую свойство Text, оно мгновенно удаляется. Я думал об использовании TLabel перед выпадающим списком и его исчезновении в тот момент, когда я выбрал выпадающий список, но TLabel всегда на заднем плане. Я также попробовал с компонентом TStaticText, но он оставляет другой цветной фон перед списком, который выглядит плохо.

Если я не смог объяснить словами, что я пытаюсь отредактировать / хотел добавить текст, это то, что я имею в виду:

enter image description here

1 Ответ

0 голосов
/ 11 января 2019

Я нашел решение моей проблемы. Я добавил третий выпадающий список с индексом 0. Теперь в свойствах я поставил ItemIndex в 0, что означает, что он будет отображаться аналогично свойству Text. Когда я взаимодействую с QuickSort или InsertSort, я удаляю Index 0.

Мой код выглядит так:

procedure TSorterForm.AlgorithmCbxChange(Sender: TObject);
begin
     if (AlgorithmCbx.Text <> 'Choose Algorithm...') and not IsAlgorithmSelected then begin
       AlgorithmCbx.Items.Delete(0);
       IsAlgorithmSelected:= true;
     end;
end;

Очевидно, что не идеально, поэтому было бы здорово, если бы вы могли рассказать мне, как это улучшить.

...