关于下拉框在重绘时出现文字严重偏移得问题,不知大家遇到过没有?

binghe_yyh2001 2004-11-21 05:00:19
我时这样写得
procedure TForm1.FormCreate(Sender: TObject);
begin
ComboBox1.Items.Add('0001=张三');
ComboBox1.Items.Add('0002=李四');
ComboBox1.Items.Add('0003=王五');
end;

在重绘事件我这样写
procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
if ComboBox1.ItemIndex = Index then begin
Canvas.Brush.Color := clHotLight;
Canvas.FillRect(Rect);
Canvas.Font.Color := clWindow;
end else begin
Canvas.Brush.Color := clWindow;
Canvas.FillRect(Rect);
Canvas.Font.Color := clWindowText;
end;
Canvas.TextRect(Rect, Rect.Left, Rect.Top + 1,ComboBox1.Items.Values[Combobox1.Items.Names[index]]);
end;

但是当运行时点击combobox的时候,其下拉菜单的文字偏移大到老远的位置,不知为何
...全文
135 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
binghe_yyh2001 2004-11-23
  • 打赏
  • 举报
回复
揭帖了
xzhifei 2004-11-22
  • 打赏
  • 举报
回复
procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
with ComboBox1 do
begin
if odSelected in State then
begin
Canvas.Brush.Color := clRed;
Canvas.Font.Color := clWindow;
end
else
begin
Canvas.Brush.Color := clWindow;
Canvas.Font.Color := clWindowText;
end;
Canvas.TextRect(Rect, Rect.Left, Rect.Top + 1, ComboBox1.Items.Values[Combobox1.Items.Names[index]]);
end;
end;
ssq237712 2004-11-22
  • 打赏
  • 举报
回复
将Canvas.TextRect(Rect, Rect.Left, Rect.Top, Items[Index]);
换成Canvas.TextOut(Rect.Left, Rect.Top, Items[Index]);
budded 2004-11-22
  • 打赏
  • 举报
回复
procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
with ComboBox1 do
begin
if ItemIndex = Index then begin
Canvas.Brush.Color := clHotLight;
Canvas.FillRect(Rect);
Canvas.Font.Color := clWindow;
end else begin
Canvas.Brush.Color := clWindow;
Canvas.FillRect(Rect);
Canvas.Font.Color := clWindowText;
end;
Canvas.TextRect(Rect, Rect.Left, Rect.Top, Items[Index]);
end;
end;
binghe_yyh2001 2004-11-22
  • 打赏
  • 举报
回复
顶上去

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧