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

📄 mainunit.pas

📁 一个简单的管理系统
💻 PAS
📖 第 1 页 / 共 5 页
字号:
   AviForm.Show;
   TreeView1.Items.BeginUpdate;
   //currentdir:=GetCurrentDir();
   ChDir(Dir);
   Try
   ImportFromDir(TreeView1.Selected);
   TreeView1.CustomSort(@MyCustomSortProc,0);
   finally
      AviForm.Close;
      AviForm.Free;
      TreeView1.Items.EndUpdate;
      Screen.Cursor:=crDefault;
   end;
   Statusbar1.Panels[2].Text:=intToStr(GetPicOrFolderCount(1));
   Statusbar1.Panels[4].Text:=intToStr(GetPicOrFolderCount(0));
end;

procedure TForm1.DelAddBookMark(ID: Integer;bm: Boolean);       //删除添加书签
var                                           //true添加书签,False删除书签
  query:TADOQuery;
begin
   query:=TADOQuery.Create(self);
   try
       query.Connection:=ADOConnection1;
       query.Close;
       query.SQL.Clear;
       query.SQL.Add('select * from PData where ID='+intToStr(ID));
       Query.Open;
       query.First;
       Query.Edit;
       query.FieldByName('BMark').AsBoolean:=bm;
       query.Post;
       query.Close;
   finally
       query.Free;
   end;
end;

procedure TForm1.AddBookMarkMenuClick(Sender: TObject);
begin
    if pagecontrol1.ActivePage<>TreeTab then PageControl1.ActivePage:=TreeTab;
    if (TreeView1.Selected=nil) or (TreeView1.Selected.ImageIndex<>0) then exit;
    DelAddBookMark(NodeData(TreeView1.Selected.Data).ID,true);
    TreeView2.Items.AddObject(nil,Treeview1.Selected.Text,TreeView1.Selected.Data);
end;

procedure TForm1.PrintMenuClick(Sender: TObject);
var
   image:Timage;
begin
  // if PageControl1.ActivePage<>TreeTab then PageControl1.ActivePage:=TreeTab;
   IF ((TreeView1.Selected<>nil) and (TreeView1.Selected.ImageIndex=0))
      or (TreeView2.Selected<>nil) or (TreeView3.Selected<>nil) then
   begin
       if (ZoomOut=1.0) and (ZoomIn=1.0) then image:=Image1 else image:=image2;
       PrintPicture(Image,1);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);    //查找
var
   i:integer;
begin
   if Edit1.Text='' then exit;
   Button1.Enabled:=false;
   TreeView3.Items.Clear;
   for i:=0 to TreeView1.Items.Count-1 do
   begin
       if (pos(LowerCase(Edit1.Text),LowerCase(TreeView1.Items.Item[i].Text))<>0) and (TreeView1.Items.Item[i].ImageIndex=0) then
           TreeView3.Items.AddObject(nil,TreeView1.Items.Item[i].Text,TreeView1.Items.Item[i].Data);
   end;
   Button1.Enabled:=True;
end;

procedure TForm1.TreeView2DblClick(Sender: TObject);
var
   i:integer;
begin
   if TreeView2.Selected=nil then exit;
   for i:=0 to TreeView1.Items.Count-1 do
   begin
       if NodeData(TreeView2.Selected.Data).ID=NodeData(TreeView1.Items.Item[i].Data).ID then
       begin
           PageControl1.ActivePage:=TreeTab;
           TreeView1.Items.Item[i].Expanded:=true;
           TreeView1.Items.Item[i].Selected:=true;
           break;
       end;
   end;
end;

procedure TForm1.TreeView3DblClick(Sender: TObject);
var
   i:integer;
begin
   if TreeView3.Selected=nil then exit;
   for i:=0 to TreeView1.Items.Count-1 do
   begin
       if NodeData(TreeView3.Selected.Data).ID=NodeData(TreeView1.Items.Item[i].Data).ID then
       begin
           PageControl1.ActivePage:=TreeTab;
           TreeView1.Items.Item[i].Expanded:=true;
           TreeView1.Items.Item[i].Selected:=true;
           break;
       end;
   end;
end;

procedure TForm1.DelPMenuClick(Sender: TObject);
begin
     if TreeView2.Selected=nil then exit;
     If messagedlg('确认删除书签吗?',mtInformation,[mbYES,mbNO],0)<>mrYes then exit;
     DelAddBookMark(NodeData(TreeView2.Selected.Data).ID,False);
     TreeView2.Selected.Delete;
end;

procedure TForm1.AllDelPMenuClick(Sender: TObject);
var
   i:integer;
begin
    if TreeView2.Items.Count=0 then exit;
    If messagedlg('确认删除所有书签吗?',mtInformation,[mbYES,mbNO],0)<>mrYes then exit;
    for i:=0 to TreeView2.Items.Count-1 do
        DelAddBookMark(NodeData(TreeView2.Items.Item[i].Data).ID,false);
    TreeView2.Items.Clear;
end;

procedure TForm1.ToTreeTabPMenuClick(Sender: TObject);
begin
   TreeView2DblClick(sender);
end;

procedure TForm1.TreeView2MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  node:TTreenode;
begin
   if (Button<>mbRight) then exit;
   Node:=TreeView2.GetNodeAt(x,y);
   if Node<>nil then Node.Selected:=True;
   if node<>nil then
   begin
       DelPMenu.Enabled:=true;
       AllDelPMenu.Enabled:=true;
       ToTreetabPMenu.Enabled:=True;
   end else begin
       DelPMenu.Enabled:=false;
       AllDelPMenu.Enabled:=true;
       ToTreetabPMenu.Enabled:=false;
   end;
end;

procedure TForm1.SearchToTreeTabPMenuClick(Sender: TObject);
begin
   TreeView3DblClick(sender);
end;

procedure TForm1.SearchToBMpmenuClick(Sender: TObject);
begin
    if (TreeView3.Selected=nil) then exit;
    DelAddBookMark(NodeData(TreeView3.Selected.Data).ID,true);
    TreeView2.Items.AddObject(nil,Treeview3.Selected.Text,TreeView3.Selected.Data);
end;

procedure TForm1.TreeView3MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
   node:TTreeNode;
begin
    IF (Button<>mbRight) then exit;
    node:=TreeView3.GetNodeAt(x,y);
    IF Node<>nil then Node.Selected:=True;
    if node<>nil then
    begin
        searchToTreeTabpmenu.Enabled:=true;
        searchToBMpmenu.Enabled:=true;
    end else begin
        searchToTreeTabpmenu.Enabled:=false;
        searchToBMpmenu.Enabled:=false;
    end;
end;

procedure TForm1.TreeView2KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   if TreeView2.Selected=nil then exit;
   if key=VK_Delete then DelPMenuClick(sender);
end;

procedure TForm1.TreeView1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   if TreeView1.Selected=nil then exit;
   if key=VK_F2 then begin
       RenameMenuClick(sender);
       exit;
   end;
   if Key=VK_Delete then  DelMenuClick(sender);
end;

procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
   node:TTreenode;
begin
   IF (Button<>mbRight) then exit;
   Node:=TreeView1.GetNodeAt(x,y);
   if node<>nil then Node.Selected:=true ;
end;

procedure TForm1.ImagePopupMenuPopup(Sender: TObject);
var
  i:integer;
begin
   if ((TreeView1.Selected=nil) or (Treeview1.Selected.ImageIndex<>0)) and
      (TreeView2.Selected=nil) and (TreeView3.Selected=nil) then begin
       for i:=0 to ImagePopupmenu.Items.Count-1 do
            ImagePopupMenu.Items.Items[i].Enabled:=False;
   end else begin
        for i:=0 to ImagePopupmenu.Items.Count-1 do
            ImagePopupMenu.Items.Items[i].Enabled:=true;
   end;
end;

procedure TForm1.TreePopupMenuPopup(Sender: TObject);
var
   i:integer;
begin
    if TreeView1.Selected=nil then
    begin
       for i:=0 to TreePopupMenu.Items.Count-1 do
           TreePopupMenu.Items.Items[i].Enabled:=false;
       exit;
    end;
    if TreeView1.Selected.ImageIndex=0 then
    begin
        NewMLPopupMenu.Enabled:=true;
        NewSpMenu.Enabled:=false;
        MLPassPMenu.Enabled:=false;
        AddPicPMenu.Enabled:=false;
        ImportPMenu.Enabled:=false;
        SaveASPMenu.Enabled:=true;
        BMPMenu.Enabled:=true;
        ReNPMenu.Enabled:=true;
        NotePopupMenu.Enabled:=true;
        DelPopupMenu.Enabled:=true;
    end else
    begin
        NewMLPopupMenu.Enabled:=true;
        NewSpMenu.Enabled:=true;
        MLPassPMenu.Enabled:=true;
        AddPicPMenu.Enabled:=true;
        ImportPMenu.Enabled:=true;
        SaveASPMenu.Enabled:=false;
        BMPMenu.Enabled:=false;
        ReNPMenu.Enabled:=true;
        NotePopupMenu.Enabled:=true;
        DelPopupMenu.Enabled:=true;
    end;
end;

procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
var
   node:TTreeNode;
   NBPixels:integer;
   Info:Tscrollinfo;
begin
   Accept:=True;
   node:=Treeview1.GetNodeAt(x,y);
   if node=nil then exit;
   if (node.ImageIndex=1) and (not node.Expanded) then node.Expanded:=True;
   GetScrollInfo(Treeview1.Handle,SB_VERT,Info) ;
   if Info.nMin=Info.nMax then exit;
   NBPixels:=abs(Treeview1.Font.Height);
   if y<NBPixels then begin
       TreeView1.Perform(WM_VSCROLL,SB_LINEUP,0);
       Treeview1.Refresh;
   end;
   if (y>(TreeView1.Height-NBPixels-16))  then
   begin
       Treeview1.Perform(WM_VSCROLL,SB_LINEDOWN,0);
   end;

end;

procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
   tnode:TTreeNode;
   snode:TTreeNode;
begin
   iF TreeView1.Selected=nil then exit;
   tnode:=TreeView1.GetNodeAt(x,y);
   snode:=TreeView1.Selected;
   if (tnode=nil) or (tnode.ImageIndex=0) or (tnode=snode.Parent) then exit;
   snode.MoveTo(tnode,naAddChild);
   ModifyParent(nodedata(snode.Data).ID,nodedata(tnode.Data).ID);
end;

procedure TForm1.ModifyParent(sourceID, ParentID: Integer);
var
   query:TADOQuery;
begin
    query:=TADOQuery.Create(self);
    with query do begin
        connection:=ADOConnection1;
        close;
        sql.Clear;
        sql.Add('select * from PData where ID='+inttostr(sourceID));
        Open;
        edit;
        FieldByName('PID').AsInteger:=ParentID;
        POST;
        Free;
    end;
end;

procedure TForm1.WMDropFiles(var msg: TWMDROPFILES);
var
   count     :integer;
   buffer    :array[0..255]of char;
   i         :integer;
   pnode     :NodeData;
   node      :TTreeNode;
   fn        :string;
begin
   //showmessage('进来啰!!');
   if pageControl1.ActivePage<>TreeTab then PageControl1.ActivePage:=TreeTab;
   if Treeview1.Selected=nil then
   begin
       messagedlg('必须先选择一个目录,以便添加图片!',mtWarning,[mbOK],0);
       Exit;
   end;
   if TreeView1.Selected.ImageIndex=0 then  TreeView1.Selected.Parent.Selected:=true;
   count:=DragQueryFile(msg.Drop,$FFFFFFFF,buffer,255);
   Screen.Cursor:=crHourGlass;
   TreeView1.Items.BeginUpdate;
   aviform:=Taviform.Create(self);
   aviform.Button1.Enabled:=true;
   aviform.Label1.Caption:='';
   aviform.Label1.Visible:=true;
   aviform.stop:=false;
   AviForm.Caption:='正在添加图片,请等待...';
   AviForm.Animate1.CommonAVI:=aviCopyFiles;
   aviform.Animate1.Active:=true;
   aviform.Show;
   try
      for i:=0 to count-1 do begin
         application.ProcessMessages;
         if aviform.stop then break;
         DragQueryFile(msg.Drop,i,buffer,255);
         fn:=StrPas(buffer);
         if (LowerCase(ExtractFileExt(fn))='.jpg') or (LowerCase(ExtractFileExt(fn))='.bmp') then
         begin
            aviform.Label1.Caption:=ExtractFileName(fn);
            new(pnode);
            pnode.ID:=GetMaxID+1;
            Pnode.Password:='';
            pnode.Caption:=copy(ExtractFileName(fn),1,Length(ExtractFileName(fn))-4);
            node:=TreeView1.Items.AddChildObject(TreeView1.Selected,pnode.Caption,pnode);
            node.ImageIndex:=0;
            node.SelectedIndex:=0;
            savePicture(NodeData(TreeView1.Selected.Data).ID,node,fn) ;
         end;
      end;
      DragFinish(msg.Drop);
      aviform.Animate1.Active:=false;
      AviForm.Close;
   finally
      Screen.Cursor:=crDefault;
      TreeView1.Items.EndUpdate;
      AviFORM.Free;
   end;
    Statusbar1.Panels[2].Text:=intToStr(GetPicOrFolderCount(1));
    Statusbar1.Panels[4].Text:=intToStr(GetPicOrFolderCount(0));
end;

procedure TForm1.PrintPicture(Image: Timage;a:integer);
var
   pstream:TmemoryStream;
begin
   pstream:=TMemoryStream.Create;
   image.Picture.Graphic.SaveToStream(pstream);
   pstream.Position:=0;
   try
      case a of
         1:begin


           end;
         2:begin

           end;
         3:begin

           end;
      end;
   finally
       pstream.Free;
   end;
end;

end.

⌨️ 快捷键说明

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