右键点击修改Grid的单列值,及修改全表的值,还有相同点击事件的代码简化,及如何双击关闭一个tabsheet

2138人阅读 评论(0) 收藏 举报

作为一个delphi初学者来说,自己得来的经验十分珍贵,今天由于新建了一个windows新账户差点导致原来放在桌面上的代码无法找回,现把它们记录下来,及备后用


  1. procedure TfrmServerSetup.DBAdvStringGrid1MouseDown(Sender: TObject;
  2.   Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  3. Var
  4.   s:string;
  5.   GrdCrd: TGridCoord;
  6. begin
  7.   GrdCrd := TDBAdvStringGrid(Sender).MouseCoord(X, Y);
  8.   if Button=mbRight then
  9.   begin
  10.   s:=inputbox('修改列值','输入值','0');
  11.    //这里要设置这些Grid的tag属性,把sender强制转换为TDBAdvStringGrid类型,根据tag判断是哪一个Grid
  12.     case TDBAdvStringGrid(sender).Tag of
  13.     1: ColumnModify(GrdCrd.X,s,adotable1);
  14.     2: ColumnModify(GrdCrd.X,s,adotable2);
  15.     3: ColumnModify(GrdCrd.X,s,adotable3);
  16.     4: ColumnModify(GrdCrd.X,s,adotable4);
  17.     5: ColumnModify(GrdCrd.X,s,adotable5);
  18.     6: ColumnModify(GrdCrd.X,s,adotable6);
  19.     end;
  20.   end;
  21. end;
  22. procedure TfrmServerSetup.DataProcess(str:string;adotb:TADOTable);
  23. var
  24.   i:integer;
  25. begin
  26.   with adotb do
  27.   while not eof do
  28.   begin
  29.     i:=0;
  30.     while i<=23 do
  31.     begin
  32.       edit;
  33.       adotb.fieldvalues['time'+inttostr(i)]:=str;
  34.       i:=i+1;
  35.     end;
  36.     adotb.Next;
  37.   end;
  38. end;
  39. procedure TfrmServerSetup.BitBtn3Click(Sender: TObject);
  40. Var
  41.   s:string;
  42. begin
  43.    s:=inputbox('修改全表','输入值','0');
  44.    if pagecontrol1.ActivePage=tabsheet1 then
  45.    begin
  46.      DataProcess(s,adotable1);
  47.    end;
  48.    if pagecontrol1.ActivePage=tabsheet2 then
  49.    begin
  50.      DataProcess(s,adotable2);
  51.    end;
  52.    if pagecontrol1.ActivePage=tabsheet3 then
  53.    begin
  54.      DataProcess(s,adotable3);
  55.    end;
  56.    if pagecontrol1.ActivePage=tabsheet4 then
  57.    begin
  58.      DataProcess(s,adotable4);
  59.    end;
  60.    if pagecontrol1.ActivePage=tabsheet5 then
  61.    begin
  62.      DataProcess(s,adotable5);
  63.    end;
  64.    if pagecontrol1.ActivePage=tabsheet6 then
  65.    begin
  66.      DataProcess(s,adotable6);
  67.    end;
  68. end;
  69. //左键双击关闭pagecontrol中的一个分页即一个tabsheet,功能像遨游浏览器一样
  70. procedure TfrmServerSetup.PageControl1MouseDown(Sender: TObject;
  71.   Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  72. var
  73.  Index: Integer;
  74. begin
  75.  //左键点击并且双击
  76.  if (Button = mbLeft) and (ssDouble in Shift) then
  77.  begin
  78.    Index := PageControl1.IndexOfTabAt(X, Y);
  79.    if Index >= 0 then
  80.      PageControl1.Pages[Index].Free;
  81.  end;
  82. end

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4385211次
    • 积分:60270
    • 等级:
    • 排名:第45名
    • 原创:1198篇
    • 转载:573篇
    • 译文:7篇
    • 评论:1093条
    yes
    文章存档
    最新评论
    Asp.net