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

📄 unitset.pas

📁 迷你单词Delphi版全源吗
💻 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 + -