SRL Archive - Help and Support

Null Pointer Exception in Script Error?


Daniel

2008-06-27 22:36:12

Ok, here's the error (never heard of it before):
Failed when compiling
Line 687: [Error] (15312:33): comma (',') expected in script C:\Program Files\SCAR 3.15\Scripts\VWMSM.scar

And here's the procedure containing the line:
procedure SafeLoadMainForm;
var
tva1, tva2: TVariantArray;
tv: Variant;
begin
SetArrayLength(tva1, 0);
SetArrayLength(tva2, 0);
VWMSF.ShowModal;
tv:=ThreadSafeCall('MainForm_Setup', tva1);
end;

Here's my full script, for Niels. BTW, i know this script can be shortened, but i had set hardly any values for the components of the form so they'll be the same. They'll differ once changed:

program NewProgram;
{.include SRL\SRL.scar}
{.include SRL\SRL\misc\Users.scar}

var
{--Original Form Style Setup--
VWMSF : TForm;
Label1, Label2, Label3, Label4, Label5, Label6, Label7 : TLabel;
CheckBox1, CheckBox2, CheckBox3, CheckBox4, CheckBox5, CheckBox6, CheckBox7, CheckBox8 : TCheckBox;
ComboBox1, ComboBox2 : TComboBox;
Button1, Button2, Button3, Button4 : TButton;
Edit1, Edit2 : TEdit;}
VWMSF: TForm;
Labels: array of TLabel;
CheckBoxs: array of TCheckBox;
ComboBoxs: array of TComboBox;
Buttons: array of TButton;
Edits: array of TEdit;

procedure MainForm_Setup;
begin
//Array Length Setup:
SetArrayLength(Labels, 9);
SetArrayLength(CheckBoxs, 8);
SetArrayLength(ComboBoxs, 2);
SetArrayLength(Buttons, 4);
SetArrayLength(Edits, 4);

//Form Design Setup:
VWMSF:=CreateForm;
VWMSF.Left:=369;
VWMSF.Top:=119;
VWMSF.Width:=398;
VWMSF.Height:=420;
VWMSF.Caption:='Varrock West Miner - By Dan''s The Man';
VWMSF.Color:=clBtnFace;
VWMSF.Font.Color:=clWindowText;
VWMSF.Font.Height:=-11;
VWMSF.Font.Name:='MS Sans Serif';
VWMSF.Font.Style:=[];
VWMSF.Visible:=False;
VWMSF.PixelsPerInch:=96;

//Label Setup:
Labels[0]:=TLabel.Create(VWMSF);
Labels[1]:=TLabel.Create(VWMSF);
Labels[2]:=TLabel.Create(VWMSF);
Labels[3]:=TLabel.Create(VWMSF);
Labels[4]:=TLabel.Create(VWMSF);
Labels[5]:=TLabel.Create(VWMSF);
Labels[6]:=TLabel.Create(VWMSF);
Labels[7]:=TLabel.Create(VWMSF);
Labels[8]:=TLabel.Create(VWMSF);

Labels[0].Parent:=VWMSF;
Labels[1].Parent:=VWMSF;
Labels[2].Parent:=VWMSF;
Labels[3].Parent:=VWMSF;
Labels[4].Parent:=VWMSF;
Labels[5].Parent:=VWMSF;
Labels[6].Parent:=VWMSF;
Labels[7].Parent:=VWMSF;
Labels[8].Parent:=VWMSF;

Labels[0].Left:=40;
Labels[1].Left:=80;
Labels[2].Left:=176;
Labels[3].Left:=176;
Labels[4].Left:=144;
Labels[5].Left:=144;
Labels[6].Left:=24;
Labels[7].Left:=16;
Labels[8].Left:=144;

Labels[0].Top:=8;
Labels[1].Top:=40;
Labels[2].Top:=72;
Labels[3].Top:=112;
Labels[4].Top:=192;
Labels[5].Top:=232;
Labels[6].Top:=360;
Labels[7].Top:=272;
Labels[8].Top:=272;

Labels[0].Width:=303;
Labels[1].Width:=225;
Labels[2].Width:=103;
Labels[3].Width:=103;
Labels[4].Width:=198;
Labels[5].Width:=167;
Labels[6].Width:=332;
Labels[7].Width:=78;
Labels[8].Width:=125;

Labels[0].Height:=37;
Labels[1].Height:=18;
Labels[2].Height:=16;
Labels[3].Height:=16;
Labels[4].Height:=16;
Labels[5].Height:=16;
Labels[6].Height:=13;
Labels[7].Height:=16;
Labels[8].Height:=16;

Labels[0].Caption:='Varrock West Miner';
Labels[1].Caption:='By Dan'#39's The Man (a.k.a IP-Drowner) ';
Labels[2].Caption:='Ore to mine most:';
Labels[3].Caption:='Ore to mine least:';
Labels[4].Caption:='Folder to save Progress Reports';
Labels[5].Caption:='Folder to save Screenshots:';
Labels[6].Caption:='Script version 0.0.2 - Copyright (c) 2008+ Dan'#39's The Man - SRL/SCAR';
Labels[7].Caption:='SRL Stats ID:';
Labels[8].Caption:='SRL Stats Password:';

Labels[0].Font.Color:=clBlack;
Labels[1].Font.Color:=clBlack;
Labels[2].Font.Color:=clBlack;
Labels[3].Font.Color:=clBlack;
Labels[4].Font.Color:=clBlack;
Labels[5].Font.Color:=clBlack;
Labels[6].Font.Color:=clBlack;
Labels[7].Font.Color:=clBlack;
Labels[8].Font.Color:=clBlack;

Labels[0].Font.Height:=-32;
Labels[1].Font.Height:=-16;
Labels[2].Font.Height:=-13;
Labels[3].Font.Height:=-13;
Labels[4].Font.Height:=-13;
Labels[5].Font.Height:=-13;
//Labels[6].Font.Height:=1;
Labels[7].Font.Height:=-13;
Labels[8].Font.Height:=-13;

Labels[0].Font.Name:='Arial';
Labels[1].Font.Name:='';
Labels[2].Font.Name:='';
Labels[3].Font.Name:='';
Labels[4].Font.Name:='';
Labels[5].Font.Name:='';
Labels[6].Font.Name:='';
Labels[7].Font.Name:='';
Labels[8].Font.Name:='';

Labels[0].Font.Style:=[fsBold];
Labels[1].Font.Style:=[];
Labels[2].Font.Style:=[];
Labels[3].Font.Style:=[];
Labels[4].Font.Style:=[];
Labels[5].Font.Style:=[];
Labels[6].Font.Style:=[];
Labels[7].Font.Style:=[];
Labels[8].Font.Style:=[];

Labels[0].ParentFont:=False;
Labels[1].ParentFont:=False;
Labels[2].ParentFont:=False;
Labels[3].ParentFont:=False;
Labels[4].ParentFont:=False;
Labels[5].ParentFont:=False;
Labels[6].ParentFont:=False;
Labels[7].ParentFont:=False;
Labels[8].ParentFont:=False;

//CheckBox Setup:
CheckBoxs[0]:=TCheckBox.Create(VWMSF);
CheckBoxs[1]:=TCheckBox.Create(VWMSF);
CheckBoxs[2]:=TCheckBox.Create(VWMSF);
CheckBoxs[3]:=TCheckBox.Create(VWMSF);
CheckBoxs[4]:=TCheckBox.Create(VWMSF);
CheckBoxs[5]:=TCheckBox.Create(VWMSF);
CheckBoxs[6]:=TCheckBox.Create(VWMSF);
CheckBoxs[7]:=TCheckBox.Create(VWMSF);

CheckBoxs[0].Parent:=VWMSF;;
CheckBoxs[1].Parent:=VWMSF;;
CheckBoxs[2].Parent:=VWMSF;;
CheckBoxs[3].Parent:=VWMSF;;
CheckBoxs[4].Parent:=VWMSF;;
CheckBoxs[5].Parent:=VWMSF;;
CheckBoxs[6].Parent:=VWMSF;;
CheckBoxs[7].Parent:=VWMSF;;

CheckBoxs[0].Left:=1;
CheckBoxs[1].Left:=1;
CheckBoxs[2].Left:=1;
CheckBoxs[3].Left:=1;
CheckBoxs[4].Left:=1;
CheckBoxs[5].Left:=1;
CheckBoxs[6].Left:=1;
CheckBoxs[7].Left:=1;

CheckBoxs[0].Top:=1;
CheckBoxs[1].Top:=1;
CheckBoxs[2].Top:=1;
CheckBoxs[3].Top:=1;
CheckBoxs[4].Top:=1;
CheckBoxs[5].Top:=1;
CheckBoxs[6].Top:=1;
CheckBoxs[7].Top:=1;

CheckBoxs[0].Width:=1;
CheckBoxs[1].Width:=1;
CheckBoxs[2].Width:=1;
CheckBoxs[3].Width:=1;
CheckBoxs[4].Width:=1;
CheckBoxs[5].Width:=1;
CheckBoxs[6].Width:=1;
CheckBoxs[7].Width:=1;

CheckBoxs[0].Height:=1;
CheckBoxs[1].Height:=1;
CheckBoxs[2].Height:=1;
CheckBoxs[3].Height:=1;
CheckBoxs[4].Height:=1;
CheckBoxs[5].Height:=1;
CheckBoxs[6].Height:=1;
CheckBoxs[7].Height:=1;

CheckBoxs[0].Caption:='';
CheckBoxs[1].Caption:='';
CheckBoxs[2].Caption:='';
CheckBoxs[3].Caption:='';
CheckBoxs[4].Caption:='';
CheckBoxs[5].Caption:='';
CheckBoxs[6].Caption:='';
CheckBoxs[7].Caption:='';

CheckBoxs[0].Checked:=False;
CheckBoxs[1].Checked:=False;
CheckBoxs[2].Checked:=False;
CheckBoxs[3].Checked:=False;
CheckBoxs[4].Checked:=False;
CheckBoxs[5].Checked:=False;
CheckBoxs[6].Checked:=False;
CheckBoxs[7].Checked:=False;

CheckBoxs[0].State:=cbChecked;
CheckBoxs[1].State:=cbChecked;
CheckBoxs[2].State:=cbChecked;
CheckBoxs[3].State:=cbChecked;
CheckBoxs[4].State:=cbChecked;
CheckBoxs[5].State:=cbChecked;
CheckBoxs[6].State:=cbChecked;
CheckBoxs[7].State:=cbChecked;

CheckBoxs[0].TabOrder:=1;
CheckBoxs[1].TabOrder:=1;
CheckBoxs[2].TabOrder:=1;
CheckBoxs[3].TabOrder:=1;
CheckBoxs[4].TabOrder:=1;
CheckBoxs[5].TabOrder:=1;
CheckBoxs[6].TabOrder:=1;
CheckBoxs[7].TabOrder:=1;

//ComboBox Setup:
ComboBoxs[0]:=TComboBox.Create(VWMSF);
ComboBoxs[1]:=TComboBox.Create(VWMSF);

ComboBoxs[0].Parent:=VWMSF;
ComboBoxs[1].Parent:=VWMSF;

ComboBoxs[0].Left:=1;
ComboBoxs[1].Left:=1;

ComboBoxs[0].Top:=1;
ComboBoxs[1].Top:=1;

ComboBoxs[0].Width:=1;
ComboBoxs[1].Width:=1;

ComboBoxs[0].Height:=1;
ComboBoxs[1].Height:=1;

ComboBoxs[0].ItemHeight:=13;
ComboBoxs[1].ItemHeight:=13;

ComboBoxs[0].TabOrder:=13;
ComboBoxs[1].TabOrder:=14;

ComboBoxs[0].Text:='Iron';
ComboBoxs[1].Text:='Tin';

ComboBoxs[0].Items.Add('Clay');
ComboBoxs[0].Items.Add('Tin');
ComboBoxs[0].Items.Add('Copper');
ComboBoxs[0].Items.Add('Iron');
ComboBoxs[0].Items.Add('Silver');
ComboBoxs[1].Items.Add('Clay');
ComboBoxs[1].Items.Add('Tin');
ComboBoxs[1].Items.Add('Copper');
ComboBoxs[1].Items.Add('Iron');
ComboBoxs[1].Items.Add('Silver');

//Button's Setup:
Buttons[0]:=TButton.Create(VWMSF);
Buttons[1]:=TButton.Create(VWMSF);
Buttons[2]:=TButton.Create(VWMSF);
Buttons[3]:=TButton.Create(VWMSF);

Buttons[0].Parent:=VWMSF;
Buttons[1].Parent:=VWMSF;
Buttons[2].Parent:=VWMSF;
Buttons[3].Parent:=VWMSF;

Buttons[0].Left:=1;
Buttons[1].Left:=1;
Buttons[2].Left:=1;
Buttons[3].Left:=1;

Buttons[0].Top:=1;
Buttons[1].Top:=1;
Buttons[2].Top:=1;
Buttons[3].Top:=1;

Buttons[0].Width:=1;
Buttons[1].Width:=1;
Buttons[2].Width:=1;
Buttons[3].Width:=1;

Buttons[0].Height:=1;
Buttons[1].Height:=1;
Buttons[2].Height:=1;
Buttons[3].Height:=1;

Buttons[0].Caption:='';
Buttons[1].Caption:='';
Buttons[2].Caption:='';
Buttons[3].Caption:='';

Buttons[0].ModalResult:=0;
Buttons[1].ModalResult:=1;
Buttons[2].ModalResult:=4;
Buttons[3].ModalResult:=2;

Buttons[0].TabOrder:=1;
Buttons[1].TabOrder:=1;
Buttons[2].TabOrder:=1;
Buttons[3].TabOrder:=1;

//Edits Setup:
Edits[0]:=TEdit.Create(VWMSF);
Edits[1]:=TEdit.Create(VWMSF);
Edits[2]:=TEdit.Create(VWMSF);
Edits[3]:=TEdit.Create(VWMSF);

Edits[0].Parent:=VWMSF;
Edits[1].Parent:=VWMSF;
Edits[2].Parent:=VWMSF;
Edits[3].Parent:=VWMSF;

Edits[0].Left:=1;
Edits[1].Left:=1;
Edits[2].Left:=1;
Edits[3].Left:=1;

Edits[0].Top:=1;
Edits[1].Top:=1;
Edits[2].Top:=1;
Edits[3].Top:=1;

Edits[0].Width:=1;
Edits[1].Width:=1;
Edits[2].Width:=1;
Edits[3].Width:=1;

Edits[0].Height:=1;
Edits[1].Height:=1;
Edits[2].Height:=1;
Edits[3].Height:=1;

Edits[0].MaxLength:=0;
Edits[1].MaxLength:=0;
Edits[2].MaxLength:=0;
Edits[3].MaxLength:=0;

Edits[0].TabOrder:=1;
Edits[1].TabOrder:=1;
Edits[2].TabOrder:=1;
Edits[3].TabOrder:=1;

Edits[0].Text:='';
Edits[1].Text:='';
Edits[2].Text:='';
Edits[3].Text:='';
end;

{procedure MainForm_Setup;
begin
VWMSF := CreateForm;
VWMSF.Left := 369;
VWMSF.Top := 119;
VWMSF.Width := 398;
VWMSF.Height := 420;
VWMSF.Caption := 'Varrock West Miner - By Dan'#39's The Man';
VWMSF.Color := clBtnFace;
VWMSF.Font.Color := clWindowText;
VWMSF.Font.Height := -11;
VWMSF.Font.Name := 'MS Sans Serif';
VWMSF.Font.Style := [];
VWMSF.Visible := True;
VWMSF.PixelsPerInch := 96;
Label1 := TLabel.Create(VWMSF);
Label1.Parent := VWMSF;
Label1.Left := 40;
Label1.Top := 8;
Label1.Width := 303;
Label1.Height := 37;
Label1.Caption := 'Varrock West Miner';
Label1.Font.Color := clWindowText;
Label1.Font.Height := -32;
Label1.Font.Name := 'Arial';
Label1.Font.Style := [fsBold];
Label1.ParentFont := False;
Label2 := TLabel.Create(VWMSF);
Label2.Parent := VWMSF;
Label2.Left := 80;
Label2.Top := 40;
Label2.Width := 225;
Label2.Height := 18;
Label2.Caption := 'By Dan'#39's The Man (a.k.a IP-Drowner) ';
Label2.Font.Color := clWindowText;
Label2.Font.Height := -16;
Label2.Font.Name := 'Monotype Corsiva';
Label2.Font.Style := [fsItalic];
Label2.ParentFont := False;
Label3 := TLabel.Create(VWMSF);
Label3.Parent := VWMSF;
Label3.Left := 176;
Label3.Top := 72;
Label3.Width := 103;
Label3.Height := 16;
Label3.Caption := 'Ore to mine most:';
Label3.Font.Color := clWindowText;
Label3.Font.Height := -13;
Label3.Font.Name := 'MS Sans Serif';
Label3.Font.Style := [];
Label3.ParentFont := False;
Label4 := TLabel.Create(VWMSF);
Label4.Parent := VWMSF;
Label4.Left := 176;
Label4.Top := 112;
Label4.Width := 103;
Label4.Height := 16;
Label4.Caption := 'Ore to mine least:';
Label4.Font.Color := clWindowText;
Label4.Font.Height := -13;
Label4.Font.Name := 'MS Sans Serif';
Label4.Font.Style := [];
Label4.ParentFont := False;
Label5 := TLabel.Create(VWMSF);
Label5.Parent := VWMSF;
Label5.Left := 144;
Label5.Top := 192;
Label5.Width := 198;
Label5.Height := 16;
Label5.Caption := 'Folder to save Progress Reports:';
Label5.Font.Color := clWindowText;
Label5.Font.Height := -13;
Label5.Font.Name := 'MS Sans Serif';
Label5.Font.Style := [];
Label5.ParentFont := False;
Label6 := TLabel.Create(VWMSF);
Label6.Parent := VWMSF;
Label6.Left := 144;
Label6.Top := 232;
Label6.Width := 167;
Label6.Height := 16;
Label6.Caption := 'Folder to save Screenshots:';
Label6.Font.Color := clWindowText;
Label6.Font.Height := -13;
Label6.Font.Name := 'MS Sans Serif';
Label6.Font.Style := [];
Label6.ParentFont := False;
Label7 := TLabel.Create(VWMSF);
Label7.Parent := VWMSF;
Label7.Left := 24;
Label7.Top := 360;
Label7.Width := 332;
Label7.Height := 13;
Label7.Caption :=
Label8 := TLabel.Create(VWMSF);
Label8.Parent := VWMSF;
Label8.Left := 16;
Label8.Top := 272;
Label8.Width := 78;
Label8.Height := 16;
Label8.Caption := 'SRL Stats ID:';
Label8.Font.Color := clWindowText;
Label8.Font.Height := -13;
Label8.Font.Name := 'MS Sans Serif';
Label8.Font.Style := [];
Label8.ParentFont := False;
Label9 := TLabel.Create(VWMSF);
Label9.Parent := VWMSF;
Label9.Left := 144;
Label9.Top := 272;
Label9.Width := 125;
Label9.Height := 16;
Label9.Caption := 'SRL Stats Password:';
Label9.Font.Color := clWindowText;
Label9.Font.Height := -13;
Label9.Font.Name := 'MS Sans Serif';
Label9.Font.Style := [];
Label9.ParentFont := False;
CheckBox1 := TCheckBox.Create(VWMSF);
CheckBox1.Parent := VWMSF;
CheckBox1.Left := 16;
CheckBox1.Top := 72;
CheckBox1.Width := 97;
CheckBox1.Height := 17;
CheckBox1.Caption := 'Powermine Ores';
CheckBox1.TabOrder := 8;
CheckBox3 := TCheckBox.Create(VWMSF);
CheckBox3.Parent := VWMSF;
CheckBox3.Left := 16;
CheckBox3.Top := 96;
CheckBox3.Width := 97;
CheckBox3.Height := 17;
CheckBox3.Caption := 'Use Anti-Ban';
CheckBox3.Checked := True;
CheckBox3.State := cbChecked;
CheckBox3.TabOrder := 9;
CheckBox4 := TCheckBox.Create(VWMSF);
CheckBox4.Parent := VWMSF;
CheckBox4.Left := 16;
CheckBox4.Top := 120;
CheckBox4.Width := 97;
CheckBox4.Height := 17;
CheckBox4.Caption := 'Use Fast Mining';
CheckBox4.TabOrder := 10;
CheckBox5 := TCheckBox.Create(VWMSF);
CheckBox5.Parent := VWMSF;
CheckBox5.Left := 16;
CheckBox5.Top := 144;
CheckBox5.Width := 113;
CheckBox5.Height := 17;
CheckBox5.Caption := 'Pickaxe Detection';
CheckBox5.TabOrder := 11;
CheckBox2 := TCheckBox.Create(VWMSF);
CheckBox2.Parent := VWMSF;
CheckBox2.Left := 16;
CheckBox2.Top := 168;
CheckBox2.Width := 121;
CheckBox2.Height := 17;
CheckBox2.Caption := 'Use Auto Responder';
CheckBox2.Checked := True;
CheckBox2.State := cbChecked;
CheckBox2.TabOrder := 12;
ComboBox1 := TComboBox.Create(VWMSF);
ComboBox1.Parent := VWMSF;
ComboBox1.Left := 176;
ComboBox1.Top := 88;
ComboBox1.Width := 145;
ComboBox1.Height := 21;
ComboBox1.ItemHeight := 13;
ComboBox1.TabOrder := 13;
ComboBox1.Text := 'Iron';
ComboBox1.Items.Add('Clay');
ComboBox1.Items.Add('Tin');
ComboBox1.Items.Add('Copper');
ComboBox1.Items.Add('Iron');
ComboBox1.Items.Add('Silver');
ComboBox2 := TComboBox.Create(VWMSF);
ComboBox2.Parent := VWMSF;
ComboBox2.Left := 176;
ComboBox2.Top := 128;
ComboBox2.Width := 145;
ComboBox2.Height := 21;
ComboBox2.ItemHeight := 13;
ComboBox2.TabOrder := 14;
ComboBox2.Text := 'Tin';
ComboBox2.Items.Add('Clay');
ComboBox2.Items.Add('Tin');
ComboBox2.Items.Add('Copper');
ComboBox2.Items.Add('Iron');
ComboBox2.Items.Add('Silver');
Button1 := TButton.Create(VWMSF);
Button1.Parent := VWMSF;
Button1.Left := 176;
Button1.Top := 160;
Button1.Width := 145;
Button1.Height := 25;
Button1.Caption := '&Setup Players';
Button1.TabOrder := 15;
CheckBox6 := TCheckBox.Create(VWMSF);
CheckBox6.Parent := VWMSF;
CheckBox6.Left := 16;
CheckBox6.Top := 192;
CheckBox6.Width := 97;
CheckBox6.Height := 17;
CheckBox6.Caption := 'Auto Update';
CheckBox6.Checked := True;
CheckBox6.State := cbChecked;
CheckBox6.TabOrder := 16;
CheckBox7 := TCheckBox.Create(VWMSF);
CheckBox7.Parent := VWMSF;
CheckBox7.Left := 16;
CheckBox7.Top := 216;
CheckBox7.Width := 121;
CheckBox7.Height := 17;
CheckBox7.Caption := 'Take Screenshots';
CheckBox7.Checked := True;
CheckBox7.State := cbChecked;
CheckBox7.TabOrder := 17;
CheckBox8 := TCheckBox.Create(VWMSF);
CheckBox8.Parent := VWMSF;
CheckBox8.Left := 16;
CheckBox8.Top := 240;
CheckBox8.Width := 129;
CheckBox8.Height := 17;
CheckBox8.Caption := 'Save Progress Reports';
CheckBox8.Checked := True;
CheckBox8.State := cbChecked;
CheckBox8.TabOrder := 18;
Edit1 := TEdit.Create(VWMSF);
Edit1.Parent := VWMSF;
Edit1.Left := 144;
Edit1.Top := 208;
Edit1.Width := 201;
Edit1.Height := 21;
Edit1.TabOrder := 19;
Edit1.Text := 'C:\Documents and Settings\PR\';
Edit2 := TEdit.Create(VWMSF);
Edit2.Parent := VWMSF;
Edit2.Left := 144;
Edit2.Top := 248;
Edit2.Width := 201;
Edit2.Height := 21;
Edit2.TabOrder := 20;
Edit2.Text := 'C:\Documents and Settings\SS\';
Button2 := TButton.Create(VWMSF);
Button2.Parent := VWMSF;
Button2.Left := 8;
Button2.Top := 328;
Button2.Width := 113;
Button2.Height := 25;
Button2.Caption := 'Start Script';
Button2.ModalResult := 1;
Button2.TabOrder := 21;
Button3 := TButton.Create(VWMSF);
Button3.Parent := VWMSF;
Button3.Left := 128;
Button3.Top := 328;
Button3.Width := 113;
Button3.Height := 25;
Button3.Caption := 'Clear all Fields';
Button3.TabOrder := 22;
Button4 := TButton.Create(VWMSF);
Button4.Parent := VWMSF;
Button4.Left := 256;
Button4.Top := 328;
Button4.Width := 113;
Button4.Height := 25;
Button4.Caption := 'Cancel Script';
Button4.TabOrder := 23;
Edit3 := TEdit.Create(VWMSF);
Edit3.Parent := VWMSF;
Edit3.Left := 16;
Edit3.Top := 288;
Edit3.Width := 105;
Edit3.Height := 21;
Edit3.MaxLength := 4;
Edit3.TabOrder := 24;
Edit3.Text := '1669';
Edit4 := TEdit.Create(VWMSF);
Edit4.Parent := VWMSF;
Edit4.Left := 144;
Edit4.Top := 288;
Edit4.Width := 145;
Edit4.Height := 21;
Edit4.MaxLength := 35;
Edit4.PasswordChar := '*';
Edit4.TabOrder := 25;
Edit4.Text := 'password';
end;}

procedure SafeLoadMainForm;
var
tva1, tva2: TVariantArray;
tv: Variant;
begin
MainForm_Setup;
SetArrayLength(tva1, 0);
SetArrayLength(tva2, 0);
VWMSF.ShowModal;
tv:=ThreadSafeCall('MainForm_Setup', tva1);
//ThreadSafeCall('ThreadSafeCall('MainForm_Setup', tva1)', tva2);
end;

function DetectPlayerFormCloseDisplaySetupForm: Boolean;
begin
case (srl_PlayerForm.Visible) of
True: VWMSF.Visible:=False;
False: VWMSF.Visible:=True;
end;
Result:=srl_PlayerForm.Visible;
end;

procedure ConvMainSetupFormToSPlayers;
begin
{Players[CurrentPlayer].Strings[2]:=Lowercase(ComboBox1.Text);
Players[CurrentPlayer].Strings[3]:=Lowercase(ComboBox2.Text);
Players[CurrentPlayer].Booleans[2]:=CheckBox1}
//ComboBox1.Text
end;

function SetupColours: TPoint;
begin
// case (Players[C
end;

begin
SafeLoadMainForm;
SRLPlayerForm(True, ['Attack Mugger?', 'Run Further Away?'], ['S.M.A.R.T World', 'How Many Loads?'], ['Run Direction (if n fight)?', 'Custom Disguise Title'], []);
end.

I am trying to load all the safe variables into one procedure, instead of multiple ones showed in the SCAR Manual (at the bottom). So, how can i fix this error please? And why did it occur?

Thanks for reading and replying (if you do :p)!

Santa_Clause

2008-06-27 23:10:42

Why do you want to load them in one procedure? You're starting to annoy me.

Daniel

2008-06-27 23:30:28

From: Santa_Clause
Why do you want to load them in one procedure? You're starting to annoy me.

Grr, Santy! You told me on MSN already several times about, "Shorten Up Your Script". I just want to try this :p

Jackrawl

2008-06-28 02:25:40

This is a good reason that you should make most, if not all, variables local. Theres no way we can help you debug that if you don't give us all of the variable definitions you used, which are now like scrambled eggs throughout your script.

Daniel

2008-06-28 03:10:17

From: Jackrawl
This is a good reason that you should make most, if not all, variables local. Theres no way we can help you debug that if you don't give us all of the variable definitions you used, which are now like scrambled eggs throughout your script.

What do you mean? In that procedure most variables are local, except the VWMSF one, which is obviously a TForm.

nielsie95

2008-06-28 05:08:22

It doesn't work because of this:


'ThreadSafeCall('MainForm_Setup', tva1)'

This is not a string. This is:


'ThreadSafeCall(' + 'MainForm_Setup' + ', tva1)'

// or this:

'ThreadSafeCall(MainForm_Setup, tva1)'

And why do want to load the mainform twice? And also make sure that, if VWMSF is your mainform, you load the form first before showing.

Daniel

2008-06-28 05:31:13

Crap, i posted the wrong thing. Updated.

mixster

2008-06-28 07:31:00

Compiles fine for me with the only problem being it crashes Scar when the form is closed.
About loading the safe var's, did you want something like this:

procedure ShowForm;
begin
VWMSF.ShowModal;
end;

procedure LaunchForm;
var
v: TVariantArray;
begin
v := [];
ThreadSafeCall('MainForm_Setup', v);
ThreadSafeCall('ShowForm', v);
end;
- I'm pretty sure you have to safe call the ShowModal, so it will need that procedure, but you can combine the 2 safe calls into one procedure :)

nielsie95

2008-06-28 07:33:08


program NewProgram;
{.include SRL\SRL.scar}
{.include SRL\SRL\misc\Users.scar}

var
{--Original Form Style Setup--
VWMSF : TForm;
Label1, Label2, Label3, Label4, Label5, Label6, Label7 : TLabel;
CheckBox1, CheckBox2, CheckBox3, CheckBox4, CheckBox5, CheckBox6, CheckBox7, CheckBox8 : TCheckBox;
ComboBox1, ComboBox2 : TComboBox;
Button1, Button2, Button3, Button4 : TButton;
Edit1, Edit2 : TEdit;}
VWMSF: TForm;
Labels: array of TLabel;
CheckBoxs: array of TCheckBox;
ComboBoxs: array of TComboBox;
Buttons: array of TButton;
Edits: array of TEdit;

procedure MainForm_Setup;
begin
//Array Length Setup:
SetArrayLength(Labels, 9);
SetArrayLength(CheckBoxs, 8);
SetArrayLength(ComboBoxs, 2);
SetArrayLength(Buttons, 4);
SetArrayLength(Edits, 4);

//Form Design Setup:
VWMSF:=CreateForm;
VWMSF.Left:=369;
VWMSF.Top:=119;
VWMSF.Width:=398;
VWMSF.Height:=420;
VWMSF.Caption:='Varrock West Miner - By Dan''s The Man';
VWMSF.Color:=clBtnFace;
VWMSF.Font.Color:=clWindowText;
VWMSF.Font.Height:=-11;
VWMSF.Font.Name:='MS Sans Serif';
VWMSF.Font.Style:=[];
VWMSF.Visible:=False;
VWMSF.PixelsPerInch:=96;

//Label Setup:
Labels[0]:=TLabel.Create(VWMSF);
Labels[1]:=TLabel.Create(VWMSF);
Labels[2]:=TLabel.Create(VWMSF);
Labels[3]:=TLabel.Create(VWMSF);
Labels[4]:=TLabel.Create(VWMSF);
Labels[5]:=TLabel.Create(VWMSF);
Labels[6]:=TLabel.Create(VWMSF);
Labels[7]:=TLabel.Create(VWMSF);
Labels[8]:=TLabel.Create(VWMSF);

Labels[0].Parent:=VWMSF;
Labels[1].Parent:=VWMSF;
Labels[2].Parent:=VWMSF;
Labels[3].Parent:=VWMSF;
Labels[4].Parent:=VWMSF;
Labels[5].Parent:=VWMSF;
Labels[6].Parent:=VWMSF;
Labels[7].Parent:=VWMSF;
Labels[8].Parent:=VWMSF;

Labels[0].Left:=40;
Labels[1].Left:=80;
Labels[2].Left:=176;
Labels[3].Left:=176;
Labels[4].Left:=144;
Labels[5].Left:=144;
Labels[6].Left:=24;
Labels[7].Left:=16;
Labels[8].Left:=144;

Labels[0].Top:=8;
Labels[1].Top:=40;
Labels[2].Top:=72;
Labels[3].Top:=112;
Labels[4].Top:=192;
Labels[5].Top:=232;
Labels[6].Top:=360;
Labels[7].Top:=272;
Labels[8].Top:=272;

Labels[0].Width:=303;
Labels[1].Width:=225;
Labels[2].Width:=103;
Labels[3].Width:=103;
Labels[4].Width:=198;
Labels[5].Width:=167;
Labels[6].Width:=332;
Labels[7].Width:=78;
Labels[8].Width:=125;

Labels[0].Height:=37;
Labels[1].Height:=18;
Labels[2].Height:=16;
Labels[3].Height:=16;
Labels[4].Height:=16;
Labels[5].Height:=16;
Labels[6].Height:=13;
Labels[7].Height:=16;
Labels[8].Height:=16;

Labels[0].Caption:='Varrock West Miner';
Labels[1].Caption:='By Dan'#39's The Man (a.k.a IP-Drowner) ';
Labels[2].Caption:='Ore to mine most:';
Labels[3].Caption:='Ore to mine least:';
Labels[4].Caption:='Folder to save Progress Reports';
Labels[5].Caption:='Folder to save Screenshots:';
Labels[6].Caption:='Script version 0.0.2 - Copyright (c) 2008+ Dan'#39's The Man - SRL/SCAR';
Labels[7].Caption:='SRL Stats ID:';
Labels[8].Caption:='SRL Stats Password:';

Labels[0].Font.Color:=clBlack;
Labels[1].Font.Color:=clBlack;
Labels[2].Font.Color:=clBlack;
Labels[3].Font.Color:=clBlack;
Labels[4].Font.Color:=clBlack;
Labels[5].Font.Color:=clBlack;
Labels[6].Font.Color:=clBlack;
Labels[7].Font.Color:=clBlack;
Labels[8].Font.Color:=clBlack;

Labels[0].Font.Height:=-32;
Labels[1].Font.Height:=-16;
Labels[2].Font.Height:=-13;
Labels[3].Font.Height:=-13;
Labels[4].Font.Height:=-13;
Labels[5].Font.Height:=-13;
//Labels[6].Font.Height:=1;
Labels[7].Font.Height:=-13;
Labels[8].Font.Height:=-13;

Labels[0].Font.Name:='Arial';
Labels[1].Font.Name:='';
Labels[2].Font.Name:='';
Labels[3].Font.Name:='';
Labels[4].Font.Name:='';
Labels[5].Font.Name:='';
Labels[6].Font.Name:='';
Labels[7].Font.Name:='';
Labels[8].Font.Name:='';

Labels[0].Font.Style:=[fsBold];
Labels[1].Font.Style:=[];
Labels[2].Font.Style:=[];
Labels[3].Font.Style:=[];
Labels[4].Font.Style:=[];
Labels[5].Font.Style:=[];
Labels[6].Font.Style:=[];
Labels[7].Font.Style:=[];
Labels[8].Font.Style:=[];

Labels[0].ParentFont:=False;
Labels[1].ParentFont:=False;
Labels[2].ParentFont:=False;
Labels[3].ParentFont:=False;
Labels[4].ParentFont:=False;
Labels[5].ParentFont:=False;
Labels[6].ParentFont:=False;
Labels[7].ParentFont:=False;
Labels[8].ParentFont:=False;

//CheckBox Setup:
CheckBoxs[0]:=TCheckBox.Create(VWMSF);
CheckBoxs[1]:=TCheckBox.Create(VWMSF);
CheckBoxs[2]:=TCheckBox.Create(VWMSF);
CheckBoxs[3]:=TCheckBox.Create(VWMSF);
CheckBoxs[4]:=TCheckBox.Create(VWMSF);
CheckBoxs[5]:=TCheckBox.Create(VWMSF);
CheckBoxs[6]:=TCheckBox.Create(VWMSF);
CheckBoxs[7]:=TCheckBox.Create(VWMSF);

CheckBoxs[0].Parent:=VWMSF;;
CheckBoxs[1].Parent:=VWMSF;;
CheckBoxs[2].Parent:=VWMSF;;
CheckBoxs[3].Parent:=VWMSF;;
CheckBoxs[4].Parent:=VWMSF;;
CheckBoxs[5].Parent:=VWMSF;;
CheckBoxs[6].Parent:=VWMSF;;
CheckBoxs[7].Parent:=VWMSF;;

CheckBoxs[0].Left:=1;
CheckBoxs[1].Left:=1;
CheckBoxs[2].Left:=1;
CheckBoxs[3].Left:=1;
CheckBoxs[4].Left:=1;
CheckBoxs[5].Left:=1;
CheckBoxs[6].Left:=1;
CheckBoxs[7].Left:=1;

CheckBoxs[0].Top:=1;
CheckBoxs[1].Top:=1;
CheckBoxs[2].Top:=1;
CheckBoxs[3].Top:=1;
CheckBoxs[4].Top:=1;
CheckBoxs[5].Top:=1;
CheckBoxs[6].Top:=1;
CheckBoxs[7].Top:=1;

CheckBoxs[0].Width:=1;
CheckBoxs[1].Width:=1;
CheckBoxs[2].Width:=1;
CheckBoxs[3].Width:=1;
CheckBoxs[4].Width:=1;
CheckBoxs[5].Width:=1;
CheckBoxs[6].Width:=1;
CheckBoxs[7].Width:=1;

CheckBoxs[0].Height:=1;
CheckBoxs[1].Height:=1;
CheckBoxs[2].Height:=1;
CheckBoxs[3].Height:=1;
CheckBoxs[4].Height:=1;
CheckBoxs[5].Height:=1;
CheckBoxs[6].Height:=1;
CheckBoxs[7].Height:=1;

CheckBoxs[0].Caption:='';
CheckBoxs[1].Caption:='';
CheckBoxs[2].Caption:='';
CheckBoxs[3].Caption:='';
CheckBoxs[4].Caption:='';
CheckBoxs[5].Caption:='';
CheckBoxs[6].Caption:='';
CheckBoxs[7].Caption:='';

CheckBoxs[0].Checked:=False;
CheckBoxs[1].Checked:=False;
CheckBoxs[2].Checked:=False;
CheckBoxs[3].Checked:=False;
CheckBoxs[4].Checked:=False;
CheckBoxs[5].Checked:=False;
CheckBoxs[6].Checked:=False;
CheckBoxs[7].Checked:=False;

CheckBoxs[0].State:=cbChecked;
CheckBoxs[1].State:=cbChecked;
CheckBoxs[2].State:=cbChecked;
CheckBoxs[3].State:=cbChecked;
CheckBoxs[4].State:=cbChecked;
CheckBoxs[5].State:=cbChecked;
CheckBoxs[6].State:=cbChecked;
CheckBoxs[7].State:=cbChecked;

CheckBoxs[0].TabOrder:=1;
CheckBoxs[1].TabOrder:=1;
CheckBoxs[2].TabOrder:=1;
CheckBoxs[3].TabOrder:=1;
CheckBoxs[4].TabOrder:=1;
CheckBoxs[5].TabOrder:=1;
CheckBoxs[6].TabOrder:=1;
CheckBoxs[7].TabOrder:=1;

//ComboBox Setup:
ComboBoxs[0]:=TComboBox.Create(VWMSF);
ComboBoxs[1]:=TComboBox.Create(VWMSF);

ComboBoxs[0].Parent:=VWMSF;
ComboBoxs[1].Parent:=VWMSF;

ComboBoxs[0].Left:=1;
ComboBoxs[1].Left:=1;

ComboBoxs[0].Top:=1;
ComboBoxs[1].Top:=1;

ComboBoxs[0].Width:=1;
ComboBoxs[1].Width:=1;

ComboBoxs[0].Height:=1;
ComboBoxs[1].Height:=1;

ComboBoxs[0].ItemHeight:=13;
ComboBoxs[1].ItemHeight:=13;

ComboBoxs[0].TabOrder:=13;
ComboBoxs[1].TabOrder:=14;

ComboBoxs[0].Text:='Iron';
ComboBoxs[1].Text:='Tin';

ComboBoxs[0].Items.Add('Clay');
ComboBoxs[0].Items.Add('Tin');
ComboBoxs[0].Items.Add('Copper');
ComboBoxs[0].Items.Add('Iron');
ComboBoxs[0].Items.Add('Silver');
ComboBoxs[1].Items.Add('Clay');
ComboBoxs[1].Items.Add('Tin');
ComboBoxs[1].Items.Add('Copper');
ComboBoxs[1].Items.Add('Iron');
ComboBoxs[1].Items.Add('Silver');

//Button's Setup:
Buttons[0]:=TButton.Create(VWMSF);
Buttons[1]:=TButton.Create(VWMSF);
Buttons[2]:=TButton.Create(VWMSF);
Buttons[3]:=TButton.Create(VWMSF);

Buttons[0].Parent:=VWMSF;
Buttons[1].Parent:=VWMSF;
Buttons[2].Parent:=VWMSF;
Buttons[3].Parent:=VWMSF;

Buttons[0].Left:=1;
Buttons[1].Left:=1;
Buttons[2].Left:=1;
Buttons[3].Left:=1;

Buttons[0].Top:=1;
Buttons[1].Top:=1;
Buttons[2].Top:=1;
Buttons[3].Top:=1;

Buttons[0].Width:=1;
Buttons[1].Width:=1;
Buttons[2].Width:=1;
Buttons[3].Width:=1;

Buttons[0].Height:=1;
Buttons[1].Height:=1;
Buttons[2].Height:=1;
Buttons[3].Height:=1;

Buttons[0].Caption:='';
Buttons[1].Caption:='';
Buttons[2].Caption:='';
Buttons[3].Caption:='';

Buttons[0].ModalResult:=0;
Buttons[1].ModalResult:=1;
Buttons[2].ModalResult:=4;
Buttons[3].ModalResult:=2;

Buttons[0].TabOrder:=1;
Buttons[1].TabOrder:=1;
Buttons[2].TabOrder:=1;
Buttons[3].TabOrder:=1;

//Edits Setup:
Edits[0]:=TEdit.Create(VWMSF);
Edits[1]:=TEdit.Create(VWMSF);
Edits[2]:=TEdit.Create(VWMSF);
Edits[3]:=TEdit.Create(VWMSF);

Edits[0].Parent:=VWMSF;
Edits[1].Parent:=VWMSF;
Edits[2].Parent:=VWMSF;
Edits[3].Parent:=VWMSF;

Edits[0].Left:=1;
Edits[1].Left:=1;
Edits[2].Left:=1;
Edits[3].Left:=1;

Edits[0].Top:=1;
Edits[1].Top:=1;
Edits[2].Top:=1;
Edits[3].Top:=1;

Edits[0].Width:=1;
Edits[1].Width:=1;
Edits[2].Width:=1;
Edits[3].Width:=1;

Edits[0].Height:=1;
Edits[1].Height:=1;
Edits[2].Height:=1;
Edits[3].Height:=1;

Edits[0].MaxLength:=0;
Edits[1].MaxLength:=0;
Edits[2].MaxLength:=0;
Edits[3].MaxLength:=0;

Edits[0].TabOrder:=1;
Edits[1].TabOrder:=1;
Edits[2].TabOrder:=1;
Edits[3].TabOrder:=1;

Edits[0].Text:='';
Edits[1].Text:='';
Edits[2].Text:='';
Edits[3].Text:='';
end;

{procedure MainForm_Setup;
begin
VWMSF := CreateForm;
VWMSF.Left := 369;
VWMSF.Top := 119;
VWMSF.Width := 398;
VWMSF.Height := 420;
VWMSF.Caption := 'Varrock West Miner - By Dan'#39's The Man';
VWMSF.Color := clBtnFace;
VWMSF.Font.Color := clWindowText;
VWMSF.Font.Height := -11;
VWMSF.Font.Name := 'MS Sans Serif';
VWMSF.Font.Style := [];
VWMSF.Visible := True;
VWMSF.PixelsPerInch := 96;
Label1 := TLabel.Create(VWMSF);
Label1.Parent := VWMSF;
Label1.Left := 40;
Label1.Top := 8;
Label1.Width := 303;
Label1.Height := 37;
Label1.Caption := 'Varrock West Miner';
Label1.Font.Color := clWindowText;
Label1.Font.Height := -32;
Label1.Font.Name := 'Arial';
Label1.Font.Style := [fsBold];
Label1.ParentFont := False;
Label2 := TLabel.Create(VWMSF);
Label2.Parent := VWMSF;
Label2.Left := 80;
Label2.Top := 40;
Label2.Width := 225;
Label2.Height := 18;
Label2.Caption := 'By Dan'#39's The Man (a.k.a IP-Drowner) ';
Label2.Font.Color := clWindowText;
Label2.Font.Height := -16;
Label2.Font.Name := 'Monotype Corsiva';
Label2.Font.Style := [fsItalic];
Label2.ParentFont := False;
Label3 := TLabel.Create(VWMSF);
Label3.Parent := VWMSF;
Label3.Left := 176;
Label3.Top := 72;
Label3.Width := 103;
Label3.Height := 16;
Label3.Caption := 'Ore to mine most:';
Label3.Font.Color := clWindowText;
Label3.Font.Height := -13;
Label3.Font.Name := 'MS Sans Serif';
Label3.Font.Style := [];
Label3.ParentFont := False;
Label4 := TLabel.Create(VWMSF);
Label4.Parent := VWMSF;
Label4.Left := 176;
Label4.Top := 112;
Label4.Width := 103;
Label4.Height := 16;
Label4.Caption := 'Ore to mine least:';
Label4.Font.Color := clWindowText;
Label4.Font.Height := -13;
Label4.Font.Name := 'MS Sans Serif';
Label4.Font.Style := [];
Label4.ParentFont := False;
Label5 := TLabel.Create(VWMSF);
Label5.Parent := VWMSF;
Label5.Left := 144;
Label5.Top := 192;
Label5.Width := 198;
Label5.Height := 16;
Label5.Caption := 'Folder to save Progress Reports:';
Label5.Font.Color := clWindowText;
Label5.Font.Height := -13;
Label5.Font.Name := 'MS Sans Serif';
Label5.Font.Style := [];
Label5.ParentFont := False;
Label6 := TLabel.Create(VWMSF);
Label6.Parent := VWMSF;
Label6.Left := 144;
Label6.Top := 232;
Label6.Width := 167;
Label6.Height := 16;
Label6.Caption := 'Folder to save Screenshots:';
Label6.Font.Color := clWindowText;
Label6.Font.Height := -13;
Label6.Font.Name := 'MS Sans Serif';
Label6.Font.Style := [];
Label6.ParentFont := False;
Label7 := TLabel.Create(VWMSF);
Label7.Parent := VWMSF;
Label7.Left := 24;
Label7.Top := 360;
Label7.Width := 332;
Label7.Height := 13;
Label7.Caption :=
Label8 := TLabel.Create(VWMSF);
Label8.Parent := VWMSF;
Label8.Left := 16;
Label8.Top := 272;
Label8.Width := 78;
Label8.Height := 16;
Label8.Caption := 'SRL Stats ID:';
Label8.Font.Color := clWindowText;
Label8.Font.Height := -13;
Label8.Font.Name := 'MS Sans Serif';
Label8.Font.Style := [];
Label8.ParentFont := False;
Label9 := TLabel.Create(VWMSF);
Label9.Parent := VWMSF;
Label9.Left := 144;
Label9.Top := 272;
Label9.Width := 125;
Label9.Height := 16;
Label9.Caption := 'SRL Stats Password:';
Label9.Font.Color := clWindowText;
Label9.Font.Height := -13;
Label9.Font.Name := 'MS Sans Serif';
Label9.Font.Style := [];
Label9.ParentFont := False;
CheckBox1 := TCheckBox.Create(VWMSF);
CheckBox1.Parent := VWMSF;
CheckBox1.Left := 16;
CheckBox1.Top := 72;
CheckBox1.Width := 97;
CheckBox1.Height := 17;
CheckBox1.Caption := 'Powermine Ores';
CheckBox1.TabOrder := 8;
CheckBox3 := TCheckBox.Create(VWMSF);
CheckBox3.Parent := VWMSF;
CheckBox3.Left := 16;
CheckBox3.Top := 96;
CheckBox3.Width := 97;
CheckBox3.Height := 17;
CheckBox3.Caption := 'Use Anti-Ban';
CheckBox3.Checked := True;
CheckBox3.State := cbChecked;
CheckBox3.TabOrder := 9;
CheckBox4 := TCheckBox.Create(VWMSF);
CheckBox4.Parent := VWMSF;
CheckBox4.Left := 16;
CheckBox4.Top := 120;
CheckBox4.Width := 97;
CheckBox4.Height := 17;
CheckBox4.Caption := 'Use Fast Mining';
CheckBox4.TabOrder := 10;
CheckBox5 := TCheckBox.Create(VWMSF);
CheckBox5.Parent := VWMSF;
CheckBox5.Left := 16;
CheckBox5.Top := 144;
CheckBox5.Width := 113;
CheckBox5.Height := 17;
CheckBox5.Caption := 'Pickaxe Detection';
CheckBox5.TabOrder := 11;
CheckBox2 := TCheckBox.Create(VWMSF);
CheckBox2.Parent := VWMSF;
CheckBox2.Left := 16;
CheckBox2.Top := 168;
CheckBox2.Width := 121;
CheckBox2.Height := 17;
CheckBox2.Caption := 'Use Auto Responder';
CheckBox2.Checked := True;
CheckBox2.State := cbChecked;
CheckBox2.TabOrder := 12;
ComboBox1 := TComboBox.Create(VWMSF);
ComboBox1.Parent := VWMSF;
ComboBox1.Left := 176;
ComboBox1.Top := 88;
ComboBox1.Width := 145;
ComboBox1.Height := 21;
ComboBox1.ItemHeight := 13;
ComboBox1.TabOrder := 13;
ComboBox1.Text := 'Iron';
ComboBox1.Items.Add('Clay');
ComboBox1.Items.Add('Tin');
ComboBox1.Items.Add('Copper');
ComboBox1.Items.Add('Iron');
ComboBox1.Items.Add('Silver');
ComboBox2 := TComboBox.Create(VWMSF);
ComboBox2.Parent := VWMSF;
ComboBox2.Left := 176;
ComboBox2.Top := 128;
ComboBox2.Width := 145;
ComboBox2.Height := 21;
ComboBox2.ItemHeight := 13;
ComboBox2.TabOrder := 14;
ComboBox2.Text := 'Tin';
ComboBox2.Items.Add('Clay');
ComboBox2.Items.Add('Tin');
ComboBox2.Items.Add('Copper');
ComboBox2.Items.Add('Iron');
ComboBox2.Items.Add('Silver');
Button1 := TButton.Create(VWMSF);
Button1.Parent := VWMSF;
Button1.Left := 176;
Button1.Top := 160;
Button1.Width := 145;
Button1.Height := 25;
Button1.Caption := '&Setup Players';
Button1.TabOrder := 15;
CheckBox6 := TCheckBox.Create(VWMSF);
CheckBox6.Parent := VWMSF;
CheckBox6.Left := 16;
CheckBox6.Top := 192;
CheckBox6.Width := 97;
CheckBox6.Height := 17;
CheckBox6.Caption := 'Auto Update';
CheckBox6.Checked := True;
CheckBox6.State := cbChecked;
CheckBox6.TabOrder := 16;
CheckBox7 := TCheckBox.Create(VWMSF);
CheckBox7.Parent := VWMSF;
CheckBox7.Left := 16;
CheckBox7.Top := 216;
CheckBox7.Width := 121;
CheckBox7.Height := 17;
CheckBox7.Caption := 'Take Screenshots';
CheckBox7.Checked := True;
CheckBox7.State := cbChecked;
CheckBox7.TabOrder := 17;
CheckBox8 := TCheckBox.Create(VWMSF);
CheckBox8.Parent := VWMSF;
CheckBox8.Left := 16;
CheckBox8.Top := 240;
CheckBox8.Width := 129;
CheckBox8.Height := 17;
CheckBox8.Caption := 'Save Progress Reports';
CheckBox8.Checked := True;
CheckBox8.State := cbChecked;
CheckBox8.TabOrder := 18;
Edit1 := TEdit.Create(VWMSF);
Edit1.Parent := VWMSF;
Edit1.Left := 144;
Edit1.Top := 208;
Edit1.Width := 201;
Edit1.Height := 21;
Edit1.TabOrder := 19;
Edit1.Text := 'C:\Documents and Settings\PR\';
Edit2 := TEdit.Create(VWMSF);
Edit2.Parent := VWMSF;
Edit2.Left := 144;
Edit2.Top := 248;
Edit2.Width := 201;
Edit2.Height := 21;
Edit2.TabOrder := 20;
Edit2.Text := 'C:\Documents and Settings\SS\';
Button2 := TButton.Create(VWMSF);
Button2.Parent := VWMSF;
Button2.Left := 8;
Button2.Top := 328;
Button2.Width := 113;
Button2.Height := 25;
Button2.Caption := 'Start Script';
Button2.ModalResult := 1;
Button2.TabOrder := 21;
Button3 := TButton.Create(VWMSF);
Button3.Parent := VWMSF;
Button3.Left := 128;
Button3.Top := 328;
Button3.Width := 113;
Button3.Height := 25;
Button3.Caption := 'Clear all Fields';
Button3.TabOrder := 22;
Button4 := TButton.Create(VWMSF);
Button4.Parent := VWMSF;
Button4.Left := 256;
Button4.Top := 328;
Button4.Width := 113;
Button4.Height := 25;
Button4.Caption := 'Cancel Script';
Button4.TabOrder := 23;
Edit3 := TEdit.Create(VWMSF);
Edit3.Parent := VWMSF;
Edit3.Left := 16;
Edit3.Top := 288;
Edit3.Width := 105;
Edit3.Height := 21;
Edit3.MaxLength := 4;
Edit3.TabOrder := 24;
Edit3.Text := '1669';
Edit4 := TEdit.Create(VWMSF);
Edit4.Parent := VWMSF;
Edit4.Left := 144;
Edit4.Top := 288;
Edit4.Width := 145;
Edit4.Height := 21;
Edit4.MaxLength := 35;
Edit4.PasswordChar := '*';
Edit4.TabOrder := 25;
Edit4.Text := 'password';
end;}

procedure SafeLoadMainForm;
begin
MainForm_Setup;
VWMSF.ShowModal;
//ThreadSafeCall('ThreadSafeCall('MainForm_Setup', tva1)', tva2);
end;

function DetectPlayerFormCloseDisplaySetupForm: Boolean;
begin
case (srl_PlayerForm.Visible) of
True: VWMSF.Visible:=False;
False: VWMSF.Visible:=True;
end;
Result:=srl_PlayerForm.Visible;
end;

procedure ConvMainSetupFormToSPlayers;
begin
{Players[CurrentPlayer].Strings[2]:=Lowercase(ComboBox1.Text);
Players[CurrentPlayer].Strings[3]:=Lowercase(ComboBox2.Text);
Players[CurrentPlayer].Booleans[2]:=CheckBox1}
//ComboBox1.Text
end;

function SetupColours: TPoint;
begin
// case (Players[C
end;

var
v: TVariantArray;
begin
v := [];
ThreadSafeCall('SafeLoadMainForm', v);
SRLPlayerForm(True, ['Attack Mugger?', 'Run Further Away?'], ['S.M.A.R.T World', 'How Many Loads?'], ['Run Direction (if n fight)?', 'Custom Disguise Title'], []);
end.

You didn't actually loaded the form threadsafe.

Daniel

2008-06-28 07:39:18

No, i know that Nielsie and i have. I am just trying to put it into one procedure, which should work. There HAS to be a way.

nielsie95

2008-06-28 07:41:09

It is one procedure now.. Otherwise you can threadsafecall MainForm_Setup and let it ShowModal at the end of it.

Daniel

2008-06-28 07:45:43

From: nielsie95
It is one procedure now.. Otherwise you can threadsafecall MainForm_Setup and let it ShowModal at the end of it.

I know that, but you have a ThreadSafeCall within the Main Loop, which i don't want.

EDIT: After doing it yours and Widgets' way, i added the ShowModal into the main form loading procedure and SCAR still hangs after running it via ThreadSafeCall. Any ideas?

nielsie95

2008-06-28 07:58:14


program NewProgram;
{.include SRL\SRL.scar}
{.include SRL\SRL\misc\Users.scar}

var
{--Original Form Style Setup--
VWMSF : TForm;
Label1, Label2, Label3, Label4, Label5, Label6, Label7 : TLabel;
CheckBox1, CheckBox2, CheckBox3, CheckBox4, CheckBox5, CheckBox6, CheckBox7, CheckBox8 : TCheckBox;
ComboBox1, ComboBox2 : TComboBox;
Button1, Button2, Button3, Button4 : TButton;
Edit1, Edit2 : TEdit;}
VWMSF: TForm;
Labels: array of TLabel;
CheckBoxs: array of TCheckBox;
ComboBoxs: array of TComboBox;
Buttons: array of TButton;
Edits: array of TEdit;

procedure MainForm_Setup;
begin
//Array Length Setup:
SetArrayLength(Labels, 9);
SetArrayLength(CheckBoxs, 8);
SetArrayLength(ComboBoxs, 2);
SetArrayLength(Buttons, 4);
SetArrayLength(Edits, 4);

//Form Design Setup:
VWMSF:=CreateForm;
VWMSF.Left:=369;
VWMSF.Top:=119;
VWMSF.Width:=398;
VWMSF.Height:=420;
VWMSF.Caption:='Varrock West Miner - By Dan''s The Man';
VWMSF.Color:=clBtnFace;
VWMSF.Font.Color:=clWindowText;
VWMSF.Font.Height:=-11;
VWMSF.Font.Name:='MS Sans Serif';
VWMSF.Font.Style:=[];
VWMSF.Visible:=False;
VWMSF.PixelsPerInch:=96;

//Label Setup:
Labels[0]:=TLabel.Create(VWMSF);
Labels[1]:=TLabel.Create(VWMSF);
Labels[2]:=TLabel.Create(VWMSF);
Labels[3]:=TLabel.Create(VWMSF);
Labels[4]:=TLabel.Create(VWMSF);
Labels[5]:=TLabel.Create(VWMSF);
Labels[6]:=TLabel.Create(VWMSF);
Labels[7]:=TLabel.Create(VWMSF);
Labels[8]:=TLabel.Create(VWMSF);

Labels[0].Parent:=VWMSF;
Labels[1].Parent:=VWMSF;
Labels[2].Parent:=VWMSF;
Labels[3].Parent:=VWMSF;
Labels[4].Parent:=VWMSF;
Labels[5].Parent:=VWMSF;
Labels[6].Parent:=VWMSF;
Labels[7].Parent:=VWMSF;
Labels[8].Parent:=VWMSF;

Labels[0].Left:=40;
Labels[1].Left:=80;
Labels[2].Left:=176;
Labels[3].Left:=176;
Labels[4].Left:=144;
Labels[5].Left:=144;
Labels[6].Left:=24;
Labels[7].Left:=16;
Labels[8].Left:=144;

Labels[0].Top:=8;
Labels[1].Top:=40;
Labels[2].Top:=72;
Labels[3].Top:=112;
Labels[4].Top:=192;
Labels[5].Top:=232;
Labels[6].Top:=360;
Labels[7].Top:=272;
Labels[8].Top:=272;

Labels[0].Width:=303;
Labels[1].Width:=225;
Labels[2].Width:=103;
Labels[3].Width:=103;
Labels[4].Width:=198;
Labels[5].Width:=167;
Labels[6].Width:=332;
Labels[7].Width:=78;
Labels[8].Width:=125;

Labels[0].Height:=37;
Labels[1].Height:=18;
Labels[2].Height:=16;
Labels[3].Height:=16;
Labels[4].Height:=16;
Labels[5].Height:=16;
Labels[6].Height:=13;
Labels[7].Height:=16;
Labels[8].Height:=16;

Labels[0].Caption:='Varrock West Miner';
Labels[1].Caption:='By Dan'#39's The Man (a.k.a IP-Drowner) ';
Labels[2].Caption:='Ore to mine most:';
Labels[3].Caption:='Ore to mine least:';
Labels[4].Caption:='Folder to save Progress Reports';
Labels[5].Caption:='Folder to save Screenshots:';
Labels[6].Caption:='Script version 0.0.2 - Copyright (c) 2008+ Dan'#39's The Man - SRL/SCAR';
Labels[7].Caption:='SRL Stats ID:';
Labels[8].Caption:='SRL Stats Password:';

Labels[0].Font.Color:=clBlack;
Labels[1].Font.Color:=clBlack;
Labels[2].Font.Color:=clBlack;
Labels[3].Font.Color:=clBlack;
Labels[4].Font.Color:=clBlack;
Labels[5].Font.Color:=clBlack;
Labels[6].Font.Color:=clBlack;
Labels[7].Font.Color:=clBlack;
Labels[8].Font.Color:=clBlack;

Labels[0].Font.Height:=-32;
Labels[1].Font.Height:=-16;
Labels[2].Font.Height:=-13;
Labels[3].Font.Height:=-13;
Labels[4].Font.Height:=-13;
Labels[5].Font.Height:=-13;
//Labels[6].Font.Height:=1;
Labels[7].Font.Height:=-13;
Labels[8].Font.Height:=-13;

Labels[0].Font.Name:='Arial';
Labels[1].Font.Name:='';
Labels[2].Font.Name:='';
Labels[3].Font.Name:='';
Labels[4].Font.Name:='';
Labels[5].Font.Name:='';
Labels[6].Font.Name:='';
Labels[7].Font.Name:='';
Labels[8].Font.Name:='';

Labels[0].Font.Style:=[fsBold];
Labels[1].Font.Style:=[];
Labels[2].Font.Style:=[];
Labels[3].Font.Style:=[];
Labels[4].Font.Style:=[];
Labels[5].Font.Style:=[];
Labels[6].Font.Style:=[];
Labels[7].Font.Style:=[];
Labels[8].Font.Style:=[];

Labels[0].ParentFont:=False;
Labels[1].ParentFont:=False;
Labels[2].ParentFont:=False;
Labels[3].ParentFont:=False;
Labels[4].ParentFont:=False;
Labels[5].ParentFont:=False;
Labels[6].ParentFont:=False;
Labels[7].ParentFont:=False;
Labels[8].ParentFont:=False;

//CheckBox Setup:
CheckBoxs[0]:=TCheckBox.Create(VWMSF);
CheckBoxs[1]:=TCheckBox.Create(VWMSF);
CheckBoxs[2]:=TCheckBox.Create(VWMSF);
CheckBoxs[3]:=TCheckBox.Create(VWMSF);
CheckBoxs[4]:=TCheckBox.Create(VWMSF);
CheckBoxs[5]:=TCheckBox.Create(VWMSF);
CheckBoxs[6]:=TCheckBox.Create(VWMSF);
CheckBoxs[7]:=TCheckBox.Create(VWMSF);

CheckBoxs[0].Parent:=VWMSF;;
CheckBoxs[1].Parent:=VWMSF;;
CheckBoxs[2].Parent:=VWMSF;;
CheckBoxs[3].Parent:=VWMSF;;
CheckBoxs[4].Parent:=VWMSF;;
CheckBoxs[5].Parent:=VWMSF;;
CheckBoxs[6].Parent:=VWMSF;;
CheckBoxs[7].Parent:=VWMSF;;

CheckBoxs[0].Left:=1;
CheckBoxs[1].Left:=1;
CheckBoxs[2].Left:=1;
CheckBoxs[3].Left:=1;
CheckBoxs[4].Left:=1;
CheckBoxs[5].Left:=1;
CheckBoxs[6].Left:=1;
CheckBoxs[7].Left:=1;

CheckBoxs[0].Top:=1;
CheckBoxs[1].Top:=1;
CheckBoxs[2].Top:=1;
CheckBoxs[3].Top:=1;
CheckBoxs[4].Top:=1;
CheckBoxs[5].Top:=1;
CheckBoxs[6].Top:=1;
CheckBoxs[7].Top:=1;

CheckBoxs[0].Width:=1;
CheckBoxs[1].Width:=1;
CheckBoxs[2].Width:=1;
CheckBoxs[3].Width:=1;
CheckBoxs[4].Width:=1;
CheckBoxs[5].Width:=1;
CheckBoxs[6].Width:=1;
CheckBoxs[7].Width:=1;

CheckBoxs[0].Height:=1;
CheckBoxs[1].Height:=1;
CheckBoxs[2].Height:=1;
CheckBoxs[3].Height:=1;
CheckBoxs[4].Height:=1;
CheckBoxs[5].Height:=1;
CheckBoxs[6].Height:=1;
CheckBoxs[7].Height:=1;

CheckBoxs[0].Caption:='';
CheckBoxs[1].Caption:='';
CheckBoxs[2].Caption:='';
CheckBoxs[3].Caption:='';
CheckBoxs[4].Caption:='';
CheckBoxs[5].Caption:='';
CheckBoxs[6].Caption:='';
CheckBoxs[7].Caption:='';

CheckBoxs[0].Checked:=False;
CheckBoxs[1].Checked:=False;
CheckBoxs[2].Checked:=False;
CheckBoxs[3].Checked:=False;
CheckBoxs[4].Checked:=False;
CheckBoxs[5].Checked:=False;
CheckBoxs[6].Checked:=False;
CheckBoxs[7].Checked:=False;

CheckBoxs[0].State:=cbChecked;
CheckBoxs[1].State:=cbChecked;
CheckBoxs[2].State:=cbChecked;
CheckBoxs[3].State:=cbChecked;
CheckBoxs[4].State:=cbChecked;
CheckBoxs[5].State:=cbChecked;
CheckBoxs[6].State:=cbChecked;
CheckBoxs[7].State:=cbChecked;

CheckBoxs[0].TabOrder:=1;
CheckBoxs[1].TabOrder:=1;
CheckBoxs[2].TabOrder:=1;
CheckBoxs[3].TabOrder:=1;
CheckBoxs[4].TabOrder:=1;
CheckBoxs[5].TabOrder:=1;
CheckBoxs[6].TabOrder:=1;
CheckBoxs[7].TabOrder:=1;

//ComboBox Setup:
ComboBoxs[0]:=TComboBox.Create(VWMSF);
ComboBoxs[1]:=TComboBox.Create(VWMSF);

ComboBoxs[0].Parent:=VWMSF;
ComboBoxs[1].Parent:=VWMSF;

ComboBoxs[0].Left:=1;
ComboBoxs[1].Left:=1;

ComboBoxs[0].Top:=1;
ComboBoxs[1].Top:=1;

ComboBoxs[0].Width:=1;
ComboBoxs[1].Width:=1;

ComboBoxs[0].Height:=1;
ComboBoxs[1].Height:=1;

ComboBoxs[0].ItemHeight:=13;
ComboBoxs[1].ItemHeight:=13;

ComboBoxs[0].TabOrder:=13;
ComboBoxs[1].TabOrder:=14;

ComboBoxs[0].Text:='Iron';
ComboBoxs[1].Text:='Tin';

ComboBoxs[0].Items.Add('Clay');
ComboBoxs[0].Items.Add('Tin');
ComboBoxs[0].Items.Add('Copper');
ComboBoxs[0].Items.Add('Iron');
ComboBoxs[0].Items.Add('Silver');
ComboBoxs[1].Items.Add('Clay');
ComboBoxs[1].Items.Add('Tin');
ComboBoxs[1].Items.Add('Copper');
ComboBoxs[1].Items.Add('Iron');
ComboBoxs[1].Items.Add('Silver');

//Button's Setup:
Buttons[0]:=TButton.Create(VWMSF);
Buttons[1]:=TButton.Create(VWMSF);
Buttons[2]:=TButton.Create(VWMSF);
Buttons[3]:=TButton.Create(VWMSF);

Buttons[0].Parent:=VWMSF;
Buttons[1].Parent:=VWMSF;
Buttons[2].Parent:=VWMSF;
Buttons[3].Parent:=VWMSF;

Buttons[0].Left:=1;
Buttons[1].Left:=1;
Buttons[2].Left:=1;
Buttons[3].Left:=1;

Buttons[0].Top:=1;
Buttons[1].Top:=1;
Buttons[2].Top:=1;
Buttons[3].Top:=1;

Buttons[0].Width:=1;
Buttons[1].Width:=1;
Buttons[2].Width:=1;
Buttons[3].Width:=1;

Buttons[0].Height:=1;
Buttons[1].Height:=1;
Buttons[2].Height:=1;
Buttons[3].Height:=1;

Buttons[0].Caption:='';
Buttons[1].Caption:='';
Buttons[2].Caption:='';
Buttons[3].Caption:='';

Buttons[0].ModalResult:=0;
Buttons[1].ModalResult:=1;
Buttons[2].ModalResult:=4;
Buttons[3].ModalResult:=2;

Buttons[0].TabOrder:=1;
Buttons[1].TabOrder:=1;
Buttons[2].TabOrder:=1;
Buttons[3].TabOrder:=1;

//Edits Setup:
Edits[0]:=TEdit.Create(VWMSF);
Edits[1]:=TEdit.Create(VWMSF);
Edits[2]:=TEdit.Create(VWMSF);
Edits[3]:=TEdit.Create(VWMSF);

Edits[0].Parent:=VWMSF;
Edits[1].Parent:=VWMSF;
Edits[2].Parent:=VWMSF;
Edits[3].Parent:=VWMSF;

Edits[0].Left:=1;
Edits[1].Left:=1;
Edits[2].Left:=1;
Edits[3].Left:=1;

Edits[0].Top:=1;
Edits[1].Top:=1;
Edits[2].Top:=1;
Edits[3].Top:=1;

Edits[0].Width:=1;
Edits[1].Width:=1;
Edits[2].Width:=1;
Edits[3].Width:=1;

Edits[0].Height:=1;
Edits[1].Height:=1;
Edits[2].Height:=1;
Edits[3].Height:=1;

Edits[0].MaxLength:=0;
Edits[1].MaxLength:=0;
Edits[2].MaxLength:=0;
Edits[3].MaxLength:=0;

Edits[0].TabOrder:=1;
Edits[1].TabOrder:=1;
Edits[2].TabOrder:=1;
Edits[3].TabOrder:=1;

Edits[0].Text:='';
Edits[1].Text:='';
Edits[2].Text:='';
Edits[3].Text:='';

VWMSF.ShowModal;
end;

{procedure MainForm_Setup;
begin
VWMSF := CreateForm;
VWMSF.Left := 369;
VWMSF.Top := 119;
VWMSF.Width := 398;
VWMSF.Height := 420;
VWMSF.Caption := 'Varrock West Miner - By Dan'#39's The Man';
VWMSF.Color := clBtnFace;
VWMSF.Font.Color := clWindowText;
VWMSF.Font.Height := -11;
VWMSF.Font.Name := 'MS Sans Serif';
VWMSF.Font.Style := [];
VWMSF.Visible := True;
VWMSF.PixelsPerInch := 96;
Label1 := TLabel.Create(VWMSF);
Label1.Parent := VWMSF;
Label1.Left := 40;
Label1.Top := 8;
Label1.Width := 303;
Label1.Height := 37;
Label1.Caption := 'Varrock West Miner';
Label1.Font.Color := clWindowText;
Label1.Font.Height := -32;
Label1.Font.Name := 'Arial';
Label1.Font.Style := [fsBold];
Label1.ParentFont := False;
Label2 := TLabel.Create(VWMSF);
Label2.Parent := VWMSF;
Label2.Left := 80;
Label2.Top := 40;
Label2.Width := 225;
Label2.Height := 18;
Label2.Caption := 'By Dan'#39's The Man (a.k.a IP-Drowner) ';
Label2.Font.Color := clWindowText;
Label2.Font.Height := -16;
Label2.Font.Name := 'Monotype Corsiva';
Label2.Font.Style := [fsItalic];
Label2.ParentFont := False;
Label3 := TLabel.Create(VWMSF);
Label3.Parent := VWMSF;
Label3.Left := 176;
Label3.Top := 72;
Label3.Width := 103;
Label3.Height := 16;
Label3.Caption := 'Ore to mine most:';
Label3.Font.Color := clWindowText;
Label3.Font.Height := -13;
Label3.Font.Name := 'MS Sans Serif';
Label3.Font.Style := [];
Label3.ParentFont := False;
Label4 := TLabel.Create(VWMSF);
Label4.Parent := VWMSF;
Label4.Left := 176;
Label4.Top := 112;
Label4.Width := 103;
Label4.Height := 16;
Label4.Caption := 'Ore to mine least:';
Label4.Font.Color := clWindowText;
Label4.Font.Height := -13;
Label4.Font.Name := 'MS Sans Serif';
Label4.Font.Style := [];
Label4.ParentFont := False;
Label5 := TLabel.Create(VWMSF);
Label5.Parent := VWMSF;
Label5.Left := 144;
Label5.Top := 192;
Label5.Width := 198;
Label5.Height := 16;
Label5.Caption := 'Folder to save Progress Reports:';
Label5.Font.Color := clWindowText;
Label5.Font.Height := -13;
Label5.Font.Name := 'MS Sans Serif';
Label5.Font.Style := [];
Label5.ParentFont := False;
Label6 := TLabel.Create(VWMSF);
Label6.Parent := VWMSF;
Label6.Left := 144;
Label6.Top := 232;
Label6.Width := 167;
Label6.Height := 16;
Label6.Caption := 'Folder to save Screenshots:';
Label6.Font.Color := clWindowText;
Label6.Font.Height := -13;
Label6.Font.Name := 'MS Sans Serif';
Label6.Font.Style := [];
Label6.ParentFont := False;
Label7 := TLabel.Create(VWMSF);
Label7.Parent := VWMSF;
Label7.Left := 24;
Label7.Top := 360;
Label7.Width := 332;
Label7.Height := 13;
Label7.Caption :=
Label8 := TLabel.Create(VWMSF);
Label8.Parent := VWMSF;
Label8.Left := 16;
Label8.Top := 272;
Label8.Width := 78;
Label8.Height := 16;
Label8.Caption := 'SRL Stats ID:';
Label8.Font.Color := clWindowText;
Label8.Font.Height := -13;
Label8.Font.Name := 'MS Sans Serif';
Label8.Font.Style := [];
Label8.ParentFont := False;
Label9 := TLabel.Create(VWMSF);
Label9.Parent := VWMSF;
Label9.Left := 144;
Label9.Top := 272;
Label9.Width := 125;
Label9.Height := 16;
Label9.Caption := 'SRL Stats Password:';
Label9.Font.Color := clWindowText;
Label9.Font.Height := -13;
Label9.Font.Name := 'MS Sans Serif';
Label9.Font.Style := [];
Label9.ParentFont := False;
CheckBox1 := TCheckBox.Create(VWMSF);
CheckBox1.Parent := VWMSF;
CheckBox1.Left := 16;
CheckBox1.Top := 72;
CheckBox1.Width := 97;
CheckBox1.Height := 17;
CheckBox1.Caption := 'Powermine Ores';
CheckBox1.TabOrder := 8;
CheckBox3 := TCheckBox.Create(VWMSF);
CheckBox3.Parent := VWMSF;
CheckBox3.Left := 16;
CheckBox3.Top := 96;
CheckBox3.Width := 97;
CheckBox3.Height := 17;
CheckBox3.Caption := 'Use Anti-Ban';
CheckBox3.Checked := True;
CheckBox3.State := cbChecked;
CheckBox3.TabOrder := 9;
CheckBox4 := TCheckBox.Create(VWMSF);
CheckBox4.Parent := VWMSF;
CheckBox4.Left := 16;
CheckBox4.Top := 120;
CheckBox4.Width := 97;
CheckBox4.Height := 17;
CheckBox4.Caption := 'Use Fast Mining';
CheckBox4.TabOrder := 10;
CheckBox5 := TCheckBox.Create(VWMSF);
CheckBox5.Parent := VWMSF;
CheckBox5.Left := 16;
CheckBox5.Top := 144;
CheckBox5.Width := 113;
CheckBox5.Height := 17;
CheckBox5.Caption := 'Pickaxe Detection';
CheckBox5.TabOrder := 11;
CheckBox2 := TCheckBox.Create(VWMSF);
CheckBox2.Parent := VWMSF;
CheckBox2.Left := 16;
CheckBox2.Top := 168;
CheckBox2.Width := 121;
CheckBox2.Height := 17;
CheckBox2.Caption := 'Use Auto Responder';
CheckBox2.Checked := True;
CheckBox2.State := cbChecked;
CheckBox2.TabOrder := 12;
ComboBox1 := TComboBox.Create(VWMSF);
ComboBox1.Parent := VWMSF;
ComboBox1.Left := 176;
ComboBox1.Top := 88;
ComboBox1.Width := 145;
ComboBox1.Height := 21;
ComboBox1.ItemHeight := 13;
ComboBox1.TabOrder := 13;
ComboBox1.Text := 'Iron';
ComboBox1.Items.Add('Clay');
ComboBox1.Items.Add('Tin');
ComboBox1.Items.Add('Copper');
ComboBox1.Items.Add('Iron');
ComboBox1.Items.Add('Silver');
ComboBox2 := TComboBox.Create(VWMSF);
ComboBox2.Parent := VWMSF;
ComboBox2.Left := 176;
ComboBox2.Top := 128;
ComboBox2.Width := 145;
ComboBox2.Height := 21;
ComboBox2.ItemHeight := 13;
ComboBox2.TabOrder := 14;
ComboBox2.Text := 'Tin';
ComboBox2.Items.Add('Clay');
ComboBox2.Items.Add('Tin');
ComboBox2.Items.Add('Copper');
ComboBox2.Items.Add('Iron');
ComboBox2.Items.Add('Silver');
Button1 := TButton.Create(VWMSF);
Button1.Parent := VWMSF;
Button1.Left := 176;
Button1.Top := 160;
Button1.Width := 145;
Button1.Height := 25;
Button1.Caption := '&Setup Players';
Button1.TabOrder := 15;
CheckBox6 := TCheckBox.Create(VWMSF);
CheckBox6.Parent := VWMSF;
CheckBox6.Left := 16;
CheckBox6.Top := 192;
CheckBox6.Width := 97;
CheckBox6.Height := 17;
CheckBox6.Caption := 'Auto Update';
CheckBox6.Checked := True;
CheckBox6.State := cbChecked;
CheckBox6.TabOrder := 16;
CheckBox7 := TCheckBox.Create(VWMSF);
CheckBox7.Parent := VWMSF;
CheckBox7.Left := 16;
CheckBox7.Top := 216;
CheckBox7.Width := 121;
CheckBox7.Height := 17;
CheckBox7.Caption := 'Take Screenshots';
CheckBox7.Checked := True;
CheckBox7.State := cbChecked;
CheckBox7.TabOrder := 17;
CheckBox8 := TCheckBox.Create(VWMSF);
CheckBox8.Parent := VWMSF;
CheckBox8.Left := 16;
CheckBox8.Top := 240;
CheckBox8.Width := 129;
CheckBox8.Height := 17;
CheckBox8.Caption := 'Save Progress Reports';
CheckBox8.Checked := True;
CheckBox8.State := cbChecked;
CheckBox8.TabOrder := 18;
Edit1 := TEdit.Create(VWMSF);
Edit1.Parent := VWMSF;
Edit1.Left := 144;
Edit1.Top := 208;
Edit1.Width := 201;
Edit1.Height := 21;
Edit1.TabOrder := 19;
Edit1.Text := 'C:\Documents and Settings\PR\';
Edit2 := TEdit.Create(VWMSF);
Edit2.Parent := VWMSF;
Edit2.Left := 144;
Edit2.Top := 248;
Edit2.Width := 201;
Edit2.Height := 21;
Edit2.TabOrder := 20;
Edit2.Text := 'C:\Documents and Settings\SS\';
Button2 := TButton.Create(VWMSF);
Button2.Parent := VWMSF;
Button2.Left := 8;
Button2.Top := 328;
Button2.Width := 113;
Button2.Height := 25;
Button2.Caption := 'Start Script';
Button2.ModalResult := 1;
Button2.TabOrder := 21;
Button3 := TButton.Create(VWMSF);
Button3.Parent := VWMSF;
Button3.Left := 128;
Button3.Top := 328;
Button3.Width := 113;
Button3.Height := 25;
Button3.Caption := 'Clear all Fields';
Button3.TabOrder := 22;
Button4 := TButton.Create(VWMSF);
Button4.Parent := VWMSF;
Button4.Left := 256;
Button4.Top := 328;
Button4.Width := 113;
Button4.Height := 25;
Button4.Caption := 'Cancel Script';
Button4.TabOrder := 23;
Edit3 := TEdit.Create(VWMSF);
Edit3.Parent := VWMSF;
Edit3.Left := 16;
Edit3.Top := 288;
Edit3.Width := 105;
Edit3.Height := 21;
Edit3.MaxLength := 4;
Edit3.TabOrder := 24;
Edit3.Text := '1669';
Edit4 := TEdit.Create(VWMSF);
Edit4.Parent := VWMSF;
Edit4.Left := 144;
Edit4.Top := 288;
Edit4.Width := 145;
Edit4.Height := 21;
Edit4.MaxLength := 35;
Edit4.PasswordChar := '*';
Edit4.TabOrder := 25;
Edit4.Text := 'password';
end;}

procedure SafeLoadMainForm;
var
v: TVariantArray;
begin
v := [];
ThreadSafeCall('MainForm_Setup', v);
end;

function DetectPlayerFormCloseDisplaySetupForm: Boolean;
begin
case (srl_PlayerForm.Visible) of
True: VWMSF.Visible:=False;
False: VWMSF.Visible:=True;
end;
Result:=srl_PlayerForm.Visible;
end;

procedure ConvMainSetupFormToSPlayers;
begin
{Players[CurrentPlayer].Strings[2]:=Lowercase(ComboBox1.Text);
Players[CurrentPlayer].Strings[3]:=Lowercase(ComboBox2.Text);
Players[CurrentPlayer].Booleans[2]:=CheckBox1}
//ComboBox1.Text
end;

function SetupColours: TPoint;
begin
// case (Players[C
end;

begin
SafeLoadMainForm;
SRLPlayerForm(True, ['Attack Mugger?', 'Run Further Away?'], ['S.M.A.R.T World', 'How Many Loads?'], ['Run Direction (if n fight)?', 'Custom Disguise Title'], []);
end.


Works for me.