一个关于TListbox,TMemo控件的问题。 有一堆字符串要用类似标题上说的两个控件来显示。我想把每一行的字体大小和颜色可以定义。类似聊天室的东西,怎样做? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把Listbox的style属性改为lbOwnerDrawVariable以后,要怎么显示你就可以随心所欲了。只在两个事件中写代码即可:procedure TForm1.ListBox1MeasureItem(Control: TWinControl; Index: Integer; var Height: Integer);begin Height := Index Mod 3 * 2 + ListBox1.ItemHeight; //你要画的每个Item的高度,根据字体不同而不同,这是随便取了几个不同的值end;procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);begin ListBox1.Canvas.Brush.Color := Index * $A0F0F0; ListBox1.Canvas.FillRect(Rect);//上面的代码是填充Item的背景,下面画出每个Item的文字,可以为每个Item设置不同的字体及着色 if Index mod 2 = 0 then begin ListBox1.Canvas.Font.Name := 'Impact'; ListBox1.Canvas.Font.Color := clLime; end else begin ListBox1.Canvas.Font.Name := 'Tahoma'; ListBox1.Canvas.Font.Color := clRed; end;//用Canvas的TextOut画出文字: ListBox1.Canvas.TextOut(Rect.Left, Rect.Top, ListBox1.Items[Index]);end; 用TRichEditprocedure TForm1.Button1Click(Sender: TObject);var s: string;begin s:= 'sdfsdf'; RichEdit1.SelAttributes.Color := clRed; RichEdit1.Lines.Add(s); RichEdit1.SelAttributes.Color := clBlue; RichEdit1.Lines.Add(s);end; 用richedit代替memo,可以设置字体和颜色 如何知道ado控件的事件的执行顺序 SQL关于查询问题(简单的) 关于Stringgrid和PopupMenu的组合开发问题 编译产生的问题 帮忙看看 在treeview中,如何实现动态右键菜单?在线等 delphi 的sql explorer和desktop无法使用? 如何在Delphi中调用MS sql的导出功能,将数据库导出为Access格式? 字符串替代,用的是哪個函數? 我想要一个进销售存的软件,这是客户给我功能清单 大家能给我提点意见吗?有这方面的demo吗 TStringList的一个很不完善的地方(字符分割问题) 连接Oracle一般用什么组件???
只在两个事件中写代码即可:procedure TForm1.ListBox1MeasureItem(Control: TWinControl; Index: Integer;
var Height: Integer);
begin
Height := Index Mod 3 * 2 + ListBox1.ItemHeight;
//你要画的每个Item的高度,根据字体不同而不同,这是随便取了几个不同的值
end;procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
ListBox1.Canvas.Brush.Color := Index * $A0F0F0;
ListBox1.Canvas.FillRect(Rect);
//上面的代码是填充Item的背景,下面画出每个Item的文字,可以为每个Item设置不同的字体及着色
if Index mod 2 = 0 then
begin
ListBox1.Canvas.Font.Name := 'Impact';
ListBox1.Canvas.Font.Color := clLime;
end
else
begin
ListBox1.Canvas.Font.Name := 'Tahoma';
ListBox1.Canvas.Font.Color := clRed;
end;
//用Canvas的TextOut画出文字:
ListBox1.Canvas.TextOut(Rect.Left, Rect.Top, ListBox1.Items[Index]);
end;
var
s: string;
begin
s:= 'sdfsdf';
RichEdit1.SelAttributes.Color := clRed;
RichEdit1.Lines.Add(s);
RichEdit1.SelAttributes.Color := clBlue;
RichEdit1.Lines.Add(s);
end;