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

作为一个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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值