type TStringGridEx = class(TStringGrid);procedure TForm1.Button1Click(Sender: TObject); begin TStringGridEx(StringGrid1).DeleteRow(5); end;引自:http://community.csdn.net/Expert/topic/4244/4244854.xml?temp=.1345331
或者把这句加在Tform1定义前面 type TStringGrid = class(TDrawGrid); 然后就可以用stringgrid1.deleterow函数了。
我用的这个,但是我不知道怎样去用它的双击事件啊。 sgringgrid.Dblclick
我定义这样一个类: type TExCell=class(TStringGrid) public procedure DeleteRow(ARow: Longint); end; 这是那个过程: procedure TExCell.DeleteRow(ARow: Longint); begin MoveRow(ARow,RowCount-1); RowCount:=RowCount-1; end;然后我在窗体初始化的时候来创建一个: sg_splr:=TExCell.Create(application); sg_splr.Parent := groupbox2; 这一切都没有问题。但是它的双击事件我应该怎么调用啊。我在双击他的时候要把获得焦点的这一行的数据放到EDIT里面。然后修改完成后在放回去。
procedure TForm1.StringGrid1DblClick(Sender: TObject); begin showmessage(stringgrid1.Rows[stringgrid1.row].Strings[0]); end;
type TExCell=class(TStringGrid) private FEdit: TEdit; public procedure DeleteRow(ARow: Longint); procedure StringgridDblClick(Sender: TObject); published property Edit:TEdit read FEdit Write FEdit; end; procedure TExCell.DeleteRow(ARow: Longint); begin MoveRow(ARow,RowCount-1); RowCount:=RowCount-1; end; procedure TExCell.StringgridDblClick(Sender: TObject); begin Edit.Text:=TExCell(Sender).Cells[1,1];// end; sg_splr:=TExCell.Create(application); sg_splr.Parent := groupbox1; sg_splr.Edit:=Form1.Edit1; sg_splr.OnDblClick:=sg_splr.StringgridDblClick;
procedure TExCell.StringgridDblClick(Sender: TObject); var i:integer; begin for i:=0 to ColCount-1 do begin Edit.Text:=Edit.Text+Cells[i,Row]; end; end;
TStringGridEx = class(TStringGrid);procedure TForm1.Button1Click(Sender: TObject);
begin
TStringGridEx(StringGrid1).DeleteRow(5);
end;引自:http://community.csdn.net/Expert/topic/4244/4244854.xml?temp=.1345331
type
TStringGrid = class(TDrawGrid);
然后就可以用stringgrid1.deleterow函数了。
sgringgrid.Dblclick
type
TExCell=class(TStringGrid)
public
procedure DeleteRow(ARow: Longint);
end;
这是那个过程:
procedure TExCell.DeleteRow(ARow: Longint);
begin
MoveRow(ARow,RowCount-1);
RowCount:=RowCount-1;
end;然后我在窗体初始化的时候来创建一个:
sg_splr:=TExCell.Create(application);
sg_splr.Parent := groupbox2;
这一切都没有问题。但是它的双击事件我应该怎么调用啊。我在双击他的时候要把获得焦点的这一行的数据放到EDIT里面。然后修改完成后在放回去。
begin
showmessage(stringgrid1.Rows[stringgrid1.row].Strings[0]);
end;
TExCell=class(TStringGrid)
private
FEdit: TEdit;
public
procedure DeleteRow(ARow: Longint);
procedure StringgridDblClick(Sender: TObject);
published
property Edit:TEdit read FEdit Write FEdit;
end;
procedure TExCell.DeleteRow(ARow: Longint);
begin
MoveRow(ARow,RowCount-1);
RowCount:=RowCount-1;
end;
procedure TExCell.StringgridDblClick(Sender: TObject);
begin
Edit.Text:=TExCell(Sender).Cells[1,1];//
end;
sg_splr:=TExCell.Create(application);
sg_splr.Parent := groupbox1;
sg_splr.Edit:=Form1.Edit1;
sg_splr.OnDblClick:=sg_splr.StringgridDblClick;
这个你好好看看啦,不错的帖子。
var i:integer;
begin
for i:=0 to ColCount-1 do
begin
Edit.Text:=Edit.Text+Cells[i,Row];
end;
end;