点击选中后出现8个点,离开焦点后擦除!
解决方案 »
- 求businessskinform 控件的 TbsSkinButtonsBar组件两个问题
- 在delphi中怎么处理从数据库中提取的两个字段:结束时间,开始时间(都是日期型),两者相减得出xx天xx小时xx分钟
- 哪位大哥有支持同时ansi 和 vt100的telnet组件?
- TreeView的一个小问题
- 如何实现QQ中的面板?---帮个小忙吧
- 怎么操作二进制文件?
- 哪里有InstallSheild Develpor 7.x或者8.x下载
- MSCOMM控件问题
- 没分了,求哪个高人解决个问题以后再给分,bde+query多表的问题
- 关于DbGrid和DbConctrlGrid的小问题,99分。
- sql server2000 如何儲存影片?
- 小问题,在线等候,解决就给分
const
Alignments: array[TAlignment] of Longint = (DT_LEFT, DT_RIGHT, DT_CENTER);
VAlignments: array[TVAlignment] of Longint = (DT_TOP, DT_BOTTOM, DT_VCENTER);
var
i:integer;
Rect: TRect;
Flags: Longint;
Text: String;
begin
Rect := GetClientRect;
with Canvas do
begin
Brush.Color := Color;
if FTransparent then
DoTrans(Canvas, self)
else
Rectangle(ClientRect);
if FActive then
begin
if FCanResize then
begin
// 画六个小方块
Brush.Color := clBlack;
for i:= Low(FBlockRect) to High(FBlockRect) do
Rectangle(FBlockRect[i]);
end else begin
// 画四个小方块
Brush.Color := clGray;
Rectangle(FBlockRect[HTTOPLEFT]);
Rectangle(FBlockRect[HTBOTTOMLEFT]);
Rectangle(FBlockRect[HTTOPRIGHT]);
Rectangle(FBlockRect[HTBOTTOMRIGHT]);
end;
end; if FDesignMode then
begin
if (FDefaultValue='') then
Text := Caption
else
Text := FDefaultValue;
end else begin
Text := Caption;
end;
Brush.Style := bsClear;
Font := Self.Font;
if (FDataType in [dtSingleText,dtFixedText,dtNumber,dtCombo,dtPicture]) then
Flags := DT_SINGLELINE or VAlignments[FVAlignment] or Alignments[FAlignment]
else
Flags := DT_LEFT or DT_TOP or DT_WORDBREAK;
Flags := DrawTextBiDiModeFlags(Flags);
Rect := Self.ClientRect;
DrawText(Handle, PChar(Text), -1, Rect, Flags);
end;
end;参考以上代码,其中FActive代表是否选中状态