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

📄 mainform.pas

📁 是一款很不错资料数据库管理软件
💻 PAS
📖 第 1 页 / 共 3 页
字号:

procedure Tmainwin.N60Click(Sender: TObject);
begin
if treeview1.Items.Count<=0 then
begin
showmessage('请先添加一个标题!');
exit;
end;
if treeview1.Selected=nil then exit;
with opendialog1 do
begin
title:='导入资料项';
defaultext:='';
filter:='文本文件[.TXT]|*.txt|奥博资料库文件[.SFD]|*.sfd';
FileName:='';
end;
if opendialog1.Execute then
  begin
  richedit1.Lines.LoadFromFile(opendialog1.filename);
  memoedited:=true;
  end;
end;

procedure Tmainwin.N65Click(Sender: TObject);
var otxtfile:textfile;
begin
if richedit1.SelLength=0 then exit;
with savedialog1 do
  begin
  title:='导出资料';
  filterindex:=1;
  defaultext:='TXT';
  filter:='文本文件[.TXT]|*.txt';
  FileName:=treeview1.Selected.Text+'_part';
end;
if savedialog1.Execute then //打开文件保存对话框
begin
assignfile(otxtfile,savedialog1.FileName);
{$i-}
rewrite(otxtfile); //建立文件
{$i+}
if ioresult<>0 then //文件建立失败
  begin
  showmessage('创建文件失败,请重试!');
  closefile(otxtfile);
  exit;
  end;
write(OtxtFile,richedit1.SelText);
closefile(otxtfile);
showmessage('恭喜:'+#10+'选中的内容已导出到['+savedialog1.FileName+']文件中!');
end;
end;

procedure Tmainwin.PopupMenu2Popup(Sender: TObject);
begin
if richedit1.SelLength=0 then n65.Enabled:=false else n65.Enabled:=true;
end;

procedure Tmainwin.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
if fileexists(datpath+trim(node.text)+'.sfd') then
begin
SendMessage(RichEdit1.Handle,WM_SETREDRAW,0,0);  //禁止重绘
richedit1.Lines.LoadFromFile(datpath+trim(node.text)+'.sfd');
SendMessage(RichEdit1.Handle,WM_SETREDRAW,-1,0);  //重绘目录树
RichEdit1.Refresh;
end
else richedit1.Lines.Clear;
panel6.Caption:=node.text;
SpeedButton1.Down:=false;
richedit1.ReadOnly:=true;
end;

procedure Tmainwin.TreeView1DragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
var Snode,Tnode:Ttreenode;
begin
if source=treeview1 then
begin
Snode:=treeview1.Selected;
Tnode:=treeview1.GetNodeAt(x,y);
if (Tnode<>nil) and (Tnode<>Snode) and (Tnode<>Snode.Parent) then
accept:=true else accept:=false;
end
else accept:=false;
end;

procedure Tmainwin.TreeView1DragDrop(Sender, Source: TObject; X,
  Y: Integer);
var Snode,Tnode : ttreenode;
begin
if source=treeview1 then
begin
Snode:=TreeView1.Selected;
Tnode:=treeview1.GetNodeAt(x,y);
if (Tnode<>nil) and (Tnode<>Snode) then
begin
Snode.MoveTo(Tnode,naAddchildFirst);
treeedited:=true;
end
else exit;
end;
end;

procedure Tmainwin.TreeView1GetSelectedIndex(Sender: TObject;
  Node: TTreeNode);
begin
if node.getFirstChild=nil then
node.selectedIndex:=3 else node.selectedIndex:=1;
end;

procedure Tmainwin.TreeView1GetImageIndex(Sender: TObject;
  Node: TTreeNode);
begin
if node.getFirstChild=nil then
node.imageIndex:=2 else node.imageIndex:=0;
end;

procedure Tmainwin.N66Click(Sender: TObject);
begin
if (treeview1.Items.Count>0) and (treeview1.selected=nil) then exit;
with opendialog1 do
begin
title:='导入资料项';
defaultext:='';
filter:='文本文件[.TXT]|*.txt|奥博资料库文件[.SFD]|*.sfd';
FileName:='';
end;
if opendialog1.Execute then
  begin
  if not fileexists(opendialog1.filename) then
    begin
    showmessage('你输入了不存在的文件名!');
    exit;
    end;
  if treeview1.Items.Count>0 then
  with treeview1.Items.AddChildFirst(treeview1.Selected,
  delext(extractfilename(opendialog1.filename))) do
  selected:=true
  else
  with treeview1.Items.AddChild(treeview1.topitem,
  delext(extractfilename(opendialog1.filename))) do selected:=true;
  SendMessage(RichEdit1.Handle,WM_SETREDRAW,0,0);  //禁止重绘
  richedit1.Lines.LoadFromFile(opendialog1.filename);
  SendMessage(RichEdit1.Handle,WM_SETREDRAW,-1,0);  //重绘目录树
  RichEdit1.Refresh;
  treeedited:=true;
  memoedited:=true;
  statusbar1.Panels.Items[2].text:='共'+trim(inttostr(treeview1.items.count))+'条资料';
  end;
end;

procedure Tmainwin.N72Click(Sender: TObject);
var outdir,seldir:string;
    OutNode:TtreeNode;
    //--------------------------------导出资料过程开始
    Procedure outdata(Snode:Ttreenode;outpath:string);
    var Dpath:string;
        Dnode:Ttreenode;
    begin
    Dpath:=outpath;
    Dnode:=Snode.getFirstChild;
    while Dnode<>nil do
    begin
    if dnode.getFirstChild<>nil then  //如果节点还有子节点
       begin
       Outdir:=Dpath+dnode.Text+'\';
       mkdir(Outdir);
       outdata(Dnode,Outdir);
       end
    else
        begin
        if fileexists(datpath+Dnode.Text+'.sfd') then
        copyfile(pchar(datpath+Dnode.Text+'.sfd'),pchar(Dpath+Dnode.Text+'.txt'),false);
        end;
    Dnode:=Dnode.getNextSibling;
    end;
    end;
    //-------------------------------- 过程结束
begin
if (treeview1.Items.Count=0) or (treeview1.Selected=nil) then exit;
if treeview1.Selected.getFirstChild=nil then
begin
showmessage('你选取的是一个资料项,不是目录标题!'+#10+
'如要导出此标题内容,请用[导出文本]命令。');
exit;
end;
seldir:=BrowseFolder;
if seldir='' then exit;
if seldir[length(seldir)]<>'\' then seldir:=seldir+'\';
outdir:=seldir+treeview1.Selected.Text+'\';
if DirectoryExists(outdir) then //如果目录已存在
begin
showmessage('注意!['+outdir+']已存在,请加选目录!');
exit;
end;
{$i-}
mkdir(outdir);
{$i+}
if Ioresult<>0 then //创建目录失败
begin
showmessage('创建目录"'+outdir+'"失败!请重试。');
exit;
end;
OutNode:=treeview1.Selected;
outdata(outnode,outdir);
end;

procedure Tmainwin.N7Click(Sender: TObject);
begin
if treeview1.Selected=nil then exit;
treeview1.Selected.MoveTo(treeview1.TopItem,naInsert);
treeedited:=true;
end;

procedure Tmainwin.N34Click(Sender: TObject);
begin
with taboutform.Create(self) do
begin
showmodal;
free;
end;
end;

procedure Tmainwin.N32Click(Sender: TObject);
begin
ShellExecute(handle,nil,'mailto:bolenl@990.net',
nil,nil,SW_MAXIMIZE);
end;

procedure Tmainwin.FormDestroy(Sender: TObject);
begin
if (treeview1.selected<>nil) and memoedited then
richedit1.Lines.SaveToFile(datpath+trim(treeview1.Selected.text)+'.sfd');
if treeedited then
treeview1.SaveToFile(datpath+'doctitle.tle');
saveinif;
end;

procedure Tmainwin.ToolButton17Click(Sender: TObject);
begin
if richedit1.Lines.Count=0 then exit;
if PrintDialog1.execute then
richedit1.Print(treeview1.selected.text);
end;

procedure Tmainwin.N74Click(Sender: TObject);
begin
psdialog1.Execute;
end;

procedure Tmainwin.N75Click(Sender: TObject);
begin
with richedit1 do
    if HandleAllocated then SendMessage(Handle, EM_UNDO, 0, 0);
end;

procedure Tmainwin.RichEdit1Change(Sender: TObject);
begin
ToolButton3.Enabled := SendMessage(RichEdit1.Handle, EM_CANUNDO, 0, 0) <> 0;
N76.Enabled := ToolButton3.Enabled;
end;

procedure Tmainwin.N79Click(Sender: TObject);
begin
colordialog1.color:=treeview1.font.color;
if colordialog1.Execute then Treeview1.font.color:=colordialog1.color;
end;


procedure Tmainwin.N83Click(Sender: TObject);
var al,r:integer;
begin
al:= richedit1.Lines.Count-1;
for r:=al downto 0 do
if (trim(richedit1.Lines[r])='')
or (trim(richedit1.Lines[r])=#9)
or (trim(richedit1.Lines[r])=#13)
or (trim(richedit1.Lines[r])=#10) then
  begin
  Richedit1.Lines.Delete(r);
  richedit1.Update;
  memoedited:=true;
  end;
end;

function CustomSortfun(Node1, Node2: TTreeNode; Data: Longint): integer; stdcall;
  // 辅助函数,若Node有子结点,返回'A',否则返回'Z',没有子结点者优先,排在最前面。    1999.8.17
  function NodeChar(node:ttreenode):string;
  begin
  if Node.getFirstChild=nil then result:='A' else result:='Z';
  end;
begin
if Data = 0 then
result:=lstrcmp(PChar(NodeChar(node1)+Node1.Text),PChar(NodeChar(node2)+Node2.Text))
else
result:=-lstrcmp(PChar(NodeChar(node1)+Node1.Text),PChar(NodeChar(node2)+Node2.Text));
end;

procedure Tmainwin.N87Click(Sender: TObject);
begin
if treeview1.Items.Count>2 then
begin
treeview1.CustomSort(@CustomSortfun,0);
treeedited:=true;
end;
end;

procedure Tmainwin.N88Click(Sender: TObject);
begin
richedit1.WordWrap:=not richedit1.WordWrap;
n88.Checked:=richedit1.WordWrap;
end;

procedure Tmainwin.StatusBar1DrawPanel(StatusBar: TStatusBar;
  Panel: TStatusPanel; const Rect: TRect);
begin
//StatusBar.Canvas.Brush.Color:=clblack;
StatusBar.Canvas.Font.Color:=clblue;
StatusBar.Canvas.FillRect(Rect);
StatusBar.Canvas.TextRect(Rect, Rect.Left+5, Rect.Top+2, Panel.Text);// 显示文字:
end;

procedure Tmainwin.Panel7Click(Sender: TObject);
//var x:cardinal;
begin
winexec('rundll32.exe shell32.dll,Control_RunDLL TimeDate.cpl,,0',9);
end;

procedure Tmainwin.TreeView2GetImageIndex(Sender: TObject;
  Node: TTreeNode);
begin
node.imageIndex:=7;
end;

procedure Tmainwin.TreeView2GetSelectedIndex(Sender: TObject;
  Node: TTreeNode);
begin
node.selectedIndex:=8;
end;

procedure Tmainwin.ToolButton23Click(Sender: TObject);
begin
if treeview1.Items.Count<=0 then exit;
queryform.Show;
if queryform.WindowState=wsMinimized then
queryform.WindowState:=mainwin.WindowState;
end;

procedure Tmainwin.N30Click(Sender: TObject);
begin
Application.HelpJump('maintop');
//winexec(pchar(workpath+'docplaza.hlp'),sw_showna);
end;

procedure Tmainwin.N84Click(Sender: TObject);
begin
ShellExecute(handle,nil,'http://personal.yn.cninfo.net/cnopsoft',
nil,nil,SW_MAXIMIZE);
end;

end.


 

⌨️ 快捷键说明

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