Это не совсем то, что было запрошено, но это может быть лучшее решение для разработчиков, имеющих подписку DevExpress VCL ExpressEditors: в TcxDBLookupComboBox
есть скрытая функция, которая может обеспечьте хорошую кнопку очистки внутри выпадающего списка!
Он работает точно так же, как в TcxButtonEdit
, где вы можете добавлять кнопки во время разработки, просто это свойство Buttons
не отображается в TcxDBLookupComboBox
, поэтому его можно установить только во время выполнения: (
procedure TForm1.FormCreate(Sender: TObject);
begin
AddClearButton(cxDBLookupComboBox1.Properties);
end;
procedure TForm1.AddClearButton(Prop: TcxCustomEditProperties);
begin
with Prop.Buttons.Add do begin
Kind:= bkText;
Caption:= #$2715; //Unicode X-symbol
end;
Prop.OnButtonClick:= ClearButtonClick;
end;
procedure TForm1.ClearButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
if AButtonIndex = 1 then
with TcxCustomEdit(Sender) do begin
EditValue:= Null;
PostEditValue;
end;
end;
Это может также работать с другими элементами управления, однако, по крайней мере, с TcxDBSpinEdit это не так.