FrÕzÑ_§ÕµL
2007-12-20 16:20:24
OK I'm making my first form, and I need a user manager. The SRL one has a couple of errors, and doesn't have all the pieces I need, so I manually edited it to show what I want. However, now I get the error
[Runtime Error] : Out Of Range in line 49 in script C:\Documents and Settings\Administrator\Desktop\asd.scar
This is marked in the script below. I did it exactly the same as the ones before it, but I'm missing something =? Please can someone look at it and run it, see what I need to do :D
[Runtime Error] : Out Of Range in line 49 in script C:\Documents and Settings\Administrator\Desktop\asd.scar
This is marked in the script below. I did it exactly the same as the ones before it, but I'm missing something =? Please can someone look at it and run it, see what I need to do :D
// User Manager Script
// Created by RsN
// Just Hit Run and see
{.include SRL\SRL.scar}
var
cUser, i: Integer;
frmDesign: TForm;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
lblUser: TLabel;
gbControl: TGroupBox;
btnBack: TButton;
btnNext: TButton;
btnCreate: TButton;
btnDelete: TButton;
edUser: TEdit;
edPass: TEdit;
edNick: TEdit;
edLoads: TEdit;
cbActive: TComboBox;
TreeCombo : TComboBox;
BankCombo : TComboBox;
PINEdit : TEdit;
RunCombo : TComboBox;
SubStatCombo : TComboBox;
{*******************************************************************************
procedure AddUser;
By: RsN
Description:
*******************************************************************************}
procedure AddUser;
begin
SetArrayLength(Players, GetArrayLength(Players) + 1);
Players[GetArrayLength(Players) - 1].Name := 'New Name';
Players[GetArrayLength(Players) - 1].Pass := 'New Pass';
Players[GetArrayLength(Players) - 1].Nick := 'New Nick';
Players[GetArrayLength(Players) - 1].Active := True;
Players[GetArrayLength(Players) - 1].Integers[0] := 1000; //Out of range!
Players[GetArrayLength(Players) - 1].Strings[0] := 'Tree';
Players[GetArrayLength(Players) - 1].Strings[1] := 'Bank';
Players[GetArrayLength(Players) - 1].Strings[2] := '';
Players[GetArrayLength(Players) - 1].Strings[3] := 's';
Players[GetArrayLength(Players) - 1].Booleans[0] := false;
end;
{*******************************************************************************
procedure Inititate(Sender : TObject);
By: RsN
Description:
*******************************************************************************}
procedure Inititate(Sender: TObject);
begin
lblUser.Caption := IntToStr(cUser);
Players[cUser].Nick := edNick.Text;
Players[cUser].Name := edUser.Text;
Players[cUser].Pass := edPass.Text;
if (cbActive.Text = 'True') then
Players[cUser].Active := True
else
Players[cUser].Active := False;
Players[cUser].Integers[0] := StrToInt(EdLoads.Text);
Players[cUser].Strings[0] := TreeCombo.Text;
Players[cUser].Strings[1] := BankCombo.Text;
Players[cUser].Strings[2] := PINEdit.Text;
Players[cUser].Strings[3] := RunCombo.Text;
Players[cUser].Booleans[0] := StrToBool(SubStatCombo.Text);
cUser := GetArrayLength(Players) - 1;
end;
{*******************************************************************************
procedure CreateUser(Sender : TObject);
By: RsN
Description:
*******************************************************************************}
procedure CreateUser(Sender: TObject);
begin
Players[cUser].Nick := edNick.Text;
Players[cUser].Name := edUser.Text;
Players[cUser].Pass := edPass.Text;
if (cbActive.Text = 'True') then
Players[cUser].Active := True
else
Players[cUser].Active := False;
Players[cUser].Integers[0] := StrToInt(EdLoads.Text);
Players[cUser].Strings[0] := TreeCombo.Text;
Players[cUser].Strings[1] := BankCombo.Text;
Players[cUser].Strings[2] := PINEdit.Text;
Players[cUser].Strings[3] := RunCombo.Text;
Players[cUser].Booleans[0] := StrToBool(SubStatCombo.Text);
AddUser;
cUser := GetArrayLength(Players) - 1;
lblUser.Caption := IntToStr(cUser);
edNick.Text := Players[cUser].Nick;
edUser.Text := Players[cUser].Name;
edPass.Text := Players[cUser].Pass;
if (Players[cUser].Active) then
cbActive.Text := 'True'
else
cbActive.Text := 'False';
Players[cUser].Integers[0] := StrToInt(EdLoads.Text);
Players[cUser].Strings[0] := TreeCombo.Text;
Players[cUser].Strings[1] := BankCombo.Text;
Players[cUser].Strings[2] := PINEdit.Text;
Players[cUser].Strings[3] := RunCombo.Text;
Players[cUser].Booleans[0] := StrToBool(SubStatCombo.Text);
end;
{*******************************************************************************
procedure ForwardUser(Sender : TObject);
By: RsN
Description:
*******************************************************************************}
procedure ForwardUser(Sender: TObject);
begin
Players[cUser].Nick := edNick.Text;
Players[cUser].Name := edUser.Text;
Players[cUser].Pass := edPass.Text;
if (cbActive.Text = 'True') then
Players[cUser].Active := True
else
Players[cUser].Active := False;
Players[cUser].Integers[0] := StrToInt(EdLoads.Text);
Players[cUser].Strings[0] := TreeCombo.Text;
Players[cUser].Strings[1] := BankCombo.Text;
Players[cUser].Strings[2] := PINEdit.Text;
Players[cUser].Strings[3] := RunCombo.Text;
Players[cUser].Booleans[0] := StrToBool(SubStatCombo.Text);
if (cUser + 1 > GetArrayLength(Players) - 1) then
cUser := 0
else
cUser := cUser + 1;
lblUser.Caption := IntToStr(cUser);
edNick.Text := Players[cUser].Nick;
edUser.Text := Players[cUser].Name;
edPass.Text := Players[cUser].Pass;
if (Players[cUser].Active) then
cbActive.Text := 'True'
else
cbActive.Text := 'False';
Players[cUser].Integers[0] := StrToInt(EdLoads.Text);
Players[cUser].Strings[0] := TreeCombo.Text;
Players[cUser].Strings[1] := BankCombo.Text;
Players[cUser].Strings[2] := PINEdit.Text;
Players[cUser].Strings[3] := RunCombo.Text;
Players[cUser].Booleans[0] := StrToBool(SubStatCombo.Text);
end;
{*******************************************************************************
procedure BackUser(Sender : TObject);
By: RsN
Description:
*******************************************************************************}
procedure BackUser(Sender: TObject);
begin
Players[cUser].Nick := edNick.Text;
Players[cUser].Name := edUser.Text;
Players[cUser].Pass := edPass.Text;
if (cbActive.Text = 'True') then
Players[cUser].Active := True
else
Players[cUser].Active := False;
Players[cUser].Integers[0] := StrToInt(EdLoads.Text);
Players[cUser].Strings[0] := TreeCombo.Text;
Players[cUser].Strings[1] := BankCombo.Text;
Players[cUser].Strings[2] := PINEdit.Text;
Players[cUser].Strings[3] := RunCombo.Text;
Players[cUser].Booleans[0] := StrToBool(SubStatCombo.Text);
if (cUser - 1 < 0) then
cUser := GetArrayLength(Players) - 1
else
cUser := cUser - 1;
lblUser.Caption := IntToStr(cUser);
edNick.Text := Players[cUser].Nick;
edUser.Text := Players[cUser].Name;
edPass.Text := Players[cUser].Pass;
if (Players[cUser].Active) then
cbActive.Text := 'True'
else
cbActive.Text := 'False';
Players[cUser].Integers[0] := StrToInt(EdLoads.Text);
Players[cUser].Strings[0] := TreeCombo.Text;
Players[cUser].Strings[1] := BankCombo.Text;
Players[cUser].Strings[2] := PINEdit.Text;
Players[cUser].Strings[3] := RunCombo.Text;
Players[cUser].Booleans[0] := StrToBool(SubStatCombo.Text);
end;
{*******************************************************************************
procedure DeleteUser(Sender : TObject);
By: RsN
Description:
*******************************************************************************}
procedure DeleteUser(Sender: TObject);
var
int0 : integer;
na, ni, str0, str1, str2, str3: string;
ac, bool0: Boolean;
begin
na := Players[GetArrayLength(Players) - 1].Name;
ni := Players[GetArrayLength(Players) - 1].Nick;
ac := Players[GetArrayLength(Players) - 1].Active;
int0 := Players[GetArrayLength(Players) - 1].Integers[0]
str0 := Players[GetArrayLength(Players) - 1].Strings[0]
str1 := Players[GetArrayLength(Players) - 1].Strings[1]
str2 := Players[GetArrayLength(Players) - 1].Strings[2]
str3 := Players[GetArrayLength(Players) - 1].Strings[3]
bool0 := Players[GetArrayLength(Players) - 1].Booleans[0]
Players[GetArrayLength(Players) - 1].Name := na;
Players[GetArrayLength(Players) - 1].Nick := ni;
Players[GetArrayLength(Players) - 1].Active := ac;
Players[GetArrayLength(Players) - 1].Integers[0] := int0
Players[GetArrayLength(Players) - 1].Strings[0] := str0
Players[GetArrayLength(Players) - 1].Strings[1] := str1
Players[GetArrayLength(Players) - 1].Strings[2] := str2
Players[GetArrayLength(Players) - 1].Strings[3] := str3
Players[GetArrayLength(Players) - 1].Booleans[0] := bool0
SetArrayLength(Players, GetArrayLength(Players) - 1);
if (cUser + 1 > GetArrayLength(Players) - 1) then
cUser := 0
else
cUser := cUser + 1;
lblUser.Caption := IntToStr(cUser);
edNick.Text := Players[cUser].Nick;
edUser.Text := Players[cUser].Name;
edPass.Text := Players[cUser].Pass;
if (Players[cUser].Active) then
cbActive.Text := 'True'
else
cbActive.Text := 'False';
Players[cUser].Integers[0] := StrToInt(EdLoads.Text);
Players[cUser].Strings[0] := TreeCombo.Text;
Players[cUser].Strings[1] := BankCombo.Text;
Players[cUser].Strings[2] := PINEdit.Text;
Players[cUser].Strings[3] := RunCombo.Text;
Players[cUser].Booleans[0] := StrToBool(SubStatCombo.Text);
end;
{*******************************************************************************
procedure Start(Sender : TObject);
By: RsN
Description:
*******************************************************************************}
procedure Start(Sender: TObject);
begin
lblUser.Caption := IntToStr(cUser);
edNick.Text := Players[cUser].Nick;
edUser.Text := Players[cUser].Name;
edPass.Text := Players[cUser].Pass;
if (Players[cUser].Active) then
cbActive.Text := 'True'
else
cbActive.Text := 'False';
Players[cUser].Integers[0] := StrToInt(EdLoads.Text);
Players[cUser].Strings[0] := TreeCombo.Text;
Players[cUser].Strings[1] := BankCombo.Text;
Players[cUser].Strings[2] := PINEdit.Text;
Players[cUser].Strings[3] := RunCombo.Text;
Players[cUser].Booleans[0] := StrToBool(SubStatCombo.Text);
end;
{*******************************************************************************
procedure LoadForm;
By: RsN
Description:
*******************************************************************************}
procedure LoadForm;
begin
frmDesign := CreateForm;
frmDesign.Left := 254;
frmDesign.Top := 107;
frmDesign.Width := 308;
frmDesign.Height := 500;
frmDesign.Caption := 'Fr0zN S0uL'#39's Multi-Tree Chopper Banker~Dropper';
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;
frmDesign.OnShow := @Start;
Label1 := TLabel.Create(frmDesign);
Label1.Parent := frmDesign;
Label1.Left := 48;
Label1.Top := 25;
Label1.Width := 51;
Label1.Height := 13;
Label1.Caption := 'Username:';
Label2 := TLabel.Create(frmDesign);
Label2.Parent := frmDesign;
Label2.Left := 48;
Label2.Top := 61;
Label2.Width := 49;
Label2.Height := 13;
Label2.Caption := 'Password:';
Label3 := TLabel.Create(frmDesign);
Label3.Parent := frmDesign;
Label3.Left := 48;
Label3.Top := 97;
Label3.Width := 25;
Label3.Height := 13;
Label3.Caption := 'Nick:';
Label4 := TLabel.Create(frmDesign);
Label4.Parent := frmDesign;
Label4.Left := 48;
Label4.Top := 133;
Label4.Width := 33;
Label4.Height := 13;
Label4.Caption := 'Active:';
Label5 := TLabel.Create(frmDesign);
Label5.Parent := frmDesign;
Label5.Left := 48;
Label5.Top := 169;
Label5.Width := 33;
Label5.Height := 13;
Label5.Caption := 'Number of Loads:';
Label6 := TLabel.Create(frmDesign);
Label6.Parent := frmDesign;
Label6.Left := 48;
Label6.Top := 205;
Label6.Width := 51;
Label6.Height := 13;
Label6.Caption := 'Tree:';
Label7 := TLabel.Create(frmDesign);
Label7.Parent := frmDesign;
Label7.Left := 48;
Label7.Top := 241;
Label7.Width := 51;
Label7.Height := 13;
Label7.Caption := 'Bank Logs?:';
Label8 := TLabel.Create(frmDesign);
Label8.Parent := frmDesign;
Label8.Left := 48;
Label8.Top := 277;
Label8.Width := 51;
Label8.Height := 13;
Label8.Caption := 'Bank PIN:';
Label9 := TLabel.Create(frmDesign);
Label9.Parent := frmDesign;
Label9.Left := 48;
Label9.Top := 313;
Label9.Width := 51;
Label9.Height := 13;
Label9.Caption := 'Run Direction:';
Label10 := TLabel.Create(frmDesign);
Label10.Parent := frmDesign;
Label10.Left := 48;
Label10.Top := 349;
Label10.Width := 51;
Label10.Height := 13;
Label10.Caption := 'F2P or P2P:';
lblUser := TLabel.Create(frmDesign);
lblUser.Parent := frmDesign;
lblUser.Left := 248;
lblUser.Top := 9;
lblUser.Width := 32;
lblUser.Height := 13;
lblUser.Caption := 'lblUser';
lblUser.Transparent := False;
gbControl := TGroupBox.Create(frmDesign);
gbControl.Parent := frmDesign;
gbControl.Left := 13;
gbControl.Top := 383;
gbControl.Width := 272;
gbControl.Height := 58;
gbControl.Caption := ' Control ';
gbControl.TabOrder := 0;
btnBack := TButton.Create(gbControl);
btnBack.Parent := gbControl;
btnBack.Left := 12;
btnBack.Top := 22;
btnBack.Width := 45;
btnBack.Height := 25;
btnBack.Caption := '<';
btnBack.TabOrder := 0;
btnBack.OnClick := @BackUser;
btnNext := TButton.Create(gbControl);
btnNext.Parent := gbControl;
btnNext.Left := 216;
btnNext.Top := 23;
btnNext.Width := 45;
btnNext.Height := 25;
btnNext.Caption := '>';
btnNext.TabOrder := 1;
btnNext.OnClick := @ForwardUser;
btnCreate := TButton.Create(gbControl);
btnCreate.Parent := gbControl;
btnCreate.Left := 138;
btnCreate.Top := 22;
btnCreate.Width := 75;
btnCreate.Height := 25;
btnCreate.Caption := 'Create';
btnCreate.TabOrder := 2;
btnCreate.OnClick := @CreateUser;
btnDelete := TButton.Create(gbControl);
btnDelete.Parent := gbControl;
btnDelete.Left := 59;
btnDelete.Top := 22;
btnDelete.Width := 75;
btnDelete.Height := 25;
btnDelete.Caption := 'Delete';
btnDelete.OnClick := @DeleteUser;
btnDelete.TabOrder := 3;
edUser := TEdit.Create(frmDesign);
edUser.Parent := frmDesign;
edUser.Left := 130;
edUser.Top := 23;
edUser.Width := 121;
edUser.Height := 21;
edUser.TabOrder := 9;
edUser.Text := 'edUser';
edPass := TEdit.Create(frmDesign);
edPass.Parent := frmDesign;
edPass.Left := 130;
edPass.Top := 59;
edPass.Width := 121;
edPass.Height := 21;
edPass.TabOrder := 10;
edNick := TEdit.Create(frmDesign);
edNick.Parent := frmDesign;
edNick.Left := 130;
edNick.Top := 95;
edNick.Width := 121;
edNick.Height := 21;
edNick.TabOrder := 12;
edNick.Text := 'edNick';
cbActive := TComboBox.Create(frmDesign);
cbActive.Parent := frmDesign;
cbActive.Left := 130;
cbActive.Top := 131;
cbActive.Width := 122;
cbActive.Height := 21;
cbActive.DropDownCount := 2;
cbActive.ItemHeight := 13;
cbActive.TabOrder := 13;
cbActive.Text := 'True';
cbActive.Items.Add('True');
cbActive.Items.Add('False');
edLoads := TEdit.Create(frmDesign);
edLoads.Parent := frmDesign;
edLoads.Left := 130;
edLoads.Top := 167;
edLoads.Width := 121;
edLoads.Height := 21;
edLoads.TabOrder := 12;
edLoads.Text := '1000';
TreeCombo := TComboBox.Create(frmDesign);
TreeCombo.Parent := frmDesign;
TreeCombo.Left := 130;
TreeCombo.Top := 203;
TreeCombo.Width := 122;
TreeCombo.Height := 21;
TreeCombo.Hint := 'Tree to Cut';
TreeCombo.ItemHeight := 13;
TreeCombo.ParentShowHint := False;
TreeCombo.ShowHint := True;
TreeCombo.TabOrder := 10;
TreeCombo.Items.Add('Tree');
TreeCombo.Items.Add('Oak');
TreeCombo.Items.Add('Willow');
TreeCombo.Items.Add('Yew');
BankCombo := TComboBox.Create(frmDesign);
BankCombo.Parent := frmDesign;
BankCombo.Left := 130;
BankCombo.Top := 239;
BankCombo.Width := 122;
BankCombo.Height := 21;
BankCombo.Hint := 'Bank Logs when Full?';
BankCombo.ItemHeight := 13;
BankCombo.ParentShowHint := False;
BankCombo.ShowHint := True;
BankCombo.TabOrder := 11;
BankCombo.Items.Add('True');
BankCombo.Items.Add('False');
PINEdit := TEdit.Create(frmDesign);
PINEdit.Parent := frmDesign;
PINEdit.Left := 130;
PINEdit.Top := 275;
PINEdit.Width := 122;
PINEdit.Height := 21;
PINEdit.Hint := 'Enter PIN Here if You Have One';
PINEdit.ParentShowHint := False;
PINEdit.ShowHint := True;
PINEdit.TabOrder := 12;
RunCombo := TComboBox.Create(frmDesign);
RunCombo.Parent := frmDesign;
RunCombo.Left := 130;
RunCombo.Top := 311;
RunCombo.Width := 122;
RunCombo.Height := 21;
RunCombo.Hint := 'Direction to Run When Find Fight';
RunCombo.ItemHeight := 13;
RunCombo.ParentShowHint := False;
RunCombo.ShowHint := True;
RunCombo.TabOrder := 13;
RunCombo.Items.Add('N');
RunCombo.Items.Add('NE');
RunCombo.Items.Add('E');
RunCombo.Items.Add('SE');
RunCombo.Items.Add('S');
RunCombo.Items.Add('SW');
RunCombo.Items.Add('W');
RunCombo.Items.Add('NW');
SubStatCombo := TComboBox.Create(frmDesign);
SubStatCombo.Parent := frmDesign;
SubStatCombo.Left := 130;
SubStatCombo.Top := 347;
SubStatCombo.Width := 122;
SubStatCombo.Height := 21;
SubStatCombo.Hint := 'Members or Free?';
SubStatCombo.ItemHeight := 13;
SubStatCombo.ParentShowHint := False;
SubStatCombo.ShowHint := True;
SubStatCombo.TabOrder := 14;
SubStatCombo.Items.Add('F2P');
SubStatCombo.Items.Add('P2P');
end;
{*******************************************************************************
procedure TheForm;
By: RsN
Description:
*******************************************************************************}
procedure TheForm;
var
v: TVariantArray;
begin
SetArrayLength(V, 0);
ThreadSafeCall('LoadForm', v);
end;
{*******************************************************************************
procedure ShowFormModal;
By: RsN
Description:
*******************************************************************************}
procedure ShowFormModal;
begin
frmDesign.ShowModal;
end;
{*******************************************************************************
procedure TehForm;
By: RsN
Description:
*******************************************************************************}
procedure TehForm;
var
v: TVariantArray;
begin
SetArrayLength(V, 0);
ThreadSafeCall('ShowFormModal', v);
end;
begin
//LoadUs;
cUser := 0;
if (GetArrayLength(Players) = 0) then
AddUser;
TheForm;
TehForm;
for i := 0 to 3 do
begin
WriteLn(IntToStr(Players[cUser].Integers[0]));
Writeln(Players[i].Strings[0])
Writeln(Players[i].Strings[1])
Writeln(Players[i].Strings[2])
Writeln(Players[i].Strings[3])
Writeln(BoolToStr(Players[i].Booleans[0]))
end;
//SaveUs;
end.
