📄 randomform.pas
字号:
unit RandomForm;
interface
uses
{$IFNDEF CLR}
ScCLRClasses,
{$ENDIF}
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls;
type
TfmRandom = class(TForm)
ProgressBar: TProgressBar;
lbInform: TLabel;
btClose: TButton;
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormCreate(Sender: TObject);
private
FData: TBytes;
FCount: Integer;
public
property Data: TBytes read FData;
end;
var
fmRandom: TfmRandom;
implementation
{$IFDEF CLR}
{$R *.nfm}
{$ENDIF}
{$IFDEF WIN32}
{$R *.dfm}
{$ENDIF}
{$IFDEF XPMAN}
{$R WindowsXP.res}
{$ENDIF}
const DATASIZE = 512;
function PerfCounter: Int64;
begin
if not QueryPerformanceCounter(Result) then
Result := GetTickCount;
end;
procedure TfmRandom.FormCreate(Sender: TObject);
begin
SetLength(FData, DATASIZE);
ProgressBar.Max := DATASIZE;
end;
procedure TfmRandom.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
data: Int64;
begin
if FCount >= DATASIZE then
Exit;
data := X xor Y xor PerfCounter;
FData[FCount] := byte(data);
Inc(FCount);
data := data shr 8;
FData[FCount] := byte(data);
Inc(FCount);
ProgressBar.StepIt;
if FCount >= DATASIZE then begin
lbInform.Caption := 'The data for the random generator has been generated!';
btClose.ModalResult := mrOk;
btClose.Caption := '&OK';
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -