RSS订阅 | 匿名投稿
您的位置:网站首页 > 组件 > 正文

delphi combobox和listbox的文字可以右对齐显示

作者:admin 来源: 日期:2012/12/28 15:38:25 人气: 标签:

combobox和listbox的文字可以右对齐显示么?答案是可以的,但是必须使用ComboBox1DrawItem,自行画内容。

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    ComboBox1: TComboBox;
    procedure FormCreate(Sender: TObject);
    procedure ComboBox1DrawItem(Control: TWinControl; Index: Integer;
      Rect: TRect; State: TOwnerDrawState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  ComboBox1.Style := csOwnerDrawFixed;
end;

procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var
  x: Integer;
  txt: string;
begin
  with ComboBox1 do
  begin
    Canvas.FillRect(Rect); //将combobox用现在的brush填充颜色
    txt := Items[Index];
    x := Rect.Right - Canvas.TextWidth(txt) - 4;
    Canvas.TextOut(x, Rect.Top, txt);
  end;
end;

end.


读完这篇文章后,您心情如何?
0
0
0
0
0
0
0
0
本文网址: