我需要用户选择一个日期格式(dd / mm / yyyy或dd mmmm yyyy等),但是显示这些选项只会造成混淆。我想要做的是将TComboBox项填充为“ 14/09/2012”,“ 2012年9月14日”,“ 2012年9月14日星期五”等,当用户选择这些日期格式之一时,组合框就会文字“ dd mmmm yyyy”或其他日期格式(尽管我仍然希望他们能够输入“ d / m / yy”之类的其他内容)。
但是我还没有找到一种简便的方法-除了带有TSpeedButton的TEdit,它会打开一个带有选择选项的表单,如果没有使用TComboBox的方法,这是我的第二选择。
问题:如何使TComboBox下拉显示日期,但是选择日期时text属性获得日期格式?
最佳答案
所有者提取TCombobox怎么样?
procedure TForm16.cbLongDateFormatDrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
with Control as TComboBox do
begin
if not (odSelected in State) then
Canvas.Brush.Color:=clWindow
else
Canvas.Brush.Color:=clHighlight;
Canvas.FillRect(Rect);
Canvas.TextOut(Rect.Left +2 , Rect.Top, FormatDateTime(cbLongDateFormat.Items[Index], Now));
end;
end;
procedure TForm16.FormCreate(Sender: TObject);
begin
cbLongDateFormat.Items.Add('ddddd');
cbLongDateFormat.Items.Add('dddddd');
cbLongDateFormat.Items.Add('dd/mm/yyyy');
cbLongDateFormat.Items.Add('d mmmm yyyy');
end;
关于delphi - 在TComboBox中,如何使下拉菜单显示X,但是选择X时text属性变为Y?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12416696/