📄 advanceunit.pas
字号:
unit AdvanceUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, PublicUnit,SUIEdit, ComCtrls, SUITreeView, SUIListBox, SUIButton,
SUIPageControl, SUITabControl, ExtCtrls, SUIForm, ActiveX, SUIGroupBox,Menus, IniFiles, OleCtrls,
SHDocVw, SUIImagePanel, mshtml, StrUtils, SUIMemo;
type
TAdvanceFrm = class(TForm)
AdvanceSFrm: TsuiForm;
suiPageControl1: TsuiPageControl;
suiTabSheet1: TsuiTabSheet;
suiTabSheet2: TsuiTabSheet;
suiTabSheet3: TsuiTabSheet;
sbtn_ok: TsuiButton;
sbtn_cancel: TsuiButton;
slb_subjectList: TsuiListBox;
sTv_Subject: TsuiTreeView;
StaticText1: TStaticText;
sEdt_subject: TsuiEdit;
sbtn_Edit: TsuiButton;
sbtn_Del: TsuiButton;
suiGroupBox1: TsuiGroupBox;
HotKey1: THotKey;
srb_regkey: TsuiRadioButton;
srb_NoregKey: TsuiRadioButton;
scb_Autorun: TsuiCheckBox;
slb_modelist: TsuiListBox;
StaticText3: TStaticText;
sbtn_editMode: TsuiButton;
sbtn_delmode: TsuiButton;
sbtn_NewMode: TsuiButton;
smem_Source: TsuiMemo;
sbtn_preview: TsuiButton;
StaticText2: TStaticText;
sedt_OutPutPath: TsuiEdit;
sbtn_ExpPathbwr: TsuiButton;
suiGroupBox2: TsuiGroupBox;
sedt_OldPassword: TsuiEdit;
StaticText4: TStaticText;
StaticText5: TStaticText;
sedt_OldCmPassword: TsuiEdit;
StaticText6: TStaticText;
sedt_NewPassword: TsuiEdit;
sbtn_UpdatePassword: TsuiButton;
procedure FormShow(Sender: TObject);
procedure slb_subjectListClick(Sender: TObject);
procedure sbtn_EditClick(Sender: TObject);
procedure sbtn_DelClick(Sender: TObject);
procedure sbtn_okClick(Sender: TObject);
procedure sbtn_cancelClick(Sender: TObject);
procedure srb_regkeyClick(Sender: TObject);
procedure slb_modelistClick(Sender: TObject);
procedure sbtn_delmodeClick(Sender: TObject);
procedure sbtn_editModeClick(Sender: TObject);
procedure sbtn_NewModeClick(Sender: TObject);
procedure sbtn_previewClick(Sender: TObject);
procedure sbtn_UpdatePasswordClick(Sender: TObject);
private
{ Private declarations }
public
procedure LoadSubjectList;
procedure EditSubject(OldSubjectStr,NewSubjectStr:String);
procedure DelSubject(Subject:String);
procedure MakeForwardView(ClassDoc:TClassDoc);
{ Public declarations }
end;
var
AdvanceFrm: TAdvanceFrm;
implementation
Uses Main,PreviewUnit;
{$R *.dfm}
procedure TAdvanceFrm.FormShow(Sender: TObject);
var
inifile:TIniFile;
HotKeyStr,TempStr:String;
BinF:file of TRecKind;
Rec:TRecKind;
begin
LoadSubjectList;
MainFrm.LoadSubjectNodeData(sEdt_subject.Text,sTv_Subject);
TempStr:=ExePath+'\OutPut';
inifile:=TIniFile.Create(IniFileName);
HotKeyStr:=inifile.ReadString('常用设置','系统热键','');
sedt_OutPutPath.Text:=inifile.ReadString('常用设置','导出网页路径',TempStr);
if sedt_OutPutPath.Text='' then sedt_OutPutPath.Text:=TempStr;
if HotKeyStr<>'' then
begin
HotKey1.HotKey:=TextToShortCut(HotKeyStr);
srb_regkey.Checked :=True;
end
else
srb_NoregKey.Checked:=True;
//显示网页模式
slb_modelist.Items.Clear;
slb_modelist.Items.Add('默认格式');
AssignFile(BinF,HtmlModeFileName);
if FileExists(HtmlModeFileName) then
begin
Reset(BinF);
While Not Eof(BinF) Do
begin
Read(BinF,Rec);
slb_modelist.Items.Add(Rec.Name);
Next;
end;
end
else
Rewrite(BinF);
CloseFile(BinF);
end;
procedure TAdvanceFrm.LoadSubjectList;
var
TempStr:string;
begin
with MainFrm Do
begin
slb_subjectList.Items.Clear;
with ADOQuery1 Do
begin
Close;
SQL.Clear;
SQL.Add('select Distinct Subject from Indexdata');
SQL.Add('Where NodeLevel=-1 and UserID="'+UserID+'"');
Open;
while Not Eof Do
begin
TempStr:=fieldbyName('Subject').AsString;
slb_subjectList.Items.Add(TempStr);
ADOQuery1.Next;
end;
end;
//slb_subjectList.Selected[0]:=True;
//sEdt_subject.Text:= slb_subjectList.Items.Strings[0];
end;
end;
procedure TAdvanceFrm.slb_subjectListClick(Sender: TObject);
var
i:integer;
begin
for i:=0 to slb_subjectList.Count -1 Do
begin
if slb_subjectList.Selected[i] then
begin
sEdt_subject.Text:=slb_subjectList.Items[i];
MainFrm.LoadSubjectNodeData(sEdt_subject.Text,sTv_Subject);
Break;
end;
end;
end;
procedure TAdvanceFrm.DelSubject(Subject: String);
var
TempStr:String;
begin
TempStr:=sEdt_subject.Text;
with MainFrm Do
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Delete From IndexData Where Subject = "'+TempStr+'" and UserID="'+UserID+'"');
ADOQuery1.ExecSQL;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Delete From DocData Where Subject ="'+TempStr+'" and UserID="'+UserID+'"');
ADOQuery1.ExecSQL;
TempStr:= scbb_Subject.Text;
scbb_Subject.Items.Delete(scbb_Subject.Items.IndexOf(Subject));
if TempStr = sEdt_subject.Text then scbb_SubjectChange(nil);
end;
slb_subjectList.Items.Delete(slb_subjectList.Items.IndexOf(Subject));
if slb_subjectList.ItemIndex>0 then
sEdt_subject.Text :=slb_subjectList.Items[slb_subjectList.ItemIndex]
else
sEdt_subject.Text:='';
sTv_Subject.Items.Clear;
TempStr:= 'Ok, 成功删除 "'+TempStr+'" 课题^^';
MessageBox(Handle,Pchar(TempStr),'信息',MB_OK + MB_ICONINFORMATION);
if sEdt_subject.Text <>'' then
MainFrm.LoadSubjectNodeData(sEdt_subject.Text,sTv_Subject);
end;
procedure TAdvanceFrm.EditSubject(OldSubjectStr,NewSubjectStr:String);
var
TempStr:String;
i_index,i_TmpIndex:integer;
begin
With MainFrm Do
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select Subject from IndexData');
ADOQuery1.SQL.Add('Where Subject="'+OldSubjectStr+'"');
ADOQuery1.Open;
TempStr:=ADOQuery1.FieldByName('Subject').AsString;
if TempStr= NewSubjectStr then
begin
MessageBox(Handle,'已经存在该课题,请换个名字重试!','提示',MB_OK + MB_ICONERROR);
Exit;
end;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Update IndexData Set Subject ="'+NewSubjectStr+'"');
ADOQuery1.SQL.Add('Where Subject="'+OldSubjectStr+'"');
ADOQuery1.ExecSQL;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Update DocData Set Subject ="'+NewSubjectStr+'"');
ADOQuery1.SQL.Add('Where Subject="'+OldSubjectStr+'"');
ADOQuery1.ExecSQL;
i_index:=slb_subjectList.Items.IndexOf(OldSubjectStr);
slb_subjectList.Items[i_index]:=NewSubjectStr;
i_TmpIndex:= scbb_Subject.ItemIndex;
i_index:=scbb_Subject.Items.IndexOf(OldSubjectStr);
scbb_Subject.Items[i_index]:= NewSubjectStr;
scbb_Subject.ItemIndex:=i_TmpIndex;
MessageBox(Self.Handle,'修改成功!','编辑',MB_OK + MB_ICONINFORMATION);
end;
end;
procedure TAdvanceFrm.sbtn_EditClick(Sender: TObject);
begin
if sEdt_subject.Text ='' then Exit;
if sEdt_subject.Text =slb_subjectList.Items[slb_subjectList.ItemIndex] then Exit;
EditSubject(slb_subjectList.Items[slb_subjectList.ItemIndex],sEdt_subject.Text);
end;
procedure TAdvanceFrm.sbtn_DelClick(Sender: TObject);
var
TempStr,WarningStr:String;
begin
TempStr:=sEdt_subject.Text;
WarningStr:=application.Title+'准备删除课题 "'+TempStr+'" '+#13+#13
+'删除该课题将会使该课题下所有类别和文档都被清除,真的要删除该课题吗?';
if MessageBox(handle,PChar(WarningStr),'提示',MB_OKCANCEL+MB_ICONWARNING)=IDOK then
DelSubject(TempStr);
end;
procedure TAdvanceFrm.sbtn_okClick(Sender: TObject);
var
fsm,vk:integer;
HotkeyStr:String;
i_Pos,i:integer;
inifile:Tinifile;
begin
fsm:=0;
vk:=0;
inifile:=Tinifile.Create(IniFileName);
if srb_regkey.Checked then //注册热键
begin
HotkeyStr:=ShortCutToText(Hotkey1.HotKey);
if Not Mainfrm.RegHotKey(MainFrm.Handle,HotkeyStr) then
begin
MessageBox(Handle,'不好意思,你输入的热键不被系统支持!','提示',MB_OK+MB_ICONERROR);
Exit;
end;
inifile.WriteString('常用设置','系统热键',HotKeyStr);
end
else //取消热键
begin
Mainfrm.RegHotKey(Mainfrm.Handle,'');
inifile.WriteString('常用设置','系统热键','');
end;
inifile.WriteString('常用设置','导出网页路径',sedt_OutPutPath.Text);
inifile.Free;
ModalResult:=mrOk;
end;
procedure TAdvanceFrm.sbtn_cancelClick(Sender: TObject);
begin
ModalResult:=mrCancel;
end;
procedure TAdvanceFrm.srb_regkeyClick(Sender: TObject);
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -