📄 untmain.pas
字号:
unit Untmain;
interface
uses
Windows, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ActnList, Buttons, Menus,
Spin,MMSystem, jpeg;
type
TFrmmain = class(TForm)
pnl1: TPanel;
rg1: TRadioGroup;
pnl2: TPanel;
pnl3: TPanel;
grp1: TGroupBox;
cbb1: TComboBox;
rg2: TRadioGroup;
lbl2: TLabel;
actlst1: TActionList;
actman: TAction;
actauto: TAction;
tmr1: TTimer;
dlgFontLBL: TFontDialog;
img1: TImage;
lbl1: TLabel;
btn2: TSpeedButton;
btn1: TSpeedButton;
btn3: TSpeedButton;
grp2: TGroupBox;
se1: TSpinEdit;
pm1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
pb1: TPaintBox;
pb2: TPaintBox;
img2: TImage;
lbl3: TLabel;
lbl4: TLabel;
lbl5: TLabel;
lbl6: TLabel;
btn4: TSpeedButton;
btn5: TSpeedButton;
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure cbb1Change(Sender: TObject);
procedure tmr1Timer(Sender: TObject);
procedure rg2Click(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
procedure btn3Click(Sender: TObject);
procedure lbl1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure img1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure se1Change(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure btn4Click(Sender: TObject);
procedure btn5Click(Sender: TObject);
private
function showword:string;
procedure Showword_lbl;
{ Private declarations }
public
wordfilename:string;
strslist,wordlist:TStringList;
wordrec:Integer;
{ Public declarations }
procedure file_tostrslist;
end;
var
Frmmain: TFrmmain;
yesbmp,nobmp:TBitmap ;
rightsound,wrongsound:pchar;
hRes:THandle ;
implementation
uses Untfun,UntInput ;
{$R *.dfm}
{$R WINDOWSXP.RES}
{$R MYRES.res}
procedure TFrmmain.FormCreate(Sender: TObject);
var
stream:TStream ;
S:string ;
hResInfo : THandle;
begin
yesbmp :=TBitmap.Create ;
nobmp :=TBitmap.Create ;
Stream:=TResourceStream.Create(HINSTANCE,'yes','bmp');
yesbmp.LoadFromStream(Stream);
stream:=TResourceStream.Create(HInstance,'no','bmp');
nobmp.LoadFromStream(stream);
Stream.Free ;
hResInfo := FindResource(HInstance, 'right', 'WAVE');
hRes := LoadResource(HInstance,hResInfo);
if hRes > 32 then {its a good load}
begin {lock the resource}
rightSound:=LockResource(hRes);
end;
hResInfo := FindResource(HInstance, 'wrong', 'WAVE');
hRes := LoadResource(HInstance,hResInfo);
if hRes > 32 then {its a good load}
begin {lock the resource}
wrongSound:=LockResource(hRes);
end;
// PlaySound('Sounds\123',0,SND_ASYNC);
S:=getAppPath+'lujiayu.txt';
if FileExists(S) then
wordfilename:=S
else
wordfilename:=PathGetWindowsPath +'lujiayu.txt' ;
// getAppPath+'lujiayu.txt';
wordlist:=TStringList.Create ;
strslist:=TStringList.Create ;
file_tostrslist;
if cbb1.Items.Count>0 then
begin
cbb1.ItemIndex:=0;
TxttoWords(strslist.Strings[0],wordlist);
wordrec:=0;
end;
end;
procedure TFrmmain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
wordlist.Free ;
strslist.Free ;
yesbmp.Free ;
nobmp.Free;
end;
procedure TFrmmain.cbb1Change(Sender: TObject);
var
s:string;
begin
s:=strslist.Strings[cbb1.ItemIndex];
wordlist.Clear ;
TxttoWords(s,wordlist);
wordrec:=0;
end;
procedure TFrmmain.file_tostrslist;
var
temlist:TStringList ;
temstr,str1,str2:string;
i,j:Integer;
begin
temlist:=TStringList.Create ;
cbb1.Items.Clear ;
strslist.Clear ;
if FileExists(wordfilename) then
begin
temlist.LoadFromFile(wordfilename);
for i:=0 to temlist.Count-1 do
begin
temstr:=temlist.Strings[i];
j:=Pos('=',temstr);
if j>0 then
begin
str1:=StrLeft(temstr,j-1);
str2:=StrRight(temstr,(Length(temstr)-j));
cbb1.Items.Add(str1);
strslist.Add(str2);
end;
end;
end;
temlist.Free ;
end;
function TFrmmain.showword:string;
var
s:string;
begin
if wordlist.Count>0 then
begin
if rg1.ItemIndex=0 then //如果是随机取字#
begin
randomize;//随机种子
wordrec:=1+Random(wordlist.Count) ;
end
else //如果是顺序取字
begin
if wordrec<wordlist.Count then
wordrec :=wordrec+1
else
wordrec :=1;
end;
s:=wordlist.Strings[wordrec-1];
Result:=s;
end;
end;
procedure TFrmmain.tmr1Timer(Sender: TObject);
begin
Showword_lbl;
end;
procedure TFrmmain.rg2Click(Sender: TObject);
begin
if rg2.ItemIndex=1 then
begin
tmr1.Interval:=se1.Value;
tmr1.Enabled :=True;
end
else
begin
tmr1.Enabled :=False;
end;
end;
procedure TFrmmain.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_space then Showword_lbl;
end;
procedure TFrmmain.btn1Click(Sender: TObject);
begin
with TFrminput.Create(Self) do
begin
ShowModal ;
Free;
end;
end;
procedure TFrmmain.btn2Click(Sender: TObject);
begin
dlgFontLBL.Font.Name :='宋体';
dlgFontLBL.Font.Size :=160;
if dlgFontLBL.Execute then
lbl1.Font:=dlgFontLBL.Font ;
end;
procedure TFrmmain.btn3Click(Sender: TObject);
begin
Frmmain.ActiveControl :=nil ;
end;
procedure TFrmmain.lbl1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Showword_lbl;
end;
procedure TFrmmain.Showword_lbl;
begin
lbl1.Caption :=showword ;
lbl2.Caption :='第 '+IntToStr(wordrec)+' 字';
end;
procedure TFrmmain.img1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Showword_lbl;
end;
procedure TFrmmain.se1Change(Sender: TObject);
begin
if Length(se1.Text)=0 then SE1.Value :=1000;
tmr1.Interval:=se1.Value;
end;
procedure TFrmmain.N1Click(Sender: TObject);
begin
if (Sender as TMenuItem).Checked =False then
begin
setwindowpos(handle,hwnd_topmost,left,top,width,height,swp_showwindow);
(Sender as TMenuItem).Checked :=True;
end
else
begin
setwindowpos(handle,hwnd_notopmost,left,top,width,height,swp_showwindow);
(Sender as TMenuItem).Checked :=False ;
end;
end;
procedure TFrmmain.N3Click(Sender: TObject);
begin
creatdesktoplink('家宇识字');
end;
procedure TFrmmain.btn4Click(Sender: TObject);
var
I:Integer ;
begin
i:=StrToInt(lbl3.Caption);
pb1.Canvas.Draw(i*18,0,yesbmp);
lbl3.Caption :=IntToStr(i+1);
sndplaysound(rightsound,snd_async or snd_Memory);
// PlaySound('Sounds\ding',0,SND_ASYNC);
// playsound(pchar('mywav'),hinstance,snd_sync or snd_resource);
// Playsound(pchar('right'),hinstance,snd_sync or snd_resource);
end;
procedure TFrmmain.btn5Click(Sender: TObject);
var
j:Integer;
begin
j:=StrToInt(lbl4.Caption);
pb2.Canvas.Draw(j*18,0,nobmp);
lbl4.Caption :=IntToStr(j+1);
sndplaysound(wrongsound,snd_async or snd_Memory);
// Playsound(pchar('wrong'),hinstance,snd_sync or snd_resource);
// PlaySound('Sounds\chimes',0,SND_ASYNC);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -