📄 unitset.pas
字号:
unit UnitSET;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,ComCtrls, StdCtrls, Buttons, ExtCtrls;
type
TFrmSet = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Panel3: TPanel;
SpeedButton1: TSpeedButton;
ComboBox1: TComboBox;
ListView1: TListView;
edtword: TEdit;
edtyb: TEdit;
Button1: TButton;
Edit1: TEdit;
sbar: TStatusBar;
edtdict: TEdit;
edtcomm: TMemo;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
SpeedButton2: TSpeedButton;
TabSheet2: TTabSheet;
GroupBox1: TGroupBox;
Edit2: TEdit;
Button2: TButton;
Button3: TButton;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
GroupBox2: TGroupBox;
ComboBox2: TComboBox;
Button4: TButton;
TabSheet3: TTabSheet;
ListBox2: TListBox;
Button5: TButton;
Button6: TButton;
Button7: TButton;
GroupBox3: TGroupBox;
Edit3: TEdit;
Button8: TButton;
Button9: TButton;
GroupBox4: TGroupBox;
EditdictDB: TEdit;
EditRSrangStar: TEdit;
EditRSrangEnd: TEdit;
Button10: TButton;
Button11: TButton;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
procedure SpeedButton1Click(Sender: TObject);
procedure ListView1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ListView1CustomDrawSubItem(Sender: TCustomListView;
Item: TListItem; SubItem: Integer; State: TCustomDrawState;
var DefaultDraw: Boolean);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure SpeedButton2Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TabSheet3Show(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure TabSheet2Show(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
Procedure CreateParams(Var Params: TCreateParams); Override;
end;
var
FrmSet: TFrmSet;
implementation
uses UnitMain;
{$R *.dfm}
Procedure TFrmSet.CreateParams(Var Params:TCreateParams);
Begin
inherited CreateParams( Params);
with params do
begin
ExStyle := Params.ExStyle or WS_EX_TOPMOST or WS_EX_TOOLWINDOW;
WndParent := FrmMain.Handle;
end
End;
procedure TFrmSet.SpeedButton1Click(Sender: TObject);
Var exact:boolean;
keyword:string;
temptext:string;
begin
keyword:='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
if trim(edit1.text)<>'' then
begin
listview1.Clear;
sbar.Panels.Items[1].Text :='单词数量:0';
sbar.Panels.Items[0].Text := '查找结果';
if trim(combobox1.Text)='精确' then exact:=true;
if trim(combobox1.Text)='模糊' then exact:=false;
if pos(copy(edit1.text,0,1),keyword)=0 then //判断是否为中文
begin
combobox1.Text := '模糊';
exact := false;
end;
//-------
frmmain.dictdb.select(trim(edit1.text),exact,listview1,sbar.Panels[1]);
edit1.SelectAll;
temptext := edit1.text;
end;
end;
procedure TFrmSet.ListView1Click(Sender: TObject);
var item:TListitem;
begin
try
if ListView1.Items.Count >0 then
begin
item := listview1.Items.Item[listview1.itemindex];
edtword.Text :=item.SubItems.Strings[0];
edtyb.text :=item.SubItems.Strings[1];
edtcomm.Text :=item.SubItems.Strings[2];
edtdict.Text := item.SubItems.Strings[3];
{addword.Label4.Caption := item.Caption;
addword.Label5.Caption := inttostr(listview1.ItemIndex);
addword.ShowModal;}
end;
except
end;
end;
procedure TFrmSet.Button1Click(Sender: TObject);
begin
if FrmMain.SpeechEx.IVTxtAutoEx.IsSpeaking = false then
FrmMain.speechex.Speak(edtword.Text);
end;
procedure TFrmSet.ListView1CustomDrawSubItem(Sender: TCustomListView;
Item: TListItem; SubItem: Integer; State: TCustomDrawState;
var DefaultDraw: Boolean);
begin
with Listview1.Canvas do
if subItem=2 Then begin
Font.Size := 10;
Font.Name := 'DFPhonetic' ;
end;
end;
procedure TFrmSet.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
SpeedButton1.Click;
end;
procedure TFrmSet.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=cafree;
FrmSet:=nil;
end;
procedure TFrmSet.SpeedButton2Click(Sender: TObject);
begin
FrmMain.dictdb.Stop;
end;
procedure TFrmSet.Button2Click(Sender: TObject);
begin
if OpenDialog1.Execute then
edit2.Text:=OpenDialog1.FileName;
end;
procedure TFrmSet.Button3Click(Sender: TObject);
var
cfp,cfpSave:textfile;
tmp,tmp2,s,Savefile,words,pys,comms:string;
i,cyb_Star,cyb_end:integer;
begin
{ tmp:='C:\Program Files\WordRain\wrd\';
for i:=0 to listbox1.Count-1 do
begin
edit1.Text:=tmp+inttoStr(i)+'.wrd';
savefile :=tmp+listbox1.Items[i]+'.dst';
}
//打开读文件
assignfile(cfp, Trim(Edit2.Text));
reset(cfp);
//打开保存文件
if SaveDialog1.Execute then Savefile:=SaveDialog1.FileName;
assignfile(cfpSave,savefile);
rewrite( cfpSave );
//我也爱背单词4.21转换算法========
while not eof(cfp) do begin
readln(cfp,s);
cyb_Star := pos(chr(9)+chr(47),s); //chr(9)+chr(47)
if cyb_Star=0 then cyb_Star := pos(chr(9)+chr(9),s);//chr(9)+chr(9)
words:= trim(copy(s,0,cyb_Star-1)) ;
s:=Trim( Copy( s,cyb_Star,length(S) ) );
cyb_end := pos(chr(47)+chr(9),s);
if cyb_end=0 then cyb_end := pos(chr(9)+chr(9),s);// chr(9)+chr(9)
if cyb_end=0 then
begin
pys:='';
comms:=trim( copy(s,0,length(S)) ) ;
append(cfpSave);
writeln(cfpSave,words+'['+pys+']'+comms);
end else begin
pys := trim(copy(s,2,cyb_end-2));
// s:=Trim( Copy( s,cyb_end,length(s) ) );
comms := Trim( Copy( s,cyb_end+1,length(s) ) );
append(cfpSave);
writeln(cfpSave,words+'['+pys+']'+comms);
end;
end;
//==========我也爱背单词4.21转换算法
{//单词雨算法=======
while not eof(cfp) do begin
readln(cfp,s);
cyb_Star := pos('[T]',s);
cyb_end :=pos('[M]',s);
// ShowMessage(inttostr(cyb_Star)+','+inttostr(cyb_end));
if cyb_Star=0 then //没有音标时
begin
pys:='';
words:= trim(copy(s,4,cyb_end-4)) ;
end else begin
pys:= Trim( Copy( s,cyb_Star+3,cyb_end-3-cyb_Star ) );
words:= trim(copy(s,4,cyb_Star-4)) ;
end;
comms:=trim( copy(s,cyb_end+3,length(S)) ) ;
append(cfpSave);
writeln(cfpSave,words+'['+pys+']'+comms);
end;
//=======单词雨算法
}
closefile(cfp);
closefile(cfpsave);
{ end; }
MessageBox(Handle,'转存成功完成!','提示', MB_OK + MB_ICONINFORMATION + MB_DEFBUTTON1);
end;
procedure TFrmSet.Button4Click(Sender: TObject);
var ts:String;
begin
FrmMain.ReLoadDict(Trim(ComboBox2.Text));
FrmMain.CurDict:=Trim(ComboBox2.Text);
if not FrmMain.Timer1.Enabled then FrmMain.Timer1.Enabled:=True;
ts:='当前字库被设置为"'+ComboBox2.Text+'"';
Messagebox(handle,pchar(ts),'提示',MB_OK++ MB_IconInformation);
end;
procedure TFrmSet.FormShow(Sender: TObject);
begin
left:=frmmain.left;
top:=FrmMain.Top+FrmMain.Height;
//-----------------------------
// SetWindowPos(handle,hwnd_TopMost,0,0,0,0,swp_NoMove or swp_NoSize)
frmset.PageControl1.ActivePage:=FrmSet.PageControl1.Pages[0];
end;
procedure TFrmSet.TabSheet3Show(Sender: TObject);
var
pathbm,BMString,StrCaption:String;
bmfp:textfile;
begin //导入bookmark
pathbm:= ExtractFilePath(Application.ExeName)+'data\mindict.bm';
ListBox2.Clear;
if not FileExists(pathbm) then exit;
listbox2.Items.LoadFromFile(pathbm);
end;
procedure TFrmSet.Button5Click(Sender: TObject);
var
pathbm,BMString,StrCaption:String;
bmfp:textfile;
begin //删除 bookmark
// ListBox2.Clear;
if not (ListBox2.ItemIndex>=0) then exit;
pathbm:= ExtractFilePath(Application.ExeName)+'data\mindict.bm';
ListBox2.Items.Delete(ListBox2.ItemIndex);
ListBox2.items.SaveToFile(pathbm);
FrmMain.LoadBookMark;
// listbox2.Items.LoadFromFile(pathbm);
end;
procedure TFrmSet.Button7Click(Sender: TObject);
begin
close;
end;
procedure TFrmSet.Button6Click(Sender: TObject);
var BMString,BMdict,BMIndex:String;
ta,tb:integer;
begin
if not (ListBox2.ItemIndex>=0) then exit;
BMString:=ListBox2.Items[ListBox2.Itemindex];
ta:=pos('/',BMString);
tb:=pos('-',BMString);
BMdict:=trim(copy(BMString,0,ta-1));
BMIndex:=trim(copy(BMString,ta+1,tb-ta-1));
FrmMain.RSrangStar:=strtoint(BMIndex);
FrmMain.RSrangEnd:=StrToInt(trim(copy(BMString,tb+1,length(BMString)-tb)));
FrmMain.ReLoadDict(BMdict);
FrmMain.RSIndex:=strtoint(BMIndex);
end;
procedure TFrmSet.TabSheet2Show(Sender: TObject);
var i:integer;
begin
combobox2.clear;
for i:= 1 to frmmain.dictdb.DBMax do
begin
combobox2.Items.Add(frmmain.dictdb.dblist[i]);
if frmmain.dictdb.dblist[i] = frmmain.curdict then
combobox2.ItemIndex := i-1;
end;
edit3.Text:=inttostr(frmmain.replaycount);
end;
procedure TFrmSet.Button8Click(Sender: TObject);
begin
FrmMain.replaycount:=strtoint(edit3.Text);
end;
procedure TFrmSet.Button9Click(Sender: TObject);
var BMString,BMdict,BMIndex:String;
ta,tb:integer;
begin
if not (ListBox2.ItemIndex>=0) then exit;
BMString:=ListBox2.Items[ListBox2.Itemindex];
ta:=pos('/',BMString);
tb:=pos('-',BMString);
BMdict:=trim(copy(BMString,0,ta-1));
BMIndex:=trim(copy(BMString,ta+1,tb-ta-1));
EditdictDB.Text:=BMdict;
EditRSrangStar.Text:=BMIndex;
EditRSrangEnd.Text:=trim(copy(BMString,tb+1,length(BMString)-tb));
ListBox2.Enabled:=False;
Button9.Enabled:=False;
GroupBox4.Visible:=True;
end;
procedure TFrmSet.Button11Click(Sender: TObject);
begin
ListBox2.Enabled:=True;
Button9.Enabled:=True;
GroupBox4.Visible:=False;
end;
procedure TFrmSet.Button10Click(Sender: TObject);
begin
ListBox2.Items[ListBox2.ItemIndex]:= EditdictDB.Text
+'/'+EditRSrangStar.Text
+'-'+EditRSrangEnd.Text;
Button11.Click;
ListBox2.items.SaveToFile(ExtractFilePath(Application.ExeName)+'data\mindict.bm');
FrmMain.LoadBookMark;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -