我想实现在StringGrid上的某个单元格上点击一下,就在对应的单元里打上√,本来有√的清空。我在它的OnDrawCell里写一了一段代码,出现的问题是,不断的打√然后清空,单元格不断闪烁。
procedure TFrm_select.sg1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if (Acol <> 0) and (ARow <> 0) then
begin if ARow mod 2 = 0 then
begin
sg1.Canvas.Brush.Color := clSkyBlue;
sg1.Canvas.Brush.Style := bsSolid;
sg1.Canvas.FillRect(Rect);
end; if gdSelected in State then
if trim(sg1.Cells[ACol,ARow]) = '' then
sg1.Cells[ACol,ARow] := '√'
else
sg1.Cells[ACol,ARow] := '' ;
end;
end;
麻烦高手指点一下,应该怎么写。
procedure TFrm_select.sg1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if (Acol <> 0) and (ARow <> 0) then
begin if ARow mod 2 = 0 then
begin
sg1.Canvas.Brush.Color := clSkyBlue;
sg1.Canvas.Brush.Style := bsSolid;
sg1.Canvas.FillRect(Rect);
end; if gdSelected in State then
if trim(sg1.Cells[ACol,ARow]) = '' then
sg1.Cells[ACol,ARow] := '√'
else
sg1.Cells[ACol,ARow] := '' ;
end;
end;
麻烦高手指点一下,应该怎么写。
解决方案 »
- panel上动态增加多个image控件。并且可以随意拖动图片位置??
- 高分帮我的小孩起个名字!
- 在系统托盘建立了一个图标和谈出菜单,菜单谈出后不能消失怎么办?
- 哪里有Delphi7下载呀?
- 使用ADOQuery,可以用Parambyname吗?我的出错啊,帮看看,谢谢了!
- 从SQL里边读出来的bin类型字段的值,怎样写入Access数据库?(ADO)
- Delphi中的TProgressBar
- 获取 MP3 文件信息
- 怎么将treeview 中的内容 显示在listview中
- 各位,怎么 delphi 6 没有了 NULL ????????
- 求教!!!急!
- 谁有用过Indy的IdTCPServer控件?是否每个接入的客户端都会自动产生一个线程?
sg1.Cells[ACol,ARow] := '' ;
这不是互相排斥吗?
procedure TFrm_select.sg1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);begin
if trim(sg1.Cells[ACol,ARow]) = '' then
hasvalue := False
else
hasvalue := true ; sg1SetEditText(self, ACol, ARow,'');
end;
procedure TFrm_select.sg1SetEditText(Sender: TObject; ACol, ARow: Integer;
const Value: String);
begin
if not hasvalue then
sg1.Cells[ACol,ARow] := '√'
else
sg1.Cells[ACol,ARow] := '' ;end;
ARow: Integer; var CanSelect: Boolean);
begin
if StringGrid1.Cells[ACol,ARow]='√' then
StringGrid1.Cells[ACol,ARow]:=''
else
StringGrid1.Cells[ACol,ARow]:='√';
end;不就可以了,呵,给我分吧