关于StringGrid的行和列动态重绘的问题(100分)

  • 主题发起人 主题发起人 笨笨的Delphi入门者
  • 开始时间 开始时间

笨笨的Delphi入门者

Unregistered / Unconfirmed
GUEST, unregistred user!
假设我在StringGrid中RowCount和ColCount的初值都为4
也就是除了列标题和行标题有一个3×3的网格
我想在程序运行中,如果检测到用户在最后一行输入,就自动的增加一行
同理,如果检测到用户在最后一列输入,就自动的增加一列。
同时保持原来用户输入的信息不会丢失,即使他还没有存档。

希望哪位大侠教教我,希望提供源码级的支持,^_^
这是我第一次在这里发文,如果觉得分值低了,问题解决了,我自然跟你加上,谢谢
 
那么最后一行的最后一列呢? 是不是只要有输入,不管打没打回车?
 
是是是,大侠救我~~~~~~~~~~~
 
设置 stringGrid 的 goEditing 为true

在 TStringGrid 的 OnKeyPress 中进行处理:

procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
with stringGrid1 do
begin
if Col=colCount-1 then colCount:=colCount+1;
if row=rowCount-1 then rowCount:=rowCount+1;
end;
end;
 
呵呵,问题我自己已经解决了,我用的是OnSetEditText()函数
procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol,
ARow: Integer; const Value: String);
begin
if ACol=ColCount-1 then
ColCount:=ColCount+1;
if ARow=rowCount-1 then
RowCount:=RowCount+1;
end;
不过,我既然问了,就给你100分吧,呵呵,希望下次有问题时,你还能帮我
 
接受答案了.
 
后退
顶部