|
|
procedure TFormMain.GridSocketInfoDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
S: string;
R: TRect;
begin
with Sender as TStringGrid do
begin
// 背景:选中高亮,否则用网格底色
if gdSelected in State then
begin
Canvas.Brush.Color := clHighlight;
Canvas.Font.Color := clHighlightText;
end
else
begin
Canvas.Brush.Color := Color;
Canvas.Font.Color := Font.Color;
end;
Canvas.FillRect(Rect);
S := Cells[ACol, ARow];
if S <> '' then
begin
R := Rect; // 局部副本,避免 DrawText 改写原 Rect 影响别处
DrawText(Canvas.Handle, PChar(S), Length(S), R,
DT_CENTER or DT_SINGLELINE or DT_VCENTER or DT_END_ELLIPSIS);
end;
end;
end;
procedure TFrmMain.GridSocketInfoDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
var
S: string;
R: TRect;
begin
with Sender as TStringGrid do
begin
// 背景:选中高亮,否则用网格底色
if gdSelected in State then
begin
Canvas.Brush.Color := clHighlight;
Canvas.Font.Color := clHighlightText;
end
else
begin
Canvas.Brush.Color := Color;
Canvas.Font.Color := Font.Color;
end;
Canvas.FillRect(Rect);
S := Cells[ACol, ARow];
if S <> '' then
begin
R := Rect; // 局部副本,避免 DrawText 改写原 Rect 影响别处
DrawText(Canvas.Handle, PChar(S), Length(S), R,
DT_CENTER or DT_SINGLELINE or DT_VCENTER or DT_END_ELLIPSIS);
end;
end;
end;
|
|