<font color=red>关于TStringGrid控件的两个简单问题!!!</font>(200分)

  • 主题发起人 主题发起人 honestman
  • 开始时间 开始时间
H

honestman

Unregistered / Unconfirmed
GUEST, unregistred user!
1、在TStringGrid控件中,如果选择了多行,我在程序中怎么知道我究竟选择了哪几行?
  <b>这是简单问题,热热身!</b>
2、不用第三方控件的情况下,在TStringGrid控件中,我的操作是把TQuery控件中的数据
  读到TStringGrid控件的。如何点击了某列的标题就自动按该列排序?特别地,我在
  Options中选择了goRowSelect,还可以点击了某列的标题就自动按该列排序吗?
  <b>这个问题我认为比较复杂,要让我把程序弄出来才算完成。</b>
 
1.
var
myRect: TGridRect;
begin
myRect:=StringGrid1.Selection;
showmessage(inttostr(myrect.left)
+inttostr(myrect.right)
+ inttostr(myrect.top)
+inttostr(myrect.bottom));

end;
 
procedure TForm1.StringGrid1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
Column, Row: Longint;
begin
stringgrid(Sender).MouseToCell(x,y,Column, Row);
if row=0 then
begin
if column>0 then
//得到是那一列用QYERY排序,你自己写吧,我要去睡觉了
SortByColumn(Column);
end;
end;
 
Tstringgrid(Sender).MouseToCell(x,y,Column, Row);
 
不好意思,第1个问题我说得不够好!
我希望可以仅仅选择第1行和第3行,而不选择第2行。而且知道我选择了哪几行?
 
stringgrid好象没有这么功能吧,作完了,也可以成为一个新的控件了!
 
多人接受答案了。
 
后退
顶部