Results 1 to 3 of 3

Thread: Saving Form

  1. #1
    Join Date
    Jan 2007
    Location
    Kansas
    Posts
    3,760
    Mentioned
    1 Post(s)
    Quoted
    3 Post(s)

    Default Saving Form

    Could someone tell me how to save the settings in a form so that whenever you open them they stay?


  2. #2
    Join Date
    Jun 2006
    Location
    USA
    Posts
    1,828
    Mentioned
    1 Post(s)
    Quoted
    0 Post(s)

    Default

    SaveSetting saves setting, and LoadSetting loads setting and it returns as string:
    SCAR Code:
    Edit1.Text:=LoadSetting('Section','Setting')
    SaveSetting('Section','Setting',Edit1.Text)
    If you had Edit1.Text in your form, you would do it like that.

  3. #3
    Join Date
    Feb 2007
    Posts
    215
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    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

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Saving something to a file
    By Maninblack144 in forum OSR Help
    Replies: 14
    Last Post: 12-17-2007, 08:25 AM
  2. Saving to file
    By rivon in forum OSR Help
    Replies: 12
    Last Post: 09-22-2007, 06:45 PM
  3. saving as .php HELP!
    By dialeyj2 in forum Web Development
    Replies: 10
    Last Post: 08-13-2007, 04:41 PM
  4. Saving form details
    By Rambozin in forum OSR Help
    Replies: 20
    Last Post: 05-09-2007, 04:26 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •