delphi combobox的onmeasureitem怎么用

 我来答
windblast
2017-10-10 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13621
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部

OnMeasureItem 事件是将 ComboBox 组件的 Style 属性设为 csOwnerDrawVariable,当系统需要绘制控件时会激发此事件。

csOwnerDrawVariable 和 csOwnerDrawFixed 两个属性都用于 ComboBox 控件的自定义显示样式,区别在于 csOwnerDrawFixed 用于项目等高,而 csOwnerDrawVariable 用于绘制有不同高度的条目的下拉列表框。

示例如下:

procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
begin
 for i := 0 to Screen.Fonts.Count-1 do
    cbbFonts.Items.Add(Screen.Fonts.Strings[i]);
end;

procedure TForm1.cbbFontsDrawItem(Control: TWinControl; Index: Integer; Rect: TRect;
  State: TOwnerDrawState);
begin
  with (Control as TComboBox).Canvas do
  begin
    Font.Name := Screen.Fonts.Strings[Index];
    FillRect(Rect);
    TextOut(Rect.Left,Rect.Top,PChar(Screen.Fonts.Strings[Index]))
  end;
end;

procedure TForm1.cbbFontsMeasureItem(Control: TWinControl; Index: Integer;
  var Height: Integer);
begin
  if Index = 3 then
    Height := 30;
end;

代码运行效果如图:

威孚半导体技术
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层... 点击进入详情页
本回答由威孚半导体技术提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式