发信人: teleme@GZ() 
整理人: teleme(2001-02-12 19:39:19), 站内信件
 | 
 
 
 标  题: Re: 怎样获得DBGrid中的cell的坐标??? 发信站: 网易虚拟社区 (Wed Nov 29 18:49:06 2000), 站内信件
  //新建一个工程,在窗体上加一个StringGrid,
 //下面是unit1.pas
 
 
 unit Unit1;
 
 interface
 
 uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dia logs,
   Grids;
 
 type
   TForm1 = class(TForm)
     StringGrid1: TStringGrid;
     procedure FormCreate(Sender: TObject);
     procedure StringGrid1DblClick(Sender: TObject);
     procedure StringGrid1MouseDown(Sender: TObject; Button: TMouseButt on;
       Shift: TShiftState; X, Y: Integer);
     procedure StringGrid1Click(Sender: TObject);
   private
     { Private declarations }
   public
     { Public declarations }
   end;
 
 var
   Form1: TForm1;
 
 implementation
 
 const
 WeekDayName :Array[1..7] of String=('星期一','星期二','星期三','星期四 ','星期五','星期六','星期日');
 
 
 var
 X_Pos,Y_Pos:integer;//鼠标在窗体的位置
 Col_Pos,Row_Pos:integer;//单元位置
 
 
 
 {$R *.DFM}
 
 procedure TForm1.FormCreate(Sender: TObject);
 
 var
 i:integer;
 begin
 Application.HintPause:=100;
 Font.Size :=10;
 Caption:='STring岩石程序';
 
 StringGrid1.ShowHint :=True;
 StringGrid1.ColCount :=8;
 StringGrid1.RowCount :=12;
 StringGrid1.Cells[0,0]:='第18周';
 for i:=1 to StringGrid1.ColCount -1  do
 StringGrid1.Cells[i,0]:=WeekDayName[i];
 for i:=1 to StringGrid1.RowCount -1 do
  StringGrid1.Cells[0,i]:=InttoStr(i+7)+':00';
  StringGrid1.Options :=StringGrid1.Options+[goTabs,goROwSizing,goColSi zing]-[goEditing];
 
 end;
 
 
 procedure TForm1.StringGrid1DblClick(Sender: TObject);
 var
 SchemeItem:String;
 begin
 StringGrid1.MouseToCell(X_Pos,Y_Pos,Col_Pos,Row_Pos) ;  //转换到单位位 置
 
 if (Col_Pos<0 )or (Row_Pos<0 ) then
  Exit;
 
  if (StringGrid1.Cells[Col_Pos,Row_Pos]<>''  ) then //取消计划概要
  begin
 
  StringGrid1.Cells[Col_Pos,Row_Pos]:='';
  Exit;
 
  end;
 
  SchemeItem:=InputBox('提示','请输入计划概要:','会议');
  StringGrid1.Cells[Col_Pos,Row_Pos]:=SchemeItem;
 
  End;
 
 
 
 procedure TForm1.StringGrid1MouseDown(Sender: TObject;
   Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
 begin
 X_Pos:=x;
 Y_Pos:=y;
 end;
 
 procedure TForm1.StringGrid1Click(Sender: TObject);
 begin
     StringGrid1.MouseToCell(X_Pos,Y_Pos,Col_Pos,Row_Pos);//转化到单元位 置
     StringGrid1.Hint :=StringGrid1.Cells[Col_Pos,Row_Pos];//暂时借用该 特性显示工作计划
      
 end;
 
 end.
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.106.104.36]
  | 
 
 
 |