CX gamer
2008-07-18 11:36:53
Hi, here's my first script, just run it and see…
program autotalker;
var
j, x1, y1, x2, y2, typoschance, corchance, efflength: Integer;
writetypos, typewhilemousemove, cortypos: Boolean;
line: String;
frmDesign : TForm;
Title, Credit, Text1, Text2, Text3, CorPercent, TyposPercent, ColorEffect, TextEffect, Disguisetext : TLabel;
IAgree, IDisagree, Start : TButton;
Message, TyposBox, TextEffects, Other : TGroupBox;
Commerce, Clan,Custom : TRadioButton;
Action, Pricekind, Clanaction, Prefix, Slogan, Color, Effect : TComboBox;
Number, Item, Price, Name, Clanname, Requirements, Customtext, Disguisename : TEdit;
Allowtypos, CorrectTypos, MouseMove : TCheckBox;
ScrollBar1, ScrollBar2 : TScrollBar;
procedure typos;
begin
if(Random(100) > 100-typoschance) then
begin
SendKeysWait(chr(Random(25)+97), 10, 50);
if(cortypos=true) then
begin;
if(Random(100) > 100-corchance)or(j<=efflength) then
begin
wait(100 + Random(50));
SendKeysWait(chr(8), 10, 25);
wait(100 + Random(50));
end;
end;
end;
end;
procedure write;
begin
for j:= 1 to Length(line) do
begin
if(typewhilemousemove=false) then
begin
GetMousePos(x2, y2);
if(x1=x2)and(y1=y2) then
begin
SendKeysWait(StrGet(line, j), 75, 150);
if (writetypos=true) then
begin
typos;
end;
end else
begin
wait(500+Random(2000));
GetMousePos(x1, y1)
GetMousePos(x2, y2)
j:=j-1;
end;
end;
if(IsFKeyDown(12)) then
begin
repeat
wait(100);
until(IsFKeyDown(12)=false);
repeat
wait(100);
until(IsFKeyDown(12)=true);
end;
end;
typos;
wait(random(100)+100);
SendKeysWait(chr(13), 50, 100);
wait(1000+random(500));
end;
procedure agree(sender: TObject);
begin
Text1.Visible:=False;
Text2.Visible:=False;
Text3.Visible:=False;
IAgree.Visible:=False;
IDisagree.Visible:=False;
frmDesign.Width := 425;
frmDesign.Height := 414;
Message.Visible := True;
Typosbox.Visible := True;
TextEffects.Visible := True;
Other.Visible := True;
Start.Visible := True;
end;
procedure disagree(sender: TObject);
begin
IDisagree.Visible:= False;
IAgree.Width:=235;
frmDesign.BorderIcons := [biMinimize, biMaximize];
end;
procedure CommerceSelect(sender: TObject);
begin
Customtext.Enabled := False;
Customtext.ReadOnly := True;
Slogan.Enabled := False;
Requirements.Enabled := False;
Clanname.Enabled := False;
Clanname.ReadOnly := True;
Prefix.Enabled := False;
Clanaction.Enabled := False;
Pricekind.Enabled := True;
Name.Enabled := True;
Price.Enabled := True;
Item.Enabled := True;
Number.Enabled := True;
Action.Enabled := True;
end;
procedure ClanSelect(sender: TObject);
begin
Customtext.Enabled := False;
Customtext.ReadOnly := True;
Slogan.Enabled := True;
Requirements.Enabled := True;
Clanname.Enabled := True;
Clanname.ReadOnly := False;
Prefix.Enabled := True;
Clanaction.Enabled := True;
Pricekind.Enabled := False;
Name.Enabled := False;
Price.Enabled := False;
Item.Enabled := False;
Number.Enabled := False;
Action.Enabled := False;
end;
procedure CustomSelect(sender: TObject);
begin
Customtext.Enabled := True;
Customtext.ReadOnly := False;
Slogan.Enabled := False;
Requirements.Enabled := False;
Clanname.Enabled := False;
Clanname.ReadOnly := True;
Prefix.Enabled := False;
Clanaction.Enabled := False;
Pricekind.Enabled := False;
Name.Enabled := False;
Price.Enabled := False;
Item.Enabled := False;
Number.Enabled := False;
Action.Enabled := False;
end;
procedure AllowTyposSelect(sender: TObject);
begin
if(Allowtypos.Checked = False) then
begin
CorrectTypos.Enabled := False;
ScrollBar1.Enabled := False;
TyposPercent.Enabled := False;
ScrollBar2.Enabled := False;
CorPercent.Enabled := False;
CorrectTypos.Checked := False;
end;
if(Allowtypos.Checked = True) then
begin
CorrectTypos.Enabled := True;
ScrollBar1.Enabled := True;
TyposPercent.Enabled := True;
end;
end;
procedure CorrectTyposSelect(sender: TObject);
begin
if(CorrectTypos.Checked = False) then
begin
ScrollBar2.Enabled := False;
CorPercent.Enabled := False;
end;
if(CorrectTypos.Checked = True) then
begin
ScrollBar2.Enabled := True;
CorPercent.Enabled := True;
end;
end;
procedure AllowTyposHold(sender: TObject);
begin
TyposPercent.Caption := IntToStr(Scrollbar1.Position);
end;
procedure CorrectTyposHold(sender: TObject);
begin
CorPercent.Caption := IntToStr(ScrollBar2.Position);
end;
procedure HitIt(sender: TObject);
begin
frmDesign.ModalResult:= mrOk;
if(Commerce.Checked = true) then
begin
if(Action.ItemIndex = 0) then
line:='Buying';
if(Action.ItemIndex = 1) then
line:='Buyin';
if(Action.ItemIndex = 2) then
line:='Buy';
if(Action.ItemIndex = 3) then
line:='Seling';
if(Action.ItemIndex = 4) then
line:='Sellin';
if(Action.ItemIndex = 5) then
line:='Sell';
line:=line+' '+Number.Text+' '+Item.Text+', '+Price.Text+' ea ';
if(PriceKind.ItemIndex = 0) then
line:=line+'max price, ';
if(PriceKind.ItemIndex = 1) then
line:=line+'market price, ';
if(PriceKind.ItemIndex = 2) then
line:=line+'min price, ';
line:=line+Name.Text;
end;
if(Clan.Checked = true) then
begin
if(Prefix.ItemIndex = 0) then
line:='';
if(Prefix.ItemIndex = 1) then
line:='/';
if(Clanaction.ItemIndex = 0) then
line:=line+'All join';
if(Clanaction.ItemIndex = 1) then
line:=line+'All leave';
line:=line+' '+ClanName.Text+' '+Requirements.Text;
if(Slogan.ItemIndex = 1) then
line:=line+', we own!';
if(Slogan.ItemIndex = 2) then
line:=line+', we PWN!';
if(Slogan.ItemIndex = 3) then
line:=line+', the greatest of them all!';
if(Slogan.ItemIndex = 4) then
line:=line+', join now!';
if(Slogan.ItemIndex = 5) then
line:=line+', quick!';
if(Slogan.ItemIndex = 6) then
line:=line+', ownage!';
if(Slogan.ItemIndex = 7) then
line:=line+', we have 50 people!';
if(Slogan.ItemIndex = 8) then
line:=line+', that wasn'#39't a question!';
end;
if(Custom.Checked = true) then
line:=Customtext.Text;
writetypos:=allowtypos.checked;
cortypos:=correcttypos.checked;
typoschance:=scrollbar1.Position;
corchance:=scrollbar2.Position;
if(effect.ItemIndex=1) then
begin
line:='wave:'+line;
efflength:=5;
end;
if(effect.ItemIndex=2) then
begin
line:='wave2:'+line;
efflength:=6;
end;
if(effect.ItemIndex=3) then
begin
line:='shake:'+line;
efflength:=6;
end;
if(effect.ItemIndex=4) then
begin
line:='scroll:'+line;
efflength:=7;
end;
if(effect.ItemIndex=5) then
begin
line:='slide:'+line;
efflength:=6;
end;
if(color.ItemIndex=1) then
begin
line:='yellow:'+line;
efflength:=efflength+7;
end;
if(color.ItemIndex=2) then
begin
line:='green:'+line;
efflength:=efflength+6;
end;
if(color.ItemIndex=3) then
begin
line:='red:'+line;
efflength:=efflength+4;
end;
if(color.ItemIndex=4) then
begin
line:='cyan:'+line;
efflength:=efflength+5;
end;
if(color.ItemIndex=5) then
begin
line:='flash1:'+line;
efflength:=efflength+7;
end;
if(color.ItemIndex=6) then
begin
line:='flash2:'+line;
efflength:=efflength+7;
end;
if(color.ItemIndex=7) then
begin
line:='flash3:'+line;
efflength:=efflength+7;
end;
if(color.ItemIndex=8) then
begin
line:='glow1:'+line;
efflength:=efflength+6;
end;
if(color.ItemIndex=9) then
begin
line:='glow2:'+line;
efflength:=efflength+6;
end;
if(color.ItemIndex=10) then
begin
line:='glow3:'+line;
efflength:=efflength+6;
end;
typewhilemousemove:= MouseMove.checked
Disguise(Disguisename.Text);
frmDesign.Caption:= frmDesign.Caption + '.';
frmDesign.ModalResult:= mrOk;
end;
procedure Form;
begin
frmDesign := CreateForm;
frmDesign.Left := 250;
frmDesign.Top := 114;
frmDesign.Width := 266;
frmDesign.Height := 299;
frmDesign.Caption := 'Runescape autotalker';
frmDesign.Color := clBtnFace;
frmDesign.Font.Color := clWindowText;
frmDesign.Font.Height := -11;
frmDesign.Font.Name := 'MS Sans Serif';
frmDesign.Font.Style := [];
frmDesign.Visible := False;
frmDesign.PixelsPerInch := 96;
Title := TLabel.Create(frmDesign);
Title.Parent := frmDesign;
Title.Left := 8;
Title.Top := 8;
Title.Width := 229;
Title.Height := 29;
Title.Caption := 'Runescape autotalker';
Title.Font.Color := clWindowText;
Title.Font.Height := -21;
Title.Font.Name := 'Kristen ITC';
Title.Font.Style := [];
Title.ParentFont := False;
Credit := TLabel.Create(frmDesign);
Credit.Parent := frmDesign;
Credit.Left := 88;
Credit.Top := 32;
Credit.Width := 68;
Credit.Height := 16;
Credit.Caption := 'By CX';
Credit.Font.Color := clWindowText;
Credit.Font.Height := -11;
Credit.Font.Name := 'Kristen ITC';
Credit.Font.Style := [];
Credit.ParentFont := False;
Text1 := TLabel.Create(frmDesign);
Text1.Parent := frmDesign;
Text1.WordWrap := True;
Text1.Left := 8;
Text1.Top := 56;
Text1.Width := 233;
Text1.Height := 57;
Text1.Caption := 'CX is not responsable for anything that this script has done. Therefore you must agree that you take your responsability in your own hands before you run this script.'
Text2 := TLabel.Create(frmDesign);
Text2.WordWrap := True;
Text2.Parent := frmDesign;
Text2.Left := 8;
Text2.Top := 112;
Text2.Width := 231;
Text2.Height := 65;
Text2.Caption := 'Do not run this script if you don´t want it. You can emergency stop this script by pressing Ctrl + Alt + S. Click on "I agree" if you´re fine with the above mentioned terms and conditions. If you do not agree, press "I disagree".'
Text3 := TLabel.Create(frmDesign);
Text3.Parent := frmDesign;
Text3.WordWrap := True;
Text3.Left := 8;
Text3.Top := 184;
Text3.Width := 192;
Text3.Height := 41;
Text3.Caption := 'Thank you for choosing this Runescape autotalker above all others. Happy talking. :)'
IAgree := TButton.Create(frmDesign);
IAgree.OnClick:= @agree;
IAgree.Parent := frmDesign;
IAgree.Left := 8;
IAgree.Top := 232;
IAgree.Width := 160;
IAgree.Height := 25;
IAgree.Caption := 'I agree';
IAgree.TabOrder := 8;
IDisagree := TButton.Create(frmDesign);
IDisagree.OnClick:= @disagree;
IDisagree.Parent := frmDesign;
IDisagree.Left := 170;
IDisagree.Top := 232;
IDisagree.Width := 70;
IDisagree.Height := 25;
IDisagree.Caption := 'I disagree';
IDisagree.TabOrder := 8;
Message := TGroupBox.Create(frmDesign);
Message.Parent := frmDesign;
Message.Left := 0;
Message.Top := 40;
Message.Width := 409;
Message.Height := 146;
Message.Caption := 'Message';
Message.Visible := False;
Message.TabOrder := 23;
Commerce := TRadioButton.Create(frmDesign);
Commerce.Parent := Message;
Commerce.Left := 8;
Commerce.Top := 18;
Commerce.Width := 105;
Commerce.Height := 17;
Commerce.Caption := 'Commerce';
Commerce.Checked := True;
Commerce.TabOrder := 14;
Commerce.TabStop := True;
Commerce.OnClick:= @CommerceSelect;
Action := TComboBox.Create(frmDesign);
Action.Parent := Message;
Action.Left := 8;
Action.Top := 34;
Action.Width := 57;
Action.Height := 21;
Action.ItemHeight := 13;
Action.TabOrder := 8;
Action.Text := 'Action';
Action.Items.Add('Buying');
Action.Items.Add('Buyin');
Action.Items.Add('Buy');
Action.Items.Add('Selling');
Action.Items.Add('Sellin');
Action.Items.Add('Sell');
Number := TEdit.Create(frmDesign);
Number.Parent := Message;
Number.Left := 64;
Number.Top := 34;
Number.Width := 57;
Number.Height := 21;
Number.TabOrder := 9;
Number.Text := 'Number';
Item := TEdit.Create(frmDesign);
Item.Parent := Message;
Item.Left := 120;
Item.Top := 34;
Item.Width := 81;
Item.Height := 21;
Item.TabOrder := 10;
Item.Text := 'Item';
Price := TEdit.Create(frmDesign);
Price.Parent := Message;
Price.Left := 200;
Price.Top := 34;
Price.Width := 41;
Price.Height := 21;
Price.TabOrder := 11;
Price.Text := 'Price';
Name := TEdit.Create(frmDesign);
Name.Parent := Message;
Name.Left := 312;
Name.Top := 34;
Name.Width := 89;
Name.Height := 21;
Name.TabOrder := 12;
Name.Text := 'Name';
Pricekind := TComboBox.Create(frmDesign);
Pricekind.Parent := Message;
Pricekind.Left := 240;
Pricekind.Top := 34;
Pricekind.Width := 73;
Pricekind.Height := 21;
Pricekind.ItemHeight := 13;
Pricekind.TabOrder := 13;
Pricekind.Text := 'Pricekind';
Pricekind.Items.Add('max price');
Pricekind.Items.Add('market price');
Pricekind.Items.Add('min price');
Clan := TRadioButton.Create(frmDesign);
Clan.Parent := Message;
Clan.Left := 8;
Clan.Top := 58;
Clan.Width := 89;
Clan.Height := 17;
Clan.Caption := 'Clan';
Clan.TabOrder := 15;
Clan.OnClick:= @ClanSelect;
Clanaction := TComboBox.Create(frmDesign);
Clanaction.Parent := Message;
Clanaction.Left := 40;
Clanaction.Top := 74;
Clanaction.Width := 57;
Clanaction.Height := 21;
Clanaction.Enabled := False;
Clanaction.ItemHeight := 13;
Clanaction.TabOrder := 16;
Clanaction.Text := 'Action';
Clanaction.Items.Add('All join');
Clanaction.Items.Add('All leave');
Prefix := TComboBox.Create(frmDesign);
Prefix.Parent := Message;
Prefix.Left := 8;
Prefix.Top := 74;
Prefix.Width := 33;
Prefix.Height := 21;
Prefix.Enabled := False;
Prefix.ItemHeight := 13;
Prefix.TabOrder := 17;
Prefix.Items.Add('');
Prefix.Items.Add('/');
Clanname := TEdit.Create(frmDesign);
Clanname.Parent := Message;
Clanname.Left := 96;
Clanname.Top := 74;
Clanname.Width := 81;
Clanname.Height := 21;
Clanname.Enabled := False;
Clanname.ReadOnly := True;
Clanname.TabOrder := 18;
Clanname.Text := 'Clanname';
Requirements := TEdit.Create(frmDesign);
Requirements.Parent := Message;
Requirements.Left := 176;
Requirements.Top := 74;
Requirements.Width := 105;
Requirements.Height := 21;
Requirements.Enabled := False;
Requirements.Text := 'Requirements';
Slogan := TComboBox.Create(frmDesign);
Slogan.Parent := Message;
Slogan.Left := 280;
Slogan.Top := 74;
Slogan.Width := 121;
Slogan.Height := 21;
Slogan.Enabled := False;
Slogan.ItemHeight := 13;
Slogan.TabOrder := 20;
Slogan.Text := 'Slogan';
Slogan.Items.Add('');
Slogan.Items.Add(', we own!');
Slogan.Items.Add(', we PWN!');
Slogan.Items.Add(', the greatest of them all!');
Slogan.Items.Add(', join now!');
Slogan.Items.Add(', quick!');
Slogan.Items.Add(', ownage!');
Slogan.Items.Add(', we have 50 people!');
Slogan.Items.Add(', that wasn'#39't a question!');
Custom := TRadioButton.Create(frmDesign);
Custom.Parent := Message;
Custom.Left := 8;
Custom.Top := 98;
Custom.Width := 89;
Custom.Height := 17;
Custom.Caption := 'Custom';
Custom.TabOrder := 21;
Custom.OnClick:= @CustomSelect;
Customtext := TEdit.Create(frmDesign);
Customtext.Parent := Message;
Customtext.Left := 8;
Customtext.Top := 114;
Customtext.Width := 393;
Customtext.Height := 21;
Customtext.Enabled := False;
Customtext.ReadOnly := True;
Customtext.TabOrder := 22;
Customtext.Text := 'Custom text';
Typosbox := TGroupBox.Create(frmDesign);
Typosbox.Parent := frmDesign;
Typosbox.Left := 0;
Typosbox.Top := 186;
Typosbox.Width := 409;
Typosbox.Height := 65;
Typosbox.Caption := 'Typos';
Typosbox.TabOrder := 8;
Typosbox.Visible := False;
TyposPercent := TLabel.Create(Typosbox);
TyposPercent.Parent := Typosbox;
TyposPercent.Left := 121;
TyposPercent.Top := 15;
TyposPercent.Width := 24;
TyposPercent.Height := 18;
TyposPercent.Alignment := taRightJustify;
TyposPercent.Caption := '3';
TyposPercent.Layout := tlBottom;
TyposPercent.Enabled := False;
CorPercent := TLabel.Create(Typosbox);
CorPercent.Parent := Typosbox;
CorPercent.Left := 120;
CorPercent.Top := 41;
CorPercent.Width := 25;
CorPercent.Height := 21;
CorPercent.Alignment := taRightJustify;
CorPercent.Caption := '50';
CorPercent.Layout := tlBottom;
CorPercent.Enabled := False;
Allowtypos := TCheckBox.Create(Typosbox);
Allowtypos.OnClick:= @AllowTyposSelect;
Allowtypos.Parent := Typosbox;
Allowtypos.Left := 8;
Allowtypos.Top := 16;
Allowtypos.Width := 81;
Allowtypos.Height := 17;
Allowtypos.Caption := 'Allow typos';
Allowtypos.Checked := False;
Allowtypos.TabOrder := 0;
CorrectTypos := TCheckBox.Create(Typosbox);
CorrectTypos.OnClick:= @CorrectTyposSelect;
CorrectTypos.Parent := Typosbox;
CorrectTypos.Left := 16;
CorrectTypos.Top := 32;
CorrectTypos.Width := 81;
CorrectTypos.Height := 25;
CorrectTypos.Caption := 'Correct typos';
CorrectTypos.Checked := False;
CorrectTypos.TabOrder := 1;
CorrectTypos.Enabled := False;
ScrollBar1 := TScrollBar.Create(Typosbox);
ScrollBar1.Parent := Typosbox;
ScrollBar1.Left := 152;
ScrollBar1.Top := 16;
ScrollBar1.Width := 249;
ScrollBar1.Height := 17;
ScrollBar1.PageSize := 0;
ScrollBar1.Position := 3;
ScrollBar1.TabOrder := 2;
ScrollBar1.Enabled := False;
ScrollBar1.OnChange := @AllowTyposHold;
ScrollBar2 := TScrollBar.Create(Typosbox);
ScrollBar2.Parent := Typosbox;
ScrollBar2.Left := 152;
ScrollBar2.Top := 40;
ScrollBar2.Width := 249;
ScrollBar2.Height := 17;
ScrollBar2.PageSize := 0;
ScrollBar2.Position := 50;
ScrollBar2.TabOrder := 3;
ScrollBar2.Enabled := False;
ScrollBar2.OnChange := @CorrectTyposHold;
TextEffects := TGroupBox.Create(frmDesign);
TextEffects.Parent := frmDesign;
TextEffects.Left := 0;
TextEffects.Top := 252;
TextEffects.Width := 209;
TextEffects.Height := 73;
TextEffects.Caption := 'Text Effects';
TextEffects.TabOrder := 1;
TextEffects.Visible := False;
ColorEffect := TLabel.Create(TextEffects);
ColorEffect.Parent := TextEffects;
ColorEffect.Left := 8;
ColorEffect.Top := 20;
ColorEffect.Width := 47;
ColorEffect.Height := 17;
ColorEffect.Caption := 'Text color';
ColorEffect.Layout := tlCenter;
TextEffect := TLabel.Create(TextEffects);
TextEffect.Parent := TextEffects;
TextEffect.Left := 8;
TextEffect.Top := 44;
TextEffect.Width := 51;
TextEffect.Height := 17;
TextEffect.Caption := 'Text effect';
TextEffect.Layout := tlCenter;
Color := TComboBox.Create(TextEffects);
Color.Parent := TextEffects;
Color.Left := 64;
Color.Top := 16;
Color.Width := 137;
Color.Height := 21;
Color.ItemHeight := 13;
Color.TabOrder := 0;
Color.Text := 'Color';
Color.Items.Add('');
Color.Items.Add('Yellow');
Color.Items.Add('Green');
Color.Items.Add('Red');
Color.Items.Add('Cyan');
Color.Items.Add('Flash1');
Color.Items.Add('Flash2');
Color.Items.Add('Flash3');
Color.Items.Add('Glow1');
Color.Items.Add('Glow2');
Color.Items.Add('Glow3');
Effect := TComboBox.Create(TextEffects);
Effect.Parent := TextEffects;
Effect.Left := 64;
Effect.Top := 40;
Effect.Width := 137;
Effect.Height := 21;
Effect.ItemHeight := 13;
Effect.TabOrder := 1;
Effect.Text := 'Effect';
Effect.Items.Add('');
Effect.Items.Add('Wave');
Effect.Items.Add('Wave2');
Effect.Items.Add('Shake');
Effect.Items.Add('Scroll');
Effect.Items.Add('Slide');
Other := TGroupBox.Create(frmDesign);
Other.Parent := frmDesign;
Other.Left := 216;
Other.Top := 252;
Other.Width := 193;
Other.Height := 73;
Other.Caption := 'Other';
Other.TabOrder := 2;
Other.Visible := False;
Disguisetext := TLabel.Create(Other);
Disguisetext.Parent := Other;
Disguisetext.Left := 8;
Disguisetext.Top := 40;
Disguisetext.Width := 54;
Disguisetext.Height := 17;
Disguisetext.Caption := 'Disguise as';
Disguisetext.Layout := tlCenter;
MouseMove := TCheckBox.Create(Other);
MouseMove.Parent := Other;
MouseMove.Left := 8;
MouseMove.Top := 16;
MouseMove.Width := 177;
MouseMove.Height := 25;
MouseMove.Caption := 'Write while mouse moves';
MouseMove.TabOrder := 0;
Disguisename := TEdit.Create(Other);
Disguisename.Parent := Other;
Disguisename.Left := 72;
Disguisename.Top := 40;
Disguisename.Width := 113;
Disguisename.Height := 21;
Disguisename.TabOrder := 1;
Disguisename.Text := 'Winamp';
Start := TButton.Create(frmDesign);
Start.Parent := frmDesign;
Start.Left := 8;
Start.Top := 336;
Start.Width := 393;
Start.Height := 33;
Start.Caption := 'Start';
Start.Font.Color := clWindowText;
Start.Font.Height := -16;
Start.Font.Name := 'MS Sans Serif';
Start.Font.Style := [];
Start.ParentFont := False;
Start.TabOrder := 11;
Start.Visible := False;
Start.OnClick := @HitIt;
end;
procedure ShowFormModal;
begin
frmDesign.ShowModal;
end;
procedure SafeShowFormModal;
var
v: TVariantArray;
begin
setarraylength(V, 0);
ThreadSafeCall('ShowFormModal', v);
end;
procedure SafeInitForm;
var
v: TVariantArray;
begin
setarraylength(V, 0);
ThreadSafeCall('Form', v);
end;
begin
SafeInitForm;
SafeShowFormModal;
SetOnTop(0, true);
MoveToTray;
while(true) do
begin
write;
end;
end.