SCAR Code:
{.include SRL\SRL.scar}
//alot of credit to rsn
var
cUser: Integer;
Form1: TForm;
Label1, Label2, Label4, Label5, lblUser: TLabel;
gbControl: TGroupBox;
btnBack, btnNext, btnCreate, btnDelete: TButton;
edUser, edPass, edNick: TEdit;
cbActive, cbDebug: TComboBox;
Memo1:TMemo;
procedure AddUser;
begin
SetArrayLength(Players, GetArrayLength(Players) + 1);
Players[High(Players)].Name := 'New Name';
Players[High(Players)].Pass := 'New Pass';
Players[High(Players)].Nick := 'New Nick';
Players[High(Players)].Active := True;
{Players[High(Players)].Booleans[0] := True;//Re-incarnate?
Players[High(Players)].Integers[0] := 5;//loads
Players[High(Players)].Integers[1] := 0;//dont touch
Players[High(Players)].Strings[0] := '';//bank pin
Players[High(Players)].Strings[1] := 'Shrimp';//fish to cook}
end;
procedure Inititate(Sender: TObject);
begin
lblUser.Caption := 'Player Number: '+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;
cUser := GetArrayLength(Players) - 1;
end;
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;
AddUser;
cUser := GetArrayLength(Players) - 1;
lblUser.Caption := 'Player Number: '+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';
end;
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;
if (cUser + 1 > GetArrayLength(Players) - 1) then
cUser := 0
else
cUser := cUser + 1;
lblUser.Caption := 'Player Number: '+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';
end;
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;
if (cUser - 1 < 0) then
cUser := GetArrayLength(Players) - 1
else
cUser := cUser - 1;
lblUser.Caption := 'Player Number: '+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';
end;
procedure DeleteUser(Sender: TObject);
var
lo, na, ni: string;
ac: Boolean;
begin
lo := Players[GetArrayLength(Players) - 1].Loc;
na := Players[GetArrayLength(Players) - 1].Name;
ni := Players[GetArrayLength(Players) - 1].Nick;
ac := Players[GetArrayLength(Players) - 1].Active;
Players[cUser].Loc := lo;
Players[cUser].Name := na;
Players[cUser].Nick := ni;
Players[cUser].Active := ac;
SetArrayLength(Players, GetArrayLength(Players) - 1);
if (cUser + 1 > GetArrayLength(Players) - 1) then
cUser := 0
else
cUser := cUser + 1;
lblUser.Caption := 'Player Number: '+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';
end;
procedure Start(Sender: TObject);
begin
lblUser.Caption := 'Player Number: '+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';
end;
procedure LoadForm;
begin
Form1 := CreateForm;
Form1.Left := 254;
Form1.Top := 107;
Form1.Width := 285;
Form1.Height := 350;
Form1.Caption := 'Form';
Form1.Color := clBtnFace;
Form1.Font.Color := clWindowText;
Form1.Font.Height := -11;
Form1.Font.Name := 'MS Sans Serif';
Form1.Font.Style := [];
Form1.Visible := False;
Form1.PixelsPerInch := 96;
Form1.OnShow := @Start;
Label1 := TLabel.Create(Form1);
Label1.Parent := Form1;
Label1.Left := 4;
Label1.Top := 25;
Label1.Width := 51;
Label1.Height := 13;
Label1.Caption := 'Username:';
Label2 := TLabel.Create(Form1);
Label2.Parent := Form1;
Label2.Left := 4;
Label2.Top := 61;
Label2.Width := 49;
Label2.Height := 13;
Label2.Caption := 'Password:';
Label4 := TLabel.Create(Form1);
Label4.Parent := Form1;
Label4.Left := 4;
Label4.Top := 93;
Label4.Width := 25;
Label4.Height := 13;
Label4.Caption := 'Nick:';
Label5 := TLabel.Create(Form1);
Label5.Parent := Form1;
Label5.Left := 4;
Label5.Top := 129;
Label5.Width := 33;
Label5.Height := 13;
Label5.Caption := 'Active:';
lblUser := TLabel.Create(Form1);
lblUser.Parent := Form1;
lblUser.Left := 4;
lblUser.Top := 5;
lblUser.Width := 32;
lblUser.Height := 13;
lblUser.Transparent := False;
gbControl := TGroupBox.Create(Form1);
gbControl.Parent := Form1;
gbControl.Left := 4;
gbControl.Top := 150;
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 := 'Last';
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 := 'Next';
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(Form1);
edUser.Parent := Form1;
edUser.Left := 60;
edUser.Top := 23;
edUser.Width := 121;
edUser.Height := 21;
edUser.TabOrder := 9;
edPass := TEdit.Create(Form1);
edPass.Parent := Form1;
edPass.Left := 60;
edPass.Top := 59;
edPass.Width := 121;
edPass.Height := 21;
edPass.TabOrder := 10;
edNick := TEdit.Create(Form1);
edNick.Parent := Form1;
edNick.Left := 60;
edNick.Top := 93;
edNick.Width := 121;
edNick.Height := 21;
edNick.TabOrder := 12;
cbActive := TComboBox.Create(Form1);
cbActive.Parent := Form1;
cbActive.Left := 60;
cbActive.Top := 129;
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');
cbDebug := TComboBox.Create(Form1);
cbDebug.Parent := Form1;
cbDebug.Left := 4;
cbDebug.Top := 292;
cbDebug.Width := 270;
cbDebug.Height := 21;
cbDebug.TabOrder := 13;
cbDebug.Text := 'Debug';
cbDebug.Items.Add('Title Bar');
cbDebug.Items.Add('Writeln');
cbDebug.Items.Add('Status');
cbDebug.Items.Add('All');
Memo1 := TMemo.Create(Form1);
Memo1.Parent := Form1;
Memo1.Left := 4;
Memo1.Top := 210;
Memo1.Width := 270;
Memo1.Height := 80;
Memo1.Lines.Add('News:');
end;
procedure TheForm;
var
v: TVariantArray;
begin
SetArrayLength(V, 0);
ThreadSafeCall('LoadForm', v);
end;
procedure ShowFormModal;
begin
Form1.ShowModal;
end;
procedure TehForm;
var
v: TVariantArray;
begin
SetArrayLength(V, 0);
ThreadSafeCall('ShowFormModal', v);
end;
begin
AddUser;
TheForm;
TehForm;
end.
Thats what I got so far. Like it?