⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit_mainbak.pas

📁 DELPHI的报表控件
💻 PAS
📖 第 1 页 / 共 3 页
字号:
      Reg.WriteString('SaveDir','Dir1',Str);
      OpenDialog1.InitialDir:=Str;
      SaveDialog1.InitialDir:=Str;
    finally
      reg.Free;
    end;
end;

procedure TFormMain.N5Click(Sender: TObject);
begin
  RichEdit1.CutToClipboard;
end;

procedure TFormMain.N6Click(Sender: TObject);
begin
  RichEdit1.CopyToClipboard;
end;

procedure TFormMain.N7Click(Sender: TObject);
begin
  RichEdit1.PasteFromClipboard;
end;

procedure TFormMain.PopupMenu1Popup(Sender: TObject);
begin
  if PopupMenu1.Tag =0 then
  begin
    N5.Enabled:=RichEdit1.SelLength>0;
    N6.Enabled:=N5.Enabled;
    N7.Enabled:=Clipboard.AsText<>'';
  end
  else begin
    N5.Enabled:=RichEdit1.SelLength>0;
    N6.Enabled:=N5.Enabled;
    N7.Enabled:=Clipboard.AsText<>'';
  end;
  N1.Enabled:=RichEdit1.Text<>'';
end;

procedure TFormMain.TreeView1GetImageIndex(Sender: TObject;
  Node: TTreeNode);
var
  Tmp_Str: String;
begin
//  Tmp_Str := TreeViewEn1.GetPath(Node);
  node.ImageIndex := node.Level+1;

end;

procedure TFormMain.TreeView1Change(Sender: TObject; Node: TTreeNode);
var
  i : integer;
begin
  case node.Level of
  0: begin
       PageControl1.Pages[0].TabVisible := False;
       PageControl1.Pages[1].TabVisible := False;
       PageControl1.Pages[2].TabVisible := False;
     end;
  1: begin
       PageControl1.Pages[0].TabVisible := True;
       PageControl1.Pages[1].TabVisible := False;
       PageControl1.Pages[2].TabVisible := Node.Data=Pointer(1);
       ShapeEx1.Items[0,0] := 'Type';
       ShapeEx1.Items[0,1] := Session.GetAliasDriverName(Node.Text);
       Session.GetAliasParams(Node.Text,TmpStrList);
       TmpStrList.Sort;
       ShapeEx1.RowCount := TmpStrList.Count+1;
       For i:= 0 to TmpStrList.Count-1 do
       begin
         ShapeEx1.Items[i+1,0] := TmpStrList.Names[i];
         ShapeEx1.Items[i+1,1] := TmpStrList.Values[TmpStrList.Names[i]];
       end;
     end;
  2: begin
       PageControl1.Pages[0].TabVisible := False;
       PageControl1.Pages[1].TabVisible := False;
       PageControl1.Pages[2].TabVisible := True;
     end;
  3: begin
       PageControl1.Pages[0].TabVisible := True;
       PageControl1.Pages[1].TabVisible := True;
       PageControl1.Pages[2].TabVisible := True;
       if Node.Parent.Index = 0 then
       begin
         Table1.Close;
         Table1.DatabaseName := Node.Parent.Parent.Text;
         Table1.TableName := Node.Text;
         Table1.Open;
         if TreeView1.Selected.Data=Pointer(0) then
         begin
           TreeView1.Items.AddChildFirst( TreeView1.Selected,'Fields');
           TreeView1.Items.AddChild(TreeView1.Selected,'Indexes');
           TreeView1.Selected.Data := Pointer(1);
         end;
  //       TreeView1.Selected.Expand;
       end;
     end;
  end;
end;

procedure TFormMain.TreeView1Expanding(Sender: TObject; Node: TTreeNode;
  var AllowExpansion: Boolean);
var
  i:integer;
  TD :TDataBase;
  NeedSysTable : Boolean;
//TmpNode : TTreeNode;
begin
  if TreeView1.Tag <> -1 then
  begin
    AllowExpansion := False;
    Exit;
  end;
  case Node.Level of
  1: if Integer(Node.Data)=0 then begin
{       TRY
         Session.FindDatabase(Node.Text).Connected := TRUE;
         AllowExpansion :=  TRUE;
       Except
         AllowExpansion := false;
       end;    }
//       if Node.Count=0 then TreeViewEn1.Items.AddChildObjectFirst(Node,'Tables',0);
       if (Node.Item[0].Data=Pointer(0)) then TreeView1.Items.AddChildObjectFirst(Node.Item[0],'X',Pointer(10));
       if Session.GetAliasDriverName(Node.Text)<>'STANDARD' then
           try
             Session.OpenDatabase(Node.Text);
           except
             AllowExpansion := False;
           end;
       if AllowExpansion then Node.Data := Pointer(1);
       PageControl1.Pages[2].TabVisible := AllowExpansion;
     end;
    2: if (Node.Count=1) and (Integer(Node.Data)=0) then
       begin
         Node.item[0].Delete;
         Node.Data := Pointer(1);
         NeedSysTable := Session.GetAliasDriverName(Node.Parent.Text)='STANDARD';
         Session.GetTableNames(Node.Parent.Text,'',NeedSysTable,False,TmpStrList);
         if TmpStrList.Count>0 then
         begin
           TmpStrList.Sort;
           AddSubStrings(Node,TmpStrList);
         end
         else AllowExpansion := False;
       end;
  end;
end;

procedure TFormMain.AddSubStrings(Node: TTreeNode; StrList: TStrings);
var
  TmpNode : TTreeNode;
  i,j,Low:integer;
begin
  if StrList.Count>0 then
  begin
    j := Node.Count;
    if j=0 then
    begin
      TmpNode := TreeView1.Items.AddChildObjectFirst(Node,StrList.Strings[0],0);
//      TreeViewEn1.Items.AddChildObjectFirst(TmpNode,'Tables',0);
      Low := 1;
    end else Low := 0;
    ProgressBar1.Visible := tRUE;
    ProgressBar1.Max := StrList.Count-Low;
    For i:= Low to StrList.Count-1 do
    begin
      TmpNode := TreeView1.Items.AddChildObject(Node,StrList.Strings[i],0);
      ProgressBar1.StepIt;
//      TreeViewEn1.Items.AddChildObjectFirst(TmpNode,'Tables',0);
    end;
    ProgressBar1.Visible := False;
  end;
end;

procedure TFormMain.TreeView1CustomDrawItem(Sender: TCustomTreeView;
  Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  if cdsSelected in State then
  begin
    if (TreeView1.Tag=-1) then
      TreeView1.Canvas.Font.Color := clYellow
    else begin
      TreeView1.Canvas.Font.Style := [fsBold];
      TreeView1.Canvas.Font.Color := clAqua;
    end;
  end;
  if (Node.Level=1) and (integer(Node.Data)=1) then begin
    if not(cdsSelected in State) then TreeView1.Canvas.Font.Color := clNavy;
    TreeView1.Canvas.Font.Style := [fsBold];
  end;
end;

procedure TFormMain.TreeView1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  P : TPoint;
begin
  if (mbRight=Button) then
  begin
    TmpNode := TreeView1.GetNodeAt(X,Y);
    if (TmpNode <> nil) and (TreeView1.Selected <> TmpNode) then TreeView1.Selected := TmpNode;
    if (TmpNode <> nil) and ((TmpNode.Level>0) or (TmpNode.Level<4))
    then begin
      P := TreeView1.ClientToScreen(Point(x,y));
      PopupMenu2.Popup(P.X,P.Y);
    end;
  end;
end;

procedure TFormMain.Open1Click(Sender: TObject);
begin
  TreeView1.Selected.Expand(False);
end;

procedure TFormMain.Close1Click(Sender: TObject);
var
  TD :TDataBase;
begin
  with TreeView1.Selected do
  if Integer(Data)=1 then
  begin
    Collapse(False);
    Item[0].DeleteChildren;
    TD := Session.FindDatabase(Text);
    if (TD <> nil) then TD.Connected := False;
    Data := 0;
    Item[0].Data := 0;
  end;
end;

procedure TFormMain.ShapeEx1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  RichEdit1.Lines.Add(inttostr(ShapeEx1.VertScrollBar.Range));
end;

procedure TFormMain.TreeView1Collapsing(Sender: TObject; Node: TTreeNode;
  var AllowCollapse: Boolean);
var
  i:integer;
  TD : TDataBase;
begin
  case Node.Level of
  1: begin
       if Integer(Node.Data)=1 then
       begin
         if Session.GetAliasDriverName(Node.Text)<>'STANDARD'
           then begin
             TD := Session.FindDatabase(Node.Text);
             if TD<>nil then TD.Connected := False;
           end;
       end;
     end;
    2: ;
  end;


end;

procedure TFormMain.PopupMenu2Popup(Sender: TObject);
begin
with TreeView1.Selected do
begin
  case Level of
  1 : begin
        if Data = Pointer(0)
          then begin Open1.Enabled := True; Close1.Enabled := False; end
          else begin Open1.Enabled := False; Close1.Enabled := True; end;
      end;
  2 : begin
        Open1.Enabled := not Expanded;
        Close1.Enabled := Expanded;
      end;
  else begin
    Open1.Enabled := False;
    Close1.Enabled := False;
  end;
  end;
  Rename1.Enabled := (Level=1) and (Data=Pointer(0)) or (Level=3);  
  Apply1.Enabled := (TreeView1.Tag <> -1) and (Level=1);
  Refresh1.Enabled := Close1.Enabled;
  Delete1.Enabled := (Level=1) and (Data=Pointer(0)) or (Level=3);
  New1.Enabled := TreeView.Tag = -1;
end;
end;

procedure TFormMain.ShapeEx1CellEdit(Sender: TObject; Row, Col: Integer;
  var AllowEditing: Boolean);
begin
//  Caption := inttostr(col);
  AllowEditing := Col=1;
end;

procedure TFormMain.Rename1Click(Sender: TObject);
var
//  P : TPoint;
  Htm : HTreeItem;
  NewName,ExtName : String;
  TD :TDataBase;
begin
  case TreeView1.Selected.Level of
  1: begin
       Htm := TreeView_GetSelection(TreeView1.Handle);
       TreeView1.Perform(TVM_EDITLABEL,0,Integer(Htm));  // TVM_SORTCHILDREN
     end;
  3: if (TreeView1.Selected.Parent.Index=0) then begin
       NewName := TreeView1.Selected.Text;
       ExtName := ExtractFileExt(NewName);
       if InputQuery2('Sae As NewTable','New TableName',NewName) then
       if ShapeEx1.Items[0,1]='STANDARD' THEN
       begin
         Table1.Close;
         Session.GetTableNames(TreeView1.Selected.Parent.Parent.Text,'',True,False,TmpStrList);
         NewName := ExtractFileName(NewName);
         if TmpStrList.IndexOf(NewName+'.'+ExtName)>=0 then
         begin
           ShowMessage(NewName);
           ShowMessage('已经存在相同名字的表名,请重新指定新表名。')
         end
         else begin
           Table1.RenameTable(NewName);
           TreeView1.Selected.Text := NewName+'.'+ExtName;
         end;
       end
       ELSE Begin
         TD := Session.FindDatabase(TreeView1.Selected.Parent.Parent.Text);
         if TD<>nil then begin
           TD.Execute('select * from '+TreeView1.Selected.Text+' into '+NewName);
           TD.Execute('Drop table '+TreeView1.Selected.Text);
           TreeView1.Selected.Text := NewName+'.'+ExtName;
         end;
       end;
     end;
  end;
end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -