用CheckListBox1控件,我想实现这种功能,当CheckListBox1控件里选中哪行数据,我想实现哪行数据就把字体改变颜色。快各位帮忙呀!!
解决方案 »
- 请问一下进销存的采购问题?
- VTCHART中各个COLUMN的值如何设置
- 在线等待问题。急急急
- treeview中如何使用鼠标点击某一条目和用键盘上下移动选择条目的效果相同?详情请进
- *******请各位大虾帮一下忙,为什么我用query写sql语句,用like没有反映?********
- 如何快速地将服务器中的SQL-SERVER2000数据表导出到客户端中的ACCESS或其他数据库?
- 高价求算法:不管用什么语言写都行.
- 取值?
- 怎样将图片等自动化对象插入到TRichEdit组件中
- delphi中MediaPlayer播放视频如何截图
- 哪位大虾帮忙把下面的函数用Delphi改写一下.
- 如何首先用GetActiveWindow这类方法取得句柄再把form里一切文字复制到自己的memo里
var
FBmpGrayed, FBmpChecked, FBmpUnchecked: TBitmap;
//...
//Load bitmaps representing item states
procedure TForm1.FormCreate(Sender: TObject);
begin
FBmpGrayed := TBitmap.Create;
FBmpGrayed.LoadFromFile('grayed.bmp');
FBmpChecked := TBitmap.Create;
FBmpChecked.LoadFromFile('checked.bmp');
FBmpUnchecked := TBitmap.Create;
FBmpUnchecked.LoadFromFile('unchecked.bmp');end;
?
//Destroy images when disposing of the form
procedure TForm1.FormDestroy(Sender: TObject);
begin
FBmpGrayed.Free;
FBmpChecked.Free;
FBmpUnchecked.Free;
end;
?
//OnDrawItem event handler
procedure TForm1.cxCheckListBox2DrawItem(Control: TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
ACanvas: TcxCanvas;
AText: string; ATextRect: TRect;
AGlyphWidth: Integer;
AListBox: TcxCheckListBox;
ACheckBmp: TBitmap;
ACanvasFont: TFont;
AItemState: TcxCheckBoxState;
AItemEnabled: Boolean;
begin
AListBox := (Control as TcxCheckListBox);
ACanvas := AListBox.InnerCheckListBox.Canvas;
ACanvasFont := ACanvas.Font;
?
AItemState := AListBox.Items[Index].State;
AItemEnabled := AListBox.Items[Index].Enabled;
?
case AItemState of
cbsUnchecked: begin
ACheckBmp := FBmpUnchecked;
ACanvasFont.Color := clBlack;
end;
cbsChecked:
begin
ACheckBmp := FBmpChecked;
ACanvasFont.Style := [fsBold];
ACanvasFont.Color := clBlack;
end;
cbsGrayed:
begin
ACheckBmp := FBmpGrayed;
ACanvasFont.Color := clGray;
end;
end;
?
ACanvas.Brush.Color := clWhite;
ACanvas.FillRect(Rect); AGlyphWidth := ACheckBmp.Width;
ACanvas.DrawGlyph(Rect.Left, Rect.Top, ACheckBmp, AItemEnabled);
?
AText := AListBox.Items[Index].Text;
ATextRect := Rect;
ATextRect.Left := ATextRect.Left + 3 + AGlyphWidth;
ACanvas.DrawTexT(AText, ATextRect, 0);
end;