每个项目都有一个OnPaint事件。像以下这样分配一个事件处理程序。
procedure TfrmModelArchiver.lst1Paint(Sender: TObject; Canvas: TCanvas;
const ARect: TRectF);
begin
Canvas.Fill.Color := TAlphaColorRec.Red;
Canvas.FillRect(ARect, 0, 0, AllCorners, 0.2);
end;
在此事件处理程序中,不透明度被设置为0.2,以便文字可以显示出来。如果您将不透明度设置为1,则需要像下面展示的那样编写文本并绘制背景。
procedure TfrmModelArchiver.lst1Paint(Sender: TObject; Canvas: TCanvas;
const ARect: TRectF);
begin
Canvas.Fill.Color := TAlphaColorRec.Red;
Canvas.FillRect(ARect, 0, 0, AllCorners, 1);
Canvas.Fill.Color := TAlphaColorRec.Black;
Canvas.FillText(ARect, 'some text', False, 1, [],
TTextAlign.taLeading);
end;