知道如何对LISTBOX的单个ITEM的字体STYLE进行修改,而不影响其他的ITEM吗(10分)

  • 主题发起人 主题发起人 aaww
  • 开始时间 开始时间
A

aaww

Unregistered / Unconfirmed
GUEST, unregistred user!
当左边的listbox1的一个ITEM被选中且加入到LISTBOX2中时,LISTBOX1中的该ITEM字体变成灰白,当LISTBOX2中的被删除时,LISTBOX1中的相应ITEM字体恢复
两点要求
1、当某个ITEM被添加到LISTBOX2时,LISTBOX1的选择条会自动移到没有被选取的ITEM处。
2、当LISTBOX2某ITEM被删除时,选择条会自动移到没有被删除的ITEM处。
 
//Listbox2的style属性改为lbOwnerDrawVariable。
//Listbox1按一般情况显示,Listbox2显示的每一项都可以有自己的字体、大小、颜色。

procedure TForm1.ListBox2DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
with ListBox2.Canvas do
begin
FillRect(Rect);
Font.Size := 12;
if Index mod 2 =0 Then
begin
Font.Name := '宋体';
Font.Color := Clred;
end
else
begin
Font.Name := '隶书';
Font.Color := Clgreen;
end;
TextOut(Rect.Left+1, Rect.Top+1,
ListBox2.Items[Index]);
end;
end;

procedure TForm1.ListBox2MeasureItem(Control: TWinControl; Index: Integer;
var Height: Integer);
begin
with ListBox1.Canvas do
begin
Font.Size := 12;
if Index mod 2 =0 Then
begin
Font.Name := '黑体';
Font.Color := Clred;
end
else
begin
Font.Name := '隶书';
Font.Color := Clgreen;
end;
Height := TextHeight('Wg') + 2;
end;
end;
 
接受答案了.
 
后退
顶部