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

📄 main.~pas

📁 这是一个delphi源码
💻 ~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 + -