我也是查以前的贴知道的
procedure TZFMF.GridZHJDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
vText:PChar;
begin
with TStringGrid(Sender) do
begin
if ARow=0 then Canvas.font.color:=clMaroon
else Canvas.font.color:=clWindow;//clBlack;
vText := PChar(Cells[ACol, ARow]);
Canvas.FillRect(Rect);
DrawText(Canvas.Handle, vText, StrLen(vText), Rect,
DT_CENTER or DT_VCENTER or DT_SINGLELINE); //<<--
{ TODO : 修改对齐方式 }
if gdFocused in State then begin
Rect.Left := Rect.Left + 1;
Rect.Top := Rect.Top + 1;
Rect.Right := Rect.Right - 1;
Rect.Bottom := Rect.Bottom - 1;
Canvas.DrawFocusRect(Rect);
end;
end; end;
procedure TZFMF.GridZHJDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
vText:PChar;
begin
with TStringGrid(Sender) do
begin
if ARow=0 then Canvas.font.color:=clMaroon
else Canvas.font.color:=clWindow;//clBlack;
vText := PChar(Cells[ACol, ARow]);
Canvas.FillRect(Rect);
DrawText(Canvas.Handle, vText, StrLen(vText), Rect,
DT_CENTER or DT_VCENTER or DT_SINGLELINE); //<<--
{ TODO : 修改对齐方式 }
if gdFocused in State then begin
Rect.Left := Rect.Left + 1;
Rect.Top := Rect.Top + 1;
Rect.Right := Rect.Right - 1;
Rect.Bottom := Rect.Bottom - 1;
Canvas.DrawFocusRect(Rect);
end;
end; end;
解决方案 »
- delphi控制word问题2
- 急需DELPHI线程池代码,准备做完成端口
- 子窗体最小化为什么不在任务栏显示?怎么样才能让他在任务栏显示啊?救救小弟吧,多谢了.
- 求一简单的delphi函数
- 点击treeview某一项时,如何得到该项的值?
- 用delphi6的ADOConnection 连接oracle数据库的问题
- 在应用程序服务器端编写的类,怎么在客户端应用程序创建该类的对象?
- 連Linux 下面的Oracle數據庫問題﹖
- 检测HTTP文件头,再未请求前更改域名!
- 关于SQL语句的问题!!!!
- 新手的问题,来者有分。
- 比较难的问题!如何截获其它的程序中控件的事件??比如:写字板里文本改动的onchange事件?或者"file"菜单按下的事件?
这个控件我也一直在用,可是,这些问题却一直得不到很好的解决。在许多情况下都是用stringgrid来代替dbgrid。谁有好的办法说说看。
procedure TForm2.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
Txt:String;
begin
Txt:=StringGrid1.Cells[ACol,ARow];
StringGrid1.Canvas.Rectangle(Rect);
DrawText(StringGrid1.Canvas.Handle,
Pchar(Txt),
Length(Txt),
Rect,
DT_CENTER or DT_VCENTER );
//在StringGrid单元格画内画字符串
end;
begin
with stringgrid1 do
begin
if col=4 then
options:=[goFixedVertLine,goFixedHorzLine,goColMoving,goEditing]
else
options:=[goFixedVertLine,goFixedHorzLine,goColMoving]
end;
end;
1)在StringGrid的KeyPress事件中加入
key := #0
2)在StringGrid的OnSelectCell事件中
if(ACol = 某列值) then CanSelect := false;