📄 unit_mainbak.pas
字号:
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 + -