Could someone tell me how to save the settings in a form so that whenever you open them they stay?
Could someone tell me how to save the settings in a form so that whenever you open them they stay?
SaveSetting saves setting, and LoadSetting loads setting and it returns as string:
If you had Edit1.Text in your form, you would do it like that.SCAR Code:Edit1.Text:=LoadSetting('Section','Setting')
SaveSetting('Section','Setting',Edit1.Text)
If you are trying to save multiplayer username and password, you can use my simple setup form. Just be sure to give me credit.
It's easy to use, put in the script after the includes and your variables, and in your main loop after setupSRL call ShowSetup
SCAR Code:{*************************Beginning of setup form*************************}
//- By SonOfSheep -------------------------------------------------------//
//- Version 2.0 ---------------------------------------------------------//
//-----------------------------------------------------------------------//
var
frmDesign : TForm;
Label1 : TLabel;
Label2 : TLabel;
GroupBox1 : TGroupBox;
Label3 : TLabel;
Label4 : TLabel;
Label5 : TLabel;
lstUsers : TListBox;
btnAdd : TButton;
btnDelete : TButton;
txtUsername : TEdit;
txtPass : TEdit;
txtNick : TEdit;
ckbWield : TCheckBox;
btnHelp : TButton;
btnGo : TButton;
UserIndex : Integer;
//this is from the srl Users include.
//i fixed it because it was messed up!
{ it used to say
if (FormOption[0]) then
WriteFileString(charsfile, 'loc' + IntToStr(f) + '=' +
--> players[CURRENTPLAYER].loc + Chr(13))
i changed currentplayer to f so it didnt save the current player's options
to all players.
}
procedure FixedSaveUs;
var
f, CharsFile: Integer;
begin
if (filename = '') then filename := 'chars'
CharsFile := RewriteFile(AppPath + FileName + '.dat', False)
for f := 0 to GetArrayLength(players) - 1 do
begin
WriteFileString(charsfile, 'name' + IntToStr(f) + '=' + players[f].name +
Chr(13))
WriteFileString(charsfile, 'pass' + IntToStr(f) + '=' + players[f].pass
+ Chr(13))
WriteFileString(charsfile, 'nick' + IntToStr(f) + '=' + players[f].nick
+ Chr(13))
WriteFileString(charsfile, 'active' + IntToStr(f) + '=' +
BoolToStr(players[f].active) + Chr(13))
if (FormOption[0]) then
WriteFileString(charsfile, 'loc' + IntToStr(f) + '=' +
players[f].loc + Chr(13))
if (FormOption[1]) then
WriteFileString(charsfile, 'skill' + IntToStr(f) + '=' +
players[f].skill + Chr(13))
if (FormOption[2]) then
WriteFileString(charsfile, 'waittime' + IntToStr(f) + '=' +
IntToStr(players[f].waittime) + Chr(13))
if (FormOption[3]) then
WriteFileString(charsfile, 'fight' + IntToStr(f) + '=' +
BoolToStr(players[f].fight) + Chr(13))
if (FormOption[4]) then
WriteFileString(charsfile, 'boolean1' + IntToStr(f) + '=' +
BoolToStr(players[f].boolean1) + Chr(13))
if (FormOption[5]) then
WriteFileString(charsfile, 'boolean2' + IntToStr(f) + '=' +
BoolToStr(players[f].boolean2) + Chr(13))
if (FormOption[6]) then
WriteFileString(charsfile, 'boolean3' + IntToStr(f) + '=' +
BoolToStr(players[f].boolean3) + Chr(13))
if (FormOption[7]) then
WriteFileString(charsfile, 'integer1' + IntToStr(f) + '='
+ IntToStr(players[f].integer1) + Chr(13))
if (FormOption[8]) then
WriteFileString(charsfile, 'integer2' + IntToStr(f) + '='
+ IntToStr(players[f].integer2) + Chr(13))
if (FormOption[9]) then
WriteFileString(charsfile, 'integer3' + IntToStr(f) +
'=' + IntToStr(players[f].integer3) +
Chr(13))
if (FormOption[10]) then
WriteFileString(charsfile, 'integer4' + IntToStr(f)
+
'=' + IntToStr(players[f].integer4) +
Chr(13))
if (FormOption[11]) then
WriteFileString(charsfile, 'string1' + IntToStr(f)
+ '=' + players[f].string1 + Chr(13))
if (FormOption[12]) then
WriteFileString(charsfile, 'string2' +
IntToStr(f) + '=' +
players[f].string2 + Chr(13))
if (FormOption[13]) then
WriteFileString(charsfile, 'string3' +
IntToStr(f) + '=' +
players[f].string3 + Chr(13))
if (FormOption[14]) then
WriteFileString(charsfile, 'extended1' +
IntToStr(f) + '=' +
FloatToStr(players[f].extended1)
+ Chr(13))
if (FormOption[15]) then
WriteFileString(charsfile, 'extended2' +
IntToStr(f) + '=' +
FloatToStr(players[f].extended2) + Chr(13))
if (FormOption[16]) then
WriteFileString(charsfile, 'extended3' +
IntToStr(f) + '=' +
FloatToStr(players[f].extended3) + Chr(13))
WriteFileString(charsfile, Chr(13))
end;
CloseFile(charsfile)
end;
procedure TellTheNoob(sender :TObject);
begin
writeln('');
writeln('');
writeln('');
writeln('');
writeln('');
writeln('');
writeln('');
writeln('');
writeln('');
writeln('');
writeln('Use 3-4 letters of your username. No capitals.');
writeln('Example: Username="The Nooblet" Nickname="oobl"');
end;
Procedure LoadSettings;
var i : integer;
begin
FormOption[1] := true;
FormOption[4] := true;
LoadUs;
lstUsers.CLEAR;
for i := 0 to HowManyPlayers - 1 do
begin
Players[i].Active:=True;
Players[i].skill:='Woodcutting';
lstUsers.ITEMS.Add(inttostr(i+1) + ': ' + Players[i].Name);
end;
end;
Procedure DelPlayer(sender : TObject);
var i : integer;
begin
if getarraylength(players) = 1 then
begin
Writeln('You only have 1 player!')
exit;
end;
if getarraylength(players) < 1 then
begin
setarraylength(players,1);
exit;
end;
for i := UserIndex to getarraylength(players) - 2 do
players[i] := players[i+1];
setarraylength(players, getarraylength(players) - 1);
FixedSaveUs;
LoadSettings;
UserIndex :=0
lstUsers.ITEMINDEX := 0
FixedSaveUs;
if(lstUsers.ITEMINDEX >= 0) and (lstUsers.ITEMINDEX < getarraylength(Players))then
begin
UserIndex := lstUsers.ITEMINDEX;
ckbWield.Checked := Players[UserIndex].Boolean1;
txtUsername.Text:=Players[UserIndex].Name;
txtPass.Text:=Players[UserIndex].Pass;
txtNick.Text:=Players[UserIndex].Nick;
end;
end;
procedure SelectUser(sender : TObject);
begin
FixedSaveUs;
if(lstUsers.ITEMINDEX >= 0) and (lstUsers.ITEMINDEX < getarraylength(Players))then
begin
UserIndex := lstUsers.ITEMINDEX;
ckbWield.Checked := Players[UserIndex].Boolean1;
txtUsername.Text:=Players[UserIndex].Name;
txtPass.Text:=Players[UserIndex].Pass;
txtNick.Text:=Players[UserIndex].Nick;
end;
end;
procedure AddUser(sender : TObject);
begin
SetArrayLength(players, GetArrayLength(players)+1)
Players[GetArrayLength(players)-1].Name := 'NewPlayer';
FixedSaveUs;
LoadSettings;
end;
procedure ValueChanged(sender : TObject);
begin
if sender = txtUsername then
Players[UserIndex].Name := txtUsername.Text;
if sender = txtPass then
Players[UserIndex].Pass := txtPass.Text;
if sender = txtNick then
Players[UserIndex].Nick:= txtNick.Text;
if sender = ckbWield then
Players[UserIndex].Boolean1 := ckbWield.CHECKED;
FixedSaveUs;
LoadSettings;
end;
procedure Start(sender: TObject);
begin
FixedSaveUs;
LoadUs;
frmDesign.ModalResult:= mrOk;
end;
procedure SafeInitForm; // Default Code
var
v: TVariantArray;
begin
setarraylength(V, 0);
ThreadSafeCall('InitForm', v);
end;
procedure ShowFormModal; // Default Code
begin
frmDesign.ShowModal;
end;
procedure SafeShowFormModal; // Default Code
var
v: TVariantArray;
begin
setarraylength(V, 0);
ThreadSafeCall('ShowFormModal', v);
end;
Procedure InitForm;
begin
frmDesign := CreateForm;
frmDesign.Left := 0;
frmDesign.Top := 0;
frmDesign.Width := 597;
frmDesign.Height := 480;
frmDesign.BorderStyle := bsSingle;
frmDesign.Caption := 'Oak Annihilator v2 by SonOfSheep';
frmDesign.Color := clBtnFace;
frmDesign.Font.Color := clWindowText;
frmDesign.Font.Height := -11;
frmDesign.Font.Name := 'MS Sans Serif';
frmDesign.Font.Style := [];
frmDesign.FormStyle := fsStayOnTop;
frmDesign.ShowHint := False;
frmDesign.Visible := False;
frmDesign.PixelsPerInch := 96;
frmDesign.POSITION := poScreenCenter;
Label1 := TLabel.Create(frmDesign);
Label1.Parent := frmDesign;
Label1.Left := 0;
Label1.Top := -2;
Label1.Width := 589;
Label1.Height := 60;
Label1.Alignment := taCenter;
Label1.AutoSize := False;
Label1.Caption := 'User Setup by SonOfSheep';
Label1.Font.Color := clWindowText;
Label1.Font.Height := -48;
Label1.Font.Name := 'BrushScript BT';
Label1.Font.Style := [];
Label1.ParentFont := False;
Label2 := TLabel.Create(frmDesign);
Label2.Parent := frmDesign;
Label2.Left := 0;
Label2.Top := 69;
Label2.Width := 592;
Label2.Height := 29;
Label2.Alignment := taCenter;
Label2.AutoSize := False;
Label2.Caption := 'v2.0';
Label2.Font.Color := clWindowText;
Label2.Font.Height := -24;
Label2.Font.Name := 'Revue BT';
Label2.Font.Style := [fsBold, fsItalic];
Label2.ParentFont := False;
GroupBox1 := TGroupBox.Create(frmDesign);
GroupBox1.Parent := frmDesign;
GroupBox1.Left := 31;
GroupBox1.Top := 111;
GroupBox1.Width := 532;
GroupBox1.Height := 277;
GroupBox1.Caption := 'User Setup';
GroupBox1.TabOrder := 0;
Label3 := TLabel.Create(GroupBox1);
Label3.Parent := GroupBox1;
Label3.Left := 15;
Label3.Top := 28;
Label3.Width := 51;
Label3.Height := 13;
Label3.Caption := 'Username:';
Label4 := TLabel.Create(GroupBox1);
Label4.Parent := GroupBox1;
Label4.Left := 15;
Label4.Top := 58;
Label4.Width := 49;
Label4.Height := 13;
Label4.Caption := 'Password:';
Label5 := TLabel.Create(GroupBox1);
Label5.Parent := GroupBox1;
Label5.Left := 15;
Label5.Top := 86;
Label5.Width := 51;
Label5.Height := 13;
Label5.Caption := 'Nickname:';
lstUsers := TListBox.Create(GroupBox1);
lstUsers.Parent := GroupBox1;
lstUsers.Left := 353;
lstUsers.Top := 25;
lstUsers.Width := 160;
lstUsers.Height := 211;
lstUsers.ItemHeight := 13;
lstUsers.TabOrder := 0;
lstUsers.ONCLICK := @SelectUser;
btnAdd := TButton.Create(GroupBox1);
btnAdd.Parent := GroupBox1;
btnAdd.Left := 352;
btnAdd.Top := 240;
btnAdd.Width := 75;
btnAdd.Height := 25;
btnAdd.Caption := 'Add';
btnAdd.TabOrder := 1;
btnAdd.OnClick := @AddUser;
btnDelete := TButton.Create(GroupBox1);
btnDelete.Parent := GroupBox1;
btnDelete.Left := 440;
btnDelete.Top := 240;
btnDelete.Width := 75;
btnDelete.Height := 25;
btnDelete.Caption := 'Delete';
btnDelete.TabOrder := 2;
btnDelete.OnClick := @DelPlayer;
txtUsername := TEdit.Create(GroupBox1);
txtUsername.Parent := GroupBox1;
txtUsername.Left := 79;
txtUsername.Top := 25;
txtUsername.Width := 260;
txtUsername.Height := 21;
txtUsername.Font.Color := clWindowText;
txtUsername.Font.Height := -11;
txtUsername.Font.Name := 'MS Sans Serif';
txtUsername.Font.Style := [];
txtUsername.ParentFont := False;
txtUsername.TabOrder := 3;
txtUsername.ONCHANGE := @ValueChanged;
txtPass := TEdit.Create(GroupBox1);
txtPass.Parent := GroupBox1;
txtPass.Left := 80;
txtPass.Top := 55;
txtPass.Width := 260;
txtPass.Height := 21;
txtPass.TabOrder := 4;
txtPass.ONCHANGE := @ValueChanged;
txtNick := TEdit.Create(GroupBox1);
txtNick.Parent := GroupBox1;
txtNick.Left := 80;
txtNick.Top := 85;
txtNick.Width := 238;
txtNick.Height := 21;
txtNick.Font.Color := clWindowText;
txtNick.Font.Height := -11;
txtNick.Font.Name := 'MS Sans Serif';
txtNick.Font.Style := [];
txtNick.ParentFont := False;
txtNick.TabOrder := 5;
txtNick.ONCHANGE := @ValueChanged;
ckbWield := TCheckBox.Create(GroupBox1);
ckbWield.Parent := GroupBox1;
ckbWield.Left := 80;
ckbWield.Top := 115;
ckbWield.Width := 97;
ckbWield.Height := 17;
ckbWield.Caption := 'Wield Axe';
ckbWield.TabOrder := 7;
ckbWield.OnClick := @ValueChanged;
btnHelp := TButton.Create(GroupBox1);
btnHelp.Parent := GroupBox1;
btnHelp.Left := 318;
btnHelp.Top := 84;
btnHelp.Width := 23;
btnHelp.Height := 23;
btnHelp.Caption := '?';
btnHelp.Font.Color := clWindowText;
btnHelp.Font.Height := -11;
btnHelp.Font.Name := 'Arial Narrow';
btnHelp.Font.Style := [fsBold];
btnHelp.ParentFont := False;
btnHelp.TabOrder := 6;
btnHelp.OnClick := @TellTheNoob;
btnGo := TButton.Create(frmDesign);
btnGo.Parent := frmDesign;
btnGo.Left := 414;
btnGo.Top := 394;
btnGo.Width := 150;
btnGo.Height := 47;
btnGo.Caption := 'Go!';
btnGo.Font.Color := clWindowText;
btnGo.Font.Height := -27;
btnGo.Font.Name := 'Arial Black';
btnGo.Font.Style := [fsItalic];
btnGo.ParentFont := False;
btnGo.TabOrder := 9;
btnGo.ONCLICK := @Start;
LoadSettings;
UserIndex := 0;
ckbWield.Checked := Players[UserIndex].Boolean1;
txtUsername.Text:=Players[UserIndex].Name;
txtPass.Text:=Players[UserIndex].Pass;
txtNick.Text:=Players[UserIndex].Nick;
end;
procedure ShowSetup;
var user : integer;
begin
ClearDebug;
WriteLn('[Using simple user setup by SonOfSheep]');
SafeInitForm; //show player setup for idiots
SafeShowFormModal; //and lazy people
for user := 0 to howmanyplayers - 1 do
Writeln('Player ' + inttostr(user) + ': ' + Players[user].Name);
end;
//-----------------------------------------------------------------------//
//-----------------------------------------------------------------------//
//-----------------------------------------------------------------------//
//-----------------------------End of Setup------------------------------//
A common mistake people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.-Douglas Adams
There are currently 1 users browsing this thread. (0 members and 1 guests)