📄 main.~pas
字号:
unit Main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls,JPEG, ScktComp, RealMagic, Registry;
type
TMainForm = class(TForm)
FaceImage: TImage;
procedure FormCreate(Sender: TObject);
procedure FaceImageMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket);
procedure ClientSocketConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
OldX,OldY:Integer;
ConfigList:TStringList;
CurCmd:String;
GetFile:TFileStream;
FileCount:Integer;
{ Private declarations }
public
Curdir:String;
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
uses DBMain, Data, NetModal;
{$R *.DFM}
procedure TMainForm.FormCreate(Sender: TObject);
begin
Curdir:=ExtractFilePath(Application.ExeName);
ConfigList:=TStringList.Create;
ConfigList.LoadFromFile(Curdir+'.\config.ini');
FaceImage.Picture.RegisterFileFormat('JPG','JPG Files',TJPEGImage);
FaceImage.Picture.LoadFromFile(Curdir+'封面.jpg');
OldX:=0;
OldY:=0;
end;
procedure TMainForm.FaceImageMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
if OldX=0 then
begin
OldX:=X;
OldY:=Y;
end
else
begin
if (X>OldX+1) or (X<OldX-1) or (Y>OldY+1) or (Y<OldY-1) then
begin
OldX:=0;
OldY:=0;
DBMainForm.ShowModal;
end
else
begin
OldX:=X;
OldY:=Y;
end;
end;
end;
procedure TMainForm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
OldX:=0;
OldY:=0;
DBMainForm.ShowModal;
end;
procedure TMainForm.ClientSocketRead(Sender: TObject;
Socket: TCustomWinSocket);
var
Count:Integer;
Buf:PChar;
begin
if CurCmd='GetData' then
begin
if FileCount-GetFile.Position>1024 then
begin
GetMem(Buf,1025);
Socket.ReceiveBuf(Buf^,1024);
GetFile.Write(buf^,1024);
end
else
begin
GetMem(Buf,FileCount-GetFile.Position+1);
Socket.ReceiveBuf(Buf^,FileCount-GetFile.Position);
GetFile.Write(buf^,FileCount-GetFile.Position);
end;
FreeMem(Buf);
if GetFile.Position+1024<FileCount then
Socket.SendText('GetData|'+IntToStr(GetFile.Position)+'|'+IntToStr(GetFile.Position+1024))
else
if GetFile.Position<FileCount then
Socket.SendText('GetData|'+IntToStr(GetFile.Position)+'|'+IntToStr(FileCount))
else
begin
GetFile.Free;
ShowMessage('成功!');
end;
end;
if CurCmd='GetSize' then
begin
FileCount:=StrToInt(Socket.ReceiveText);
CurCmd:='GetData';
Socket.SendText('GetData|0|1024');
end;
end;
procedure TMainForm.ClientSocketConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
ClientSocket.Socket.SendText('GetSize');
GetFile:=TFileStream.Create(Curdir+'.\vod.gdb',fmCreate);
CurCmd:='GetSize';
end;
procedure TMainForm.FormShow(Sender: TObject);
var
NoUse : integer;
Reg:TRegistry;
begin
// SystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, @NoUse, 0);
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Run',true);
Reg.WriteString('ZVOD',Application.Exename);
Reg.CloseKey;
Reg.Free;
end;
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
var
NoUse : integer;
begin
// SystemParametersInfo( SPI_SCREENSAVERRUNNING, 0, @NoUse, 0);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -