Results 1 to 4 of 4

Thread: Help me with a form!

  1. #1
    Join Date
    Jan 2009
    Posts
    103
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default Help me with a form!

    Hello people, here is my problem. So im trying to open two forms, when a button is clicked on the first, it goes to the second. I got it to do that, but depending on what button i click in the first form, it will determine the combobox items for the second form. When i press the button, it says 'could not call proc' Im guessing this is because the form is already opened, and maybe you cant change comboboxes in the middle like you can with lists.... anyway here is the script, if you know a way around it please tell me.

    Look at lines 280(OpenMineForm(), before initform) and you will see where i took it out.
    SCAR Code:
    program New;
    {.include SRL/SRL.scar}


    var
      MineForm : TForm;
      Banner : TImage;
      Labels: Array[0..10] of TLabel;
      Edit: Array[0..5] Of TEdit;
      ComboBox : Array[0..1] of TComboBox;
      ListBox1 : TListBox;
      Button: Array[0..7] Of TButton;
      Memo1 : TMemo;
      NoP,PlaySel,LoadsToDo,CP: integer;
      RockType: String;
      MainForm1 : TForm;
      Label1 : TLabel;
      MainButton:Array[0..4] of TButton;


    Procedure FirstSetup;
    begin
         HowManyPlayers:=NoP;
         NumberOfPlayers(HowManyPlayers);
         CurrentPlayer:= CP;
    end;
     
    Function CheckThaForm: Boolean;
    var
    i: integer;
    begin
         For i:=0 to 5 do
         begin
              if Edit[i].text= '' then
              begin
                   Writeln('Please Fill Out the Whole Form!!!');
                   Result:= False;
                   Exit;
              end;
         end;
         Result:=true;
    end;

    Procedure CheckButtonEnable;
    begin
         if NoP>0 then
         begin
              Button[0].enabled:=true;
              Button[2].enabled:=true;
         end;
         if NoP>1 then
         begin
              Button[3].enabled:=true;
         end;
         if NoP<1 then
          begin
               Button[0].enabled:=false;
               Button[2].enabled:=false;
          end;
         if NoP<2 then
          begin
               Button[3].enabled:=false;
          end;
         if PlaySel=0 then
         begin
              Button[0].enabled:=false;
         end;
         If PlaySel= NoP then
         begin
              Button[3].enabled:=false;
         end;
    end;

    Procedure MakeList;
    var
    i: integer;
    begin
         ListBox1.Clear;
         For i:=0 to NoP-1 do
         begin
              ListBox1.Items.Add(inttostr(i)+':   '+Players[i].name);
         end;
         Labels[0].Caption:=('You Currently have '+IntToStr(NoP)+' Player(s)');
         Labels[6].Caption:=(IntToStr(PlaySel)+':  ');
         if PlaySel<0 then
         begin
              PlaySel:=0
              Labels[6].Caption:=(IntToStr(PlaySel)+':  ');
         end;
    end;

    Procedure SavePlayers;
    var
    i: integer;
    SaveFile: TStringList;
    begin
        SaveFile:= TStringList.Create;
        SaveFile.Add(IntToStr(NoP));
         For i:=0 to NoP-1 do
         begin
              SaveFile.Add(Players[i].Name);
              SaveFile.Add(Players[i].Pass);
              SaveFile.Add(Players[i].Nick);
              SaveFile.Add(booltostr(Players[i].Active));
              SaveFile.Add(Players[i].Strings[0]);
              SaveFile.Add(IntToStr(Players[i].Integers[0]));
         end;
        SaveToFile(SaveFile,AppPath+'Superbatmans_Forms\Players');
    end;

    Procedure LoadPlayers;
    var
    LoadFile: TSTringList;
    i: integer;
    begin
    if fileexists(AppPath+'Superbatmans_Forms\Players') then
      begin
         LoadFile:= TStringList.Create;
         if LoadFromFile(LoadFile,AppPath+'Superbatmans_Forms\Players') then
         begin
              NoP:=StrToInt(LoadFile.Strings[0]);
              For i:=0 to NoP-1 do
              begin
                   Players[i].name:=LoadFile.Strings[(i*6)+1];
                   Players[i].pass:=LoadFile.Strings[(i*6)+2];
                   Players[i].nick:=LoadFile.Strings[(i*6)+3];
                   Players[i].active:=StrToBool(LoadFile.Strings[(i*6)+4]);
                   Players[i].Strings[0]:=LoadFile.Strings[(i*6)+5];
                   Players[i].Integers[0]:=StrToInt(LoadFile.Strings[(i*6)+6]);
              end;
              Edit[0].text:= Players[0].Name;
              Edit[1].text:= Players[0].Pass;
              Edit[2].text:= Players[0].Nick;
              For i:=0 to NoP-1 do
              begin
                   ListBox1.Items.Add(IntToStr(i)+':   '+Players[i].Name);
              end;
              PlaySel:=0;
         end;
      end;
    end;

    Procedure SaveAndStartClick(Sender: TObject);
    begin
         If CheckThaForm then
         begin
              SavePlayers;
              MineForm.ModalResult:= mrOk;
         end;
    end;

    Procedure SaveAndExitclick(Sender:Tobject);
    begin
         If CheckThaForm then
         begin
              SavePlayers;
              MineForm.ModalResult:= mrOk;
              TerminateScript;
         end;
    end;


    Procedure AddClick(Sender: TObject);
    begin
         if CheckThaForm then
         begin
              NoP:=NoP+1;
              firstSetup;
              SetArrayLength(Players,NoP);
              Players[NoP-1].Name:=Edit[0].text;
              Players[NoP-1].Pass:=Edit[1].text;
              Players[NoP-1].Nick:=Edit[2].text;
              Players[NoP-1].Active:=StrToBool(ComboBox[0].text);
              Players[NoP-1].Strings[0]:=ComboBox[1].text;
              Players[NoP-1].Integers[0]:=StrToInt(Edit[5].text);
              CheckButtonEnable;
              MakeList;
              PlaySel:=PlaySel+1;
         end;
    end;

    Procedure PrevPlayer(Sender: TObject);
    begin
         Playsel:=PlaySel-1;
         Labels[6].Caption:=(IntToStr(PlaySel)+':  ');
         Edit[0].text:=Players[PlaySel].Name;
         Edit[1].text:=Players[PlaySel].Pass;
         Edit[2].text:=Players[PlaySel].Nick;
         ComboBox[0].text:=BoolToStr(Players[PlaySel].active);
         ComboBox[1].text:= Players[PlaySel].Strings[0];
         Edit[5].text:=IntToStr(Players[PlaySel].Integers[0]);
         CheckButtonEnable;
    end;

    Procedure NextPlayers(Sender: TObject);
    begin
         Playsel:=PlaySel+1;
         Labels[6].Caption:=(IntToStr(PlaySel)+':  ');
         Edit[0].text:=Players[PlaySel].Name;
         Edit[1].text:=Players[PlaySel].Pass;
         Edit[2].text:=Players[PlaySel].Nick;
         ComboBox[0].text:=BoolToStr(Players[PlaySel].active);
         ComboBox[1].text:= Players[PlaySel].Strings[0];
         Edit[5].text:=IntToStr(Players[PlaySel].Integers[0]);
         CheckButtonEnable;
    end;

    Procedure DeletePlayer(Sender: TObject);
    var
    i: integer;
    begin
         NoP:=NoP-1;
         SetArrayLength(Players,NoP)
         for i:=PlaySel to High(Players) do
         begin
              Players[i].Name:=Players[i+1].Name;
              Players[i].Pass:=Players[i+1].Pass;
              Players[i].Nick:=Players[i+1].Nick;
              Players[i].Active:=Players[i+1].Active;
              Players[i].Strings[0]:=Players[i+1].Strings[0];
              Players[i].Integers[0]:=Players[i+1].Integers[0];
         end;
         PlaySel:=PlaySel-1;
         MakeList;
         CheckButtonEnable;
    end;

    Procedure ExitForm(Sender: TObject);
    begin
          MineForm.ModalResult:= mrOk;
          TerminateScript;
    end;

    procedure SafeInitForm(WF: integer);
    var
      v: TVariantArray;
    begin
      setarraylength(V, 0);
      if WF=0 then
      begin
           ThreadSafeCall('InitForm', v);
      end;
      if WF=1 then
      begin
           ThreadSafeCall('InitForm1',v);
      end;
    end;

    procedure ShowFormModal1;
    begin

        MineForm.ShowModal;
    end;

    Procedure ShowFormModal2;
    begin
         MainForm1.ShowModal;
    end;


    procedure SafeShowFormModal(WhatForm: string);
    var
      v: TVariantArray;
    begin
      setarraylength(V, 0);
      Case WhatForm Of
       'FillForm':     ThreadSafeCall('ShowFormModal1', v);
       'MainForm1': ThreadSafeCall('ShowFormModal2',v);
      end;
    end;

    Procedure OpenForm(WF: integer;WhatForm: String);
    begin
         SafeInitForm(WF);
         SafeShowFormModal(WhatForm);
    end;

    Procedure OpenMineForm(Sender:TObject);
    begin
          {ComboBox[1].text:=('Copper');
          ComboBox[1].Items.Add('Copper');
          ComboBox[1].Items.Add('Tin');
          ComboBox[1].Items.Add('Iron');
          ComboBox[1].Items.Add('Coal');
          ComboBox[1].Items.Add('Mithril');
          ComboBox[1].Items.Add('Adamantite');
          ComboBox[1].Items.Add('Runite');}

          MainForm1.ModalResult:=mrOk;
    end;

    procedure InitForm;
    var
    i: integer;
    begin
           MineForm := CreateForm;
           MineForm.Left := 250;
           MineForm.Top := 114;
           MineForm.Width := 555;
           MineForm.Height := 570;
           MineForm.Caption := 'frmDesign';
           MineForm.Color := clWhite;
           MineForm.Font.Color := clWindowText;
           MineForm.Font.Height := -11;
           MineForm.Font.Name := 'MS Sans Serif';
           MineForm.Font.Style := [];
           MineForm.Visible := false;
           MineForm.PixelsPerInch := 96;
           Banner := TImage.Create(MineForm);
           Banner.Parent := MineForm;
           Banner.Left := 0;
           Banner.Top := 0;
           Banner.Width := 537;
           Banner.Height := 81;
           For i:=0 to 10 do
           begin
                Labels[i]:=Tlabel.Create(MineForm);
                Labels[i].Parent:=MineForm;
           end;
           For i:=1 to 5 do
           begin
                Labels[i].Width :=52;
                Labels[i].Height:=13;
                Labels[i].Left:=16;
                Labels[i].Top:=104+(32*i);
           end;
           For i:=7 to 9 do
           begin
                Labels[i].Width:=76;
                Labels[i].Height:=13;
                Labels[i].Left:=368;
                Labels[i].Top:=72+(56*(i-6));
           end;
           Labels[0].Left := 88;
           Labels[0].Top := 88;
           Labels[0].Width := 142;
           Labels[0].Height := 13;
           Labels[0].Caption := 'You Currently have Player[s]   ';
           Labels[1].Caption := 'Username: ';
           Labels[2].Caption := 'Password: ';
           Labels[3].Caption := 'Nick:        ';
           Labels[4].Caption := 'Active:     ';
           Labels[5].Caption := 'Rock:      ';
           Labels[6].Left := 80;
           Labels[6].Top := 112;
           Labels[6].Width := 9;
           Labels[6].Height := 13;
           Labels[6].Caption := '0:';
           Labels[7].Caption := 'SRL ID: ';
           Labels[8].Caption := 'SRL Password: ';
           Labels[9].Caption := 'Loads To Do: ';
           Labels[10].Left := 56;
           Labels[10].Top := 344;
           Labels[10].Width := 278;
           Labels[10].Height := 13;
           Labels[10].Caption := 'Best Progress Report For Superbatman'#39's Power Miner V1.0';
           For i:=0 to 5 do
           begin
                Edit[i]:=TEdit.Create(MineForm);
                Edit[i].Parent:= MineForm;
                Edit[i].Width:=121;
                Edit[i].Height:=21;
           end;
           For i:=0 to 2 do
           begin
                Edit[i].Left:=72;
                Edit[i].Top:=104+((i+1)*32);
                Edit[i].TabOrder:=8+i;
           end;
           For i:=3 to 5 do
           begin
                Edit[i].Left:=368;
                Edit[i].TabOrder:=14+(i-3);
                Edit[i].Top:=96+(56*(i-2));
           end;
           Edit[1].PasswordChar:='*';
           Edit[4].PasswordChar:='*';
     //      LoadPlayers;
           For i:=0 to 1 do
           begin
                ComboBox[i]:=TComboBox.Create(MineForm);
                ComboBox[i].Parent:= MineForm;
                ComboBox[i].Width:=121;
                ComboBox[i].Height:=21;
                ComboBox[i].ItemHeight:=13;
                ComboBox[i].Left:=72;
                ComboBox[i].Top:=232+(32*i);
                ComboBox[i].TabOrder:=11+i;
           end;
           ComboBox[0].Text:='True';
           ComboBox[0].Items.Add('True');
           ComboBox[0].Items.Add('False');
           ListBox1 := TListBox.Create(MineForm);
           ListBox1.Parent := MineForm;
           ListBox1.Left := 224;
           ListBox1.Top := 136;
           ListBox1.Width := 113;
           ListBox1.Height := 153;
           ListBox1.ItemHeight := 13;
           ListBox1.TabOrder := 13;
           For i:=0 to 7 do
           begin
                Button[i]:= TButton.Create(MineForm);
                Button[i].Parent:= MineForm;
                Button[i].TabOrder:=17+i;
                Button[i].Width:=81;
                Button[i].Height:=25;
           end;
           For i:=0 to 3 do
           begin
                Button[i].Top:=296;
                Button[i].Left:=40+(i*104);
           end;
           For i:=4 to 7 do
           begin
                Button[i].Top:=488;
                Button[i].Left:=40+((i-4)*104);
           end;
           CheckButtonEnable;
           Button[0].Caption := '<---------';
           Button[0].OnClick:=@PrevPlayer;
           Button[1].Caption := 'Add Player';
           Button[1].OnClick:=@AddClick;
           Button[2].Caption := 'Delete Player';
           Button[2].OnClick:=@DeletePlayer;
           Memo1 := TMemo.Create(MineForm);
           Memo1.Parent := MineForm;
           Memo1.Left := 32;
           Memo1.Top := 360;
           Memo1.Width := 425;
           Memo1.Height := 121;
           Memo1.Lines.Add('######################################');
           Memo1.Lines.Add('#SuperBatmans''s Miner Thing');
           Memo1.Lines.Add('#Xp gained: 60480');
           Memo1.Lines.Add('#Time Running: 3 Hours, 16 Minutes and 0 Seconds');
           Memo1.Lines.Add('#');
           Memo1.Lines.Add('#Terminated For: Demon Random Event');
           Memo1.TabOrder := 20;
           Button[3].Caption := '--------->';
           Button[3].OnClick:=@NextPlayers;
           Button[4].Caption := 'Exit';
           Button[4].OnClick:=@ExitForm;
           Button[5].Caption := 'Save and Exit';
           Button[5].OnClick:=@SaveAndExitClick;
           Button[6].Caption := 'Save and Start';
           Button[5].OnClick:=@SaveAndStartClick;
           Button[7].Caption := 'Back To Menu';
    end;

    Procedure Initform1;
    var
    i: integer;
    begin
         MainForm1 := CreateForm;
         MainForm1.Left := 250;
         MainForm1.Top := 114;
         MainForm1.Width := 281;
         MainForm1.Height := 436;
         MainForm1.Caption := 'SuperBatman'#39's Script Pack';
         MainForm1.Color := clWhite;
         MainForm1.Font.Color := clWindowText;
         MainForm1.Font.Height := -11;
         MainForm1.Font.Name := 'MS Sans Serif';
         MainForm1.Font.Style := [];
         MainForm1.Visible := False;
         MainForm1.PixelsPerInch := 96;
         Label1 := TLabel.Create(MainForm1);
         Label1.Parent := MainForm1;
         Label1.Left := 24;
         Label1.Top := 32;
         Label1.Width := 217;
         Label1.Height := 23;
         Label1.Caption := 'SuperBatman'#39's Script Pack!';
         Label1.Font.Color := clRed;
         Label1.Font.Height := -16;
         Label1.Font.Name := 'Comic Sans MS';
         Label1.Font.Style := [fsBold];
         Label1.ParentFont := False;
         For i:=0 to 4 do
         begin
              MainButton[i]:= TButton.Create(MainForm1);
              MainButton[i].Parent:=MainForm1;
              MainButton[i].Left:=24;
              MainButton[i].Width:=217;
              MainButton[i].Height:=41;
              MainButton[i].Top:=72+(64*i);
              MainButton[i].TabOrder:=8+i;
         end;
         MainButton[0].OnClick:=@OpenMineForm;
         MainButton[0].Caption := 'Super Miner';
         MainButton[1].Caption := 'Super Cooker';
         MainButton[2].Caption := 'Super Fisher';
         MainButton[3].Caption := 'Super WoodCutter';
         MainButton[4].Caption := 'Next Page';
    end;

    begin
         FirstSetup;
         OpenForm(1,'MainForm1');
         OpenForm(0,'FillForm');
    end.

    EDIT: I tried editing to this:

    SCAR Code:
    program New;
    {.include SRL/SRL.scar}


    var
      MineForm : TForm;
      Banner : TImage;
      Labels: Array[0..10] of TLabel;
      Edit: Array[0..5] Of TEdit;
      ComboBox : Array[0..1] of TComboBox;
      ListBox1 : TListBox;
      Button: Array[0..7] Of TButton;
      Memo1 : TMemo;
      NoP,PlaySel,LoadsToDo,CP: integer;
      RockType: String;
      MainForm1 : TForm;
      FishForm: TForm;
      Label1 : TLabel;
      MainButton:Array[0..4] of TButton;


    Procedure FirstSetup;
    begin
         HowManyPlayers:=NoP;
         NumberOfPlayers(HowManyPlayers);
         CurrentPlayer:= CP;
    end;
     
    Function CheckThaForm: Boolean;
    var
    i: integer;
    begin
         For i:=0 to 5 do
         begin
              if Edit[i].text= '' then
              begin
                   Writeln('Please Fill Out the Whole Form!!!');
                   Result:= False;
                   Exit;
              end;
         end;
         Result:=true;
    end;

    Procedure CheckButtonEnable;
    begin
         if NoP>0 then
         begin
              Button[0].enabled:=true;
              Button[2].enabled:=true;
         end;
         if NoP>1 then
         begin
              Button[3].enabled:=true;
         end;
         if NoP<1 then
          begin
               Button[0].enabled:=false;
               Button[2].enabled:=false;
          end;
         if NoP<2 then
          begin
               Button[3].enabled:=false;
          end;
         if PlaySel=0 then
         begin
              Button[0].enabled:=false;
         end;
         If PlaySel= NoP then
         begin
              Button[3].enabled:=false;
         end;
    end;

    Procedure MakeList;
    var
    i: integer;
    begin
         ListBox1.Clear;
         For i:=0 to NoP-1 do
         begin
              ListBox1.Items.Add(inttostr(i)+':   '+Players[i].name);
         end;
         Labels[0].Caption:=('You Currently have '+IntToStr(NoP)+' Player(s)');
         Labels[6].Caption:=(IntToStr(PlaySel)+':  ');
         if PlaySel<0 then
         begin
              PlaySel:=0
              Labels[6].Caption:=(IntToStr(PlaySel)+':  ');
         end;
    end;

    Procedure SavePlayers;
    var
    i: integer;
    SaveFile: TStringList;
    begin
        SaveFile:= TStringList.Create;
        SaveFile.Add(IntToStr(NoP));
         For i:=0 to NoP-1 do
         begin
              SaveFile.Add(Players[i].Name);
              SaveFile.Add(Players[i].Pass);
              SaveFile.Add(Players[i].Nick);
              SaveFile.Add(booltostr(Players[i].Active));
              SaveFile.Add(Players[i].Strings[0]);
              SaveFile.Add(IntToStr(Players[i].Integers[0]));
         end;
        SaveToFile(SaveFile,AppPath+'Superbatmans_Forms\Players');
    end;

    Procedure LoadPlayers;
    var
    LoadFile: TSTringList;
    i: integer;
    begin
    if fileexists(AppPath+'Superbatmans_Forms\Players') then
      begin
         LoadFile:= TStringList.Create;
         if LoadFromFile(LoadFile,AppPath+'Superbatmans_Forms\Players') then
         begin
              NoP:=StrToInt(LoadFile.Strings[0]);
              For i:=0 to NoP-1 do
              begin
                   Players[i].name:=LoadFile.Strings[(i*6)+1];
                   Players[i].pass:=LoadFile.Strings[(i*6)+2];
                   Players[i].nick:=LoadFile.Strings[(i*6)+3];
                   Players[i].active:=StrToBool(LoadFile.Strings[(i*6)+4]);
                   Players[i].Strings[0]:=LoadFile.Strings[(i*6)+5];
                   Players[i].Integers[0]:=StrToInt(LoadFile.Strings[(i*6)+6]);
              end;
              Edit[0].text:= Players[0].Name;
              Edit[1].text:= Players[0].Pass;
              Edit[2].text:= Players[0].Nick;
              For i:=0 to NoP-1 do
              begin
                   ListBox1.Items.Add(IntToStr(i)+':   '+Players[i].Name);
              end;
              PlaySel:=0;
         end;
      end;
    end;

    Procedure SaveAndStartClick(Sender: TObject);
    begin
         If CheckThaForm then
         begin
              SavePlayers;
              MineForm.ModalResult:= mrOk;
         end;
    end;

    Procedure SaveAndExitclick(Sender:Tobject);
    begin
         If CheckThaForm then
         begin
              SavePlayers;
              MineForm.ModalResult:= mrOk;
              TerminateScript;
         end;
    end;


    Procedure AddClick(Sender: TObject);
    begin
         if CheckThaForm then
         begin
              NoP:=NoP+1;
              firstSetup;
              SetArrayLength(Players,NoP);
              Players[NoP-1].Name:=Edit[0].text;
              Players[NoP-1].Pass:=Edit[1].text;
              Players[NoP-1].Nick:=Edit[2].text;
              Players[NoP-1].Active:=StrToBool(ComboBox[0].text);
              Players[NoP-1].Strings[0]:=ComboBox[1].text;
              Players[NoP-1].Integers[0]:=StrToInt(Edit[5].text);
              CheckButtonEnable;
              MakeList;
              PlaySel:=PlaySel+1;
         end;
    end;

    Procedure PrevPlayer(Sender: TObject);
    begin
         Playsel:=PlaySel-1;
         Labels[6].Caption:=(IntToStr(PlaySel)+':  ');
         Edit[0].text:=Players[PlaySel].Name;
         Edit[1].text:=Players[PlaySel].Pass;
         Edit[2].text:=Players[PlaySel].Nick;
         ComboBox[0].text:=BoolToStr(Players[PlaySel].active);
         ComboBox[1].text:= Players[PlaySel].Strings[0];
         Edit[5].text:=IntToStr(Players[PlaySel].Integers[0]);
         CheckButtonEnable;
    end;

    Procedure NextPlayers(Sender: TObject);
    begin
         Playsel:=PlaySel+1;
         Labels[6].Caption:=(IntToStr(PlaySel)+':  ');
         Edit[0].text:=Players[PlaySel].Name;
         Edit[1].text:=Players[PlaySel].Pass;
         Edit[2].text:=Players[PlaySel].Nick;
         ComboBox[0].text:=BoolToStr(Players[PlaySel].active);
         ComboBox[1].text:= Players[PlaySel].Strings[0];
         Edit[5].text:=IntToStr(Players[PlaySel].Integers[0]);
         CheckButtonEnable;
    end;

    Procedure DeletePlayer(Sender: TObject);
    var
    i: integer;
    begin
         NoP:=NoP-1;
         SetArrayLength(Players,NoP)
         for i:=PlaySel to High(Players) do
         begin
              Players[i].Name:=Players[i+1].Name;
              Players[i].Pass:=Players[i+1].Pass;
              Players[i].Nick:=Players[i+1].Nick;
              Players[i].Active:=Players[i+1].Active;
              Players[i].Strings[0]:=Players[i+1].Strings[0];
              Players[i].Integers[0]:=Players[i+1].Integers[0];
         end;
         PlaySel:=PlaySel-1;
         MakeList;
         CheckButtonEnable;
    end;

    Procedure ExitForm(Sender: TObject);
    begin
          MineForm.ModalResult:= mrOk;
          TerminateScript;
    end;

    procedure SafeInitForm(WF: integer);
    var
      v: TVariantArray;
    begin
      setarraylength(V, 0);
      if WF=0 then
      begin
           ThreadSafeCall('InitForm', v);
      end;
      if WF=1 then
      begin
           ThreadSafeCall('InitForm0',v);
      end;
      if WF=2 then
      begin
           ThreadSafeCall('InitForm1',v);
      end;
    end;

    procedure ShowFormModal1;
    begin

        MineForm.ShowModal;
    end;

    Procedure ShowFormModal2;
    begin
         MainForm1.ShowModal;
    end;

    Procedure ShowFormModal3;
    begin
         FishForm.ShowModal;
    end;

    procedure SafeShowFormModal(WhatForm: string);
    var
      v: TVariantArray;
    begin
      setarraylength(V, 0);
      Case WhatForm Of
       'FillForm':ThreadSafeCall('ShowFormModal1', v);
       'MainForm1': ThreadSafeCall('ShowFormModal2',v);
       'FishForm': ThreadSafeCall('ShowFormModal3',v);
      end;
    end;

    Procedure OpenForm(WF: integer;WhatForm: String);
    begin
         SafeInitForm(WF);
         SafeShowFormModal(WhatForm);
    end;

    Procedure OpenMineForm(Sender: TObject);
    begin
          MainForm1.ModalResult:=mrOk;
    end;

    Procedure OpenFishForm(Sender: TObject);
    begin
         MainForm1.ModalResult:=mrOk;
         wait(500);
         MineForm.ModalResult:=mrOk;
    end;

    procedure InitForm;
    var
    i: integer;
    begin
           MineForm := CreateForm;
           MineForm.Left := 250;
           MineForm.Top := 114;
           MineForm.Width := 555;
           MineForm.Height := 570;
           MineForm.Caption := 'frmDesign';
           MineForm.Color := clWhite;
           MineForm.Font.Color := clWindowText;
           MineForm.Font.Height := -11;
           MineForm.Font.Name := 'MS Sans Serif';
           MineForm.Font.Style := [];
           MineForm.Visible := false;
           MineForm.PixelsPerInch := 96;
           Banner := TImage.Create(MineForm);
           Banner.Parent := MineForm;
           Banner.Left := 0;
           Banner.Top := 0;
           Banner.Width := 537;
           Banner.Height := 81;
           For i:=0 to 10 do
           begin
                Labels[i]:=Tlabel.Create(MineForm);
                Labels[i].Parent:=MineForm;
           end;
           For i:=1 to 5 do
           begin
                Labels[i].Width :=52;
                Labels[i].Height:=13;
                Labels[i].Left:=16;
                Labels[i].Top:=104+(32*i);
           end;
           For i:=7 to 9 do
           begin
                Labels[i].Width:=76;
                Labels[i].Height:=13;
                Labels[i].Left:=368;
                Labels[i].Top:=72+(56*(i-6));
           end;
           Labels[0].Left := 88;
           Labels[0].Top := 88;
           Labels[0].Width := 142;
           Labels[0].Height := 13;
           Labels[0].Caption := 'You Currently have Player[s]   ';
           Labels[1].Caption := 'Username: ';
           Labels[2].Caption := 'Password: ';
           Labels[3].Caption := 'Nick:        ';
           Labels[4].Caption := 'Active:     ';
           Labels[5].Caption := 'Rock:      ';
           Labels[6].Left := 80;
           Labels[6].Top := 112;
           Labels[6].Width := 9;
           Labels[6].Height := 13;
           Labels[6].Caption := '0:';
           Labels[7].Caption := 'SRL ID: ';
           Labels[8].Caption := 'SRL Password: ';
           Labels[9].Caption := 'Loads To Do: ';
           Labels[10].Left := 56;
           Labels[10].Top := 344;
           Labels[10].Width := 278;
           Labels[10].Height := 13;
           Labels[10].Caption := 'Best Progress Report For Superbatman'#39's Power Miner V1.0';
           For i:=0 to 5 do
           begin
                Edit[i]:=TEdit.Create(MineForm);
                Edit[i].Parent:= MineForm;
                Edit[i].Width:=121;
                Edit[i].Height:=21;
           end;
           For i:=0 to 2 do
           begin
                Edit[i].Left:=72;
                Edit[i].Top:=104+((i+1)*32);
                Edit[i].TabOrder:=8+i;
           end;
           For i:=3 to 5 do
           begin
                Edit[i].Left:=368;
                Edit[i].TabOrder:=14+(i-3);
                Edit[i].Top:=96+(56*(i-2));
           end;
           Edit[1].PasswordChar:='*';
           Edit[4].PasswordChar:='*';
     //      LoadPlayers;
           For i:=0 to 1 do
           begin
                ComboBox[i]:=TComboBox.Create(MineForm);
                ComboBox[i].Parent:= MineForm;
                ComboBox[i].Width:=121;
                ComboBox[i].Height:=21;
                ComboBox[i].ItemHeight:=13;
                ComboBox[i].Left:=72;
                ComboBox[i].Top:=232+(32*i);
                ComboBox[i].TabOrder:=11+i;
           end;
           ComboBox[0].Text:='True';
           ComboBox[0].Items.Add('True');
           ComboBox[0].Items.Add('False');
           ComboBox[1].text:=('Copper');
          ComboBox[1].Items.Add('Copper');
          ComboBox[1].Items.Add('Tin');
          ComboBox[1].Items.Add('Iron');
          ComboBox[1].Items.Add('Coal');
          ComboBox[1].Items.Add('Mithril');
          ComboBox[1].Items.Add('Adamantite');
          ComboBox[1].Items.Add('Runite');
           ListBox1 := TListBox.Create(MineForm);
           ListBox1.Parent := MineForm;
           ListBox1.Left := 224;
           ListBox1.Top := 136;
           ListBox1.Width := 113;
           ListBox1.Height := 153;
           ListBox1.ItemHeight := 13;
           ListBox1.TabOrder := 13;
           For i:=0 to 7 do
           begin
                Button[i]:= TButton.Create(MineForm);
                Button[i].Parent:= MineForm;
                Button[i].TabOrder:=17+i;
                Button[i].Width:=81;
                Button[i].Height:=25;
           end;
           For i:=0 to 3 do
           begin
                Button[i].Top:=296;
                Button[i].Left:=40+(i*104);
           end;
           For i:=4 to 7 do
           begin
                Button[i].Top:=488;
                Button[i].Left:=40+((i-4)*104);
           end;
           CheckButtonEnable;
           Button[0].Caption := '<---------';
           Button[0].OnClick:=@PrevPlayer;
           Button[1].Caption := 'Add Player';
           Button[1].OnClick:=@AddClick;
           Button[2].Caption := 'Delete Player';
           Button[2].OnClick:=@DeletePlayer;
           Memo1 := TMemo.Create(MineForm);
           Memo1.Parent := MineForm;
           Memo1.Left := 32;
           Memo1.Top := 360;
           Memo1.Width := 425;
           Memo1.Height := 121;
           Memo1.Lines.Add('######################################');
           Memo1.Lines.Add('#SuperBatmans''s Miner Thing');
           Memo1.Lines.Add('#Xp gained: 60480');
           Memo1.Lines.Add('#Time Running: 3 Hours, 16 Minutes and 0 Seconds');
           Memo1.Lines.Add('#');
           Memo1.Lines.Add('#Terminated For: Demon Random Event');
           Memo1.TabOrder := 20;
           Button[3].Caption := '--------->';
           Button[3].OnClick:=@NextPlayers;
           Button[4].Caption := 'Exit';
           Button[4].OnClick:=@ExitForm;
           Button[5].Caption := 'Save and Exit';
           Button[5].OnClick:=@SaveAndExitClick;
           Button[6].Caption := 'Save and Start';
           Button[5].OnClick:=@SaveAndStartClick;
           Button[7].Caption := 'Back To Menu';
    end;

    Procedure Initform0;
    var
    i: integer;
    begin
         MainForm1 := CreateForm;
         MainForm1.Left := 250;
         MainForm1.Top := 114;
         MainForm1.Width := 281;
         MainForm1.Height := 436;
         MainForm1.Caption := 'SuperBatman'#39's Script Pack';
         MainForm1.Color := clWhite;
         MainForm1.Font.Color := clWindowText;
         MainForm1.Font.Height := -11;
         MainForm1.Font.Name := 'MS Sans Serif';
         MainForm1.Font.Style := [];
         MainForm1.Visible := False;
         MainForm1.PixelsPerInch := 96;
         Label1 := TLabel.Create(MainForm1);
         Label1.Parent := MainForm1;
         Label1.Left := 24;
         Label1.Top := 32;
         Label1.Width := 217;
         Label1.Height := 23;
         Label1.Caption := 'SuperBatman'#39's Script Pack!';
         Label1.Font.Color := clRed;
         Label1.Font.Height := -16;
         Label1.Font.Name := 'Comic Sans MS';
         Label1.Font.Style := [fsBold];
         Label1.ParentFont := False;
         For i:=0 to 4 do
         begin
              MainButton[i]:= TButton.Create(MainForm1);
              MainButton[i].Parent:=MainForm1;
              MainButton[i].Left:=24;
              MainButton[i].Width:=217;
              MainButton[i].Height:=41;
              MainButton[i].Top:=72+(64*i);
              MainButton[i].TabOrder:=8+i;
         end;
         MainButton[0].OnClick:=@OpenMineForm;
         MainButton[0].Caption := 'Super Miner';
         MainButton[1].Caption := 'Super Cooker';
         MainButton[1].Onclick:=@OpenFishForm;
         MainButton[2].Caption := 'Super Fisher';
         MainButton[3].Caption := 'Super WoodCutter';
         MainButton[4].Caption := 'Next Page';
    end;

    procedure InitForm1;
    var
    i: integer;
    begin
           FishForm := CreateForm;
           FishForm.Left := 250;
           FishForm.Top := 114;
           FishForm.Width := 555;
           FishForm.Height := 570;
           FishForm.Caption := 'frmDesign';
           FishForm.Color := clWhite;
           FishForm.Font.Color := clWindowText;
           FishForm.Font.Height := -11;
           FishForm.Font.Name := 'MS Sans Serif';
           FishForm.Font.Style := [];
           FishForm.Visible := false;
           FishForm.PixelsPerInch := 96;
           Banner := TImage.Create(FishForm);
           Banner.Parent := FishForm;
           Banner.Left := 0;
           Banner.Top := 0;
           Banner.Width := 537;
           Banner.Height := 81;
           For i:=0 to 10 do
           begin
                Labels[i]:=Tlabel.Create(FishForm);
                Labels[i].Parent:=FishForm;
           end;
           For i:=1 to 5 do
           begin
                Labels[i].Width :=52;
                Labels[i].Height:=13;
                Labels[i].Left:=16;
                Labels[i].Top:=104+(32*i);
           end;
           For i:=7 to 9 do
           begin
                Labels[i].Width:=76;
                Labels[i].Height:=13;
                Labels[i].Left:=368;
                Labels[i].Top:=72+(56*(i-6));
           end;
           Labels[0].Left := 88;
           Labels[0].Top := 88;
           Labels[0].Width := 142;
           Labels[0].Height := 13;
           Labels[0].Caption := 'You Currently have Player[s]   ';
           Labels[1].Caption := 'Username: ';
           Labels[2].Caption := 'Password: ';
           Labels[3].Caption := 'Nick:        ';
           Labels[4].Caption := 'Active:     ';
           Labels[5].Caption := 'Rock:      ';
           Labels[6].Left := 80;
           Labels[6].Top := 112;
           Labels[6].Width := 9;
           Labels[6].Height := 13;
           Labels[6].Caption := '0:';
           Labels[7].Caption := 'SRL ID: ';
           Labels[8].Caption := 'SRL Password: ';
           Labels[9].Caption := 'Loads To Do: ';
           Labels[10].Left := 56;
           Labels[10].Top := 344;
           Labels[10].Width := 278;
           Labels[10].Height := 13;
           Labels[10].Caption := 'Best Progress Report For Superbatman'#39's Power Miner V1.0';
           For i:=0 to 5 do
           begin
                Edit[i]:=TEdit.Create(FishForm);
                Edit[i].Parent:= FishForm;
                Edit[i].Width:=121;
                Edit[i].Height:=21;
           end;
           For i:=0 to 2 do
           begin
                Edit[i].Left:=72;
                Edit[i].Top:=104+((i+1)*32);
                Edit[i].TabOrder:=8+i;
           end;
           For i:=3 to 5 do
           begin
                Edit[i].Left:=368;
                Edit[i].TabOrder:=14+(i-3);
                Edit[i].Top:=96+(56*(i-2));
           end;
           Edit[1].PasswordChar:='*';
           Edit[4].PasswordChar:='*';
     //      LoadPlayers;
           For i:=0 to 1 do
           begin
                ComboBox[i]:=TComboBox.Create(FishForm);
                ComboBox[i].Parent:= FishForm;
                ComboBox[i].Width:=121;
                ComboBox[i].Height:=21;
                ComboBox[i].ItemHeight:=13;
                ComboBox[i].Left:=72;
                ComboBox[i].Top:=232+(32*i);
                ComboBox[i].TabOrder:=11+i;
           end;
           ComboBox[0].Text:='True';
           ComboBox[0].Items.Add('True');
           ComboBox[0].Items.Add('False');
           ComboBox[1].text:=('Shrimp');
           ComboBox[1].Items.Add('Shrimp');
           ListBox1 := TListBox.Create(FishForm);
           ListBox1.Parent := FishForm;
           ListBox1.Left := 224;
           ListBox1.Top := 136;
           ListBox1.Width := 113;
           ListBox1.Height := 153;
           ListBox1.ItemHeight := 13;
           ListBox1.TabOrder := 13;
           For i:=0 to 7 do
           begin
                Button[i]:= TButton.Create(FishForm);
                Button[i].Parent:= FishForm;
                Button[i].TabOrder:=17+i;
                Button[i].Width:=81;
                Button[i].Height:=25;
           end;
           For i:=0 to 3 do
           begin
                Button[i].Top:=296;
                Button[i].Left:=40+(i*104);
           end;
           For i:=4 to 7 do
           begin
                Button[i].Top:=488;
                Button[i].Left:=40+((i-4)*104);
           end;
           CheckButtonEnable;
           Button[0].Caption := '<---------';
           Button[0].OnClick:=@PrevPlayer;
           Button[1].Caption := 'Add Player';
           Button[1].OnClick:=@AddClick;
           Button[2].Caption := 'Delete Player';
           Button[2].OnClick:=@DeletePlayer;
           Memo1 := TMemo.Create(FishForm);
           Memo1.Parent := FishForm;
           Memo1.Left := 32;
           Memo1.Top := 360;
           Memo1.Width := 425;
           Memo1.Height := 121;
           Memo1.Lines.Add('######################################');
           Memo1.Lines.Add('#SuperBatmans''s Miner Thing');
           Memo1.Lines.Add('#Xp gained: 60480');
           Memo1.Lines.Add('#Time Running: 3 Hours, 16 Minutes and 0 Seconds');
           Memo1.Lines.Add('#');
           Memo1.Lines.Add('#Terminated For: Demon Random Event');
           Memo1.TabOrder := 20;
           Button[3].Caption := '--------->';
           Button[3].OnClick:=@NextPlayers;
           Button[4].Caption := 'Exit';
           Button[4].OnClick:=@ExitForm;
           Button[5].Caption := 'Save and Exit';
           Button[5].OnClick:=@SaveAndExitClick;
           Button[6].Caption := 'Save and Start';
           Button[5].OnClick:=@SaveAndStartClick;
           Button[7].Caption := 'Back To Menu';
    end;


    begin
         FirstSetup;
         OpenForm(1,'MainForm1');
         OpenForm(0,'FillForm');
         OpenForm(2,'fishForm');
    end.

    But it wont let me close 2 forms in 1 procedure.
    Last edited by superbatman; 03-30-2009 at 06:34 AM.

  2. #2
    Join Date
    Jan 2008
    Location
    Ontario, Canada
    Posts
    7,805
    Mentioned
    5 Post(s)
    Quoted
    3 Post(s)

    Default

    Have you tried changing the order you close the form in?
    Writing an SRL Member Application | [Updated] Pascal Scripting Statements
    My GitHub

    Progress Report:
    13:46 <@BenLand100> <SourceCode> @BenLand100: what you have just said shows you 
                        have serious physchological problems
    13:46 <@BenLand100> HE GETS IT!
    13:46 <@BenLand100> HE FINALLY GETS IT!!!!1

  3. #3
    Join Date
    Jan 2009
    Posts
    103
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Yeah i tried that, i also tried just making different combo boxes and setting all but the one i want to ComboBox[1].Visible:=False, but it wont let me do that either.

  4. #4
    Join Date
    Jan 2009
    Posts
    103
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    SOLVED!!! now i got the fish one to open too, check it out:

    SCAR Code:
    program New;
    {.include SRL/SRL.scar}


    var
      MineForm : TForm;
      Banner : TImage;
      Labels: Array[0..10] of TLabel;
      Edit: Array[0..5] Of TEdit;
      ComboBox : Array[0..1] of TComboBox;
      ListBox1 : TListBox;
      Button: Array[0..7] Of TButton;
      Memo1 : TMemo;
      NoP,PlaySel,LoadsToDo,CP: integer;
      RockType,prog: String;
      MainForm1 : TForm;
      Label1 : TLabel;
      MainButton:Array[0..4] of TButton;


    Procedure FirstSetup;
    begin
         HowManyPlayers:=NoP;
         NumberOfPlayers(HowManyPlayers);
         CurrentPlayer:= CP;
    end;

    Function CheckThaForm: Boolean;
    var
    i: integer;
    begin
         For i:=0 to 5 do
         begin
              if Edit[i].text= '' then
              begin
                   Writeln('Please Fill Out the Whole Form!!!');
                   Result:= False;
                   Exit;
              end;
         end;
         Result:=true;
    end;

    Procedure CheckButtonEnable;
    begin
         if NoP>0 then
         begin
              Button[0].enabled:=true;
              Button[2].enabled:=true;
         end;
         if NoP>1 then
         begin
              Button[3].enabled:=true;
         end;
         if NoP<1 then
          begin
               Button[0].enabled:=false;
               Button[2].enabled:=false;
          end;
         if NoP<2 then
          begin
               Button[3].enabled:=false;
          end;
         if PlaySel=0 then
         begin
              Button[0].enabled:=false;
         end;
         If PlaySel= NoP then
         begin
              Button[3].enabled:=false;
         end;
    end;

    Procedure MakeList;
    var
    i: integer;
    begin
         ListBox1.Clear;
         For i:=0 to NoP-1 do
         begin
              ListBox1.Items.Add(inttostr(i)+':   '+Players[i].name);
         end;
         Labels[0].Caption:=('You Currently have '+IntToStr(NoP)+' Player(s)');
         Labels[6].Caption:=(IntToStr(PlaySel)+':  ');
         if PlaySel<0 then
         begin
              PlaySel:=0
              Labels[6].Caption:=(IntToStr(PlaySel)+':  ');
         end;
    end;

    Procedure SavePlayers;
    var
    i: integer;
    SaveFile: TStringList;
    begin
        SaveFile:= TStringList.Create;
        SaveFile.Add(IntToStr(NoP));
         For i:=0 to NoP-1 do
         begin
              SaveFile.Add(Players[i].Name);
              SaveFile.Add(Players[i].Pass);
              SaveFile.Add(Players[i].Nick);
              SaveFile.Add(booltostr(Players[i].Active));
              SaveFile.Add(Players[i].Strings[0]);
              SaveFile.Add(IntToStr(Players[i].Integers[0]));
         end;
        SaveToFile(SaveFile,AppPath+'Superbatmans_Forms\Players');
    end;

    Procedure LoadPlayers;
    var
    LoadFile: TSTringList;
    i: integer;
    begin
    if fileexists(AppPath+'Superbatmans_Forms\Players') then
      begin
         LoadFile:= TStringList.Create;
         if LoadFromFile(LoadFile,AppPath+'Superbatmans_Forms\Players') then
         begin
              NoP:=StrToInt(LoadFile.Strings[0]);
              For i:=0 to NoP-1 do
              begin
                   Players[i].name:=LoadFile.Strings[(i*6)+1];
                   Players[i].pass:=LoadFile.Strings[(i*6)+2];
                   Players[i].nick:=LoadFile.Strings[(i*6)+3];
                   Players[i].active:=StrToBool(LoadFile.Strings[(i*6)+4]);
                   Players[i].Strings[0]:=LoadFile.Strings[(i*6)+5];
                   Players[i].Integers[0]:=StrToInt(LoadFile.Strings[(i*6)+6]);
              end;
              Edit[0].text:= Players[0].Name;
              Edit[1].text:= Players[0].Pass;
              Edit[2].text:= Players[0].Nick;
              For i:=0 to NoP-1 do
              begin
                   ListBox1.Items.Add(IntToStr(i)+':   '+Players[i].Name);
              end;
              PlaySel:=0;
         end;
      end;
    end;

    Procedure SaveAndStartClick(Sender: TObject);
    begin
         If CheckThaForm then
         begin
              SavePlayers;
              MineForm.ModalResult:= mrOk;
         end;
    end;

    Procedure SaveAndExitclick(Sender:Tobject);
    begin
         If CheckThaForm then
         begin
              SavePlayers;
              MineForm.ModalResult:= mrOk;
              TerminateScript;
         end;
    end;


    Procedure AddClick(Sender: TObject);
    begin
         if CheckThaForm then
         begin
              NoP:=NoP+1;
              firstSetup;
              SetArrayLength(Players,NoP);
              Players[NoP-1].Name:=Edit[0].text;
              Players[NoP-1].Pass:=Edit[1].text;
              Players[NoP-1].Nick:=Edit[2].text;
              Players[NoP-1].Active:=StrToBool(ComboBox[0].text);
              Players[NoP-1].Strings[0]:=ComboBox[1].text;
              Players[NoP-1].Integers[0]:=StrToInt(Edit[5].text);
              CheckButtonEnable;
              MakeList;
              PlaySel:=PlaySel+1;
         end;
    end;

    Procedure PrevPlayer(Sender: TObject);
    begin
         Playsel:=PlaySel-1;
         Labels[6].Caption:=(IntToStr(PlaySel)+':  ');
         Edit[0].text:=Players[PlaySel].Name;
         Edit[1].text:=Players[PlaySel].Pass;
         Edit[2].text:=Players[PlaySel].Nick;
         ComboBox[0].text:=BoolToStr(Players[PlaySel].active);
         ComboBox[1].text:= Players[PlaySel].Strings[0];
         Edit[5].text:=IntToStr(Players[PlaySel].Integers[0]);
         CheckButtonEnable;
    end;

    Procedure NextPlayers(Sender: TObject);
    begin
         Playsel:=PlaySel+1;
         Labels[6].Caption:=(IntToStr(PlaySel)+':  ');
         Edit[0].text:=Players[PlaySel].Name;
         Edit[1].text:=Players[PlaySel].Pass;
         Edit[2].text:=Players[PlaySel].Nick;
         ComboBox[0].text:=BoolToStr(Players[PlaySel].active);
         ComboBox[1].text:= Players[PlaySel].Strings[0];
         Edit[5].text:=IntToStr(Players[PlaySel].Integers[0]);
         CheckButtonEnable;
    end;

    Procedure DeletePlayer(Sender: TObject);
    var
    i: integer;
    begin
         NoP:=NoP-1;
         SetArrayLength(Players,NoP)
         for i:=PlaySel to High(Players) do
         begin
              Players[i].Name:=Players[i+1].Name;
              Players[i].Pass:=Players[i+1].Pass;
              Players[i].Nick:=Players[i+1].Nick;
              Players[i].Active:=Players[i+1].Active;
              Players[i].Strings[0]:=Players[i+1].Strings[0];
              Players[i].Integers[0]:=Players[i+1].Integers[0];
         end;
         PlaySel:=PlaySel-1;
         MakeList;
         CheckButtonEnable;
    end;

    Procedure ExitForm(Sender: TObject);
    begin
          MineForm.ModalResult:= mrOk;
          TerminateScript;
    end;

    procedure SafeInitForm(WF: integer);
    var
      v: TVariantArray;
    begin
      setarraylength(V, 0);
      if WF=0 then
      begin
           ThreadSafeCall('InitForm', v);
      end;
      if WF=1 then
      begin
           ThreadSafeCall('InitForm1',v);
      end;
    end;

    procedure ShowFormModal1;
    begin

        MineForm.ShowModal;
    end;

    Procedure ShowFormModal2;
    begin
         MainForm1.ShowModal;
    end;


    procedure SafeShowFormModal(WhatForm: string);
    var
      v: TVariantArray;
    begin
      setarraylength(V, 0);
      Case WhatForm Of
       'FillForm':     ThreadSafeCall('ShowFormModal1', v);
       'MainForm1': ThreadSafeCall('ShowFormModal2',v);
      end;
    end;

    Procedure OpenForm(WF: integer;WhatForm: String);
    begin
         SafeInitForm(WF);
         SafeShowFormModal(WhatForm);
    end;

    Procedure OpenMineForm(Sender:TObject);
    begin
         prog:='mine';
          MainForm1.ModalResult:=mrOk;
    end;

    Procedure OpenFishForm(Sender: TObject);
    begin
         prog:='fish';
         MainForm1.ModalResult:=mrOk;
    end;

    procedure InitForm;
    var
    i: integer;
    begin
           MineForm := CreateForm;
           MineForm.Left := 250;
           MineForm.Top := 114;
           MineForm.Width := 555;
           MineForm.Height := 570;
           MineForm.Caption := 'frmDesign';
           MineForm.Color := clWhite;
           MineForm.Font.Color := clWindowText;
           MineForm.Font.Height := -11;
           MineForm.Font.Name := 'MS Sans Serif';
           MineForm.Font.Style := [];
           MineForm.Visible := false;
           MineForm.PixelsPerInch := 96;
           Banner := TImage.Create(MineForm);
           Banner.Parent := MineForm;
           Banner.Left := 0;
           Banner.Top := 0;
           Banner.Width := 537;
           Banner.Height := 81;
           For i:=0 to 10 do
           begin
                Labels[i]:=Tlabel.Create(MineForm);
                Labels[i].Parent:=MineForm;
           end;
           For i:=1 to 5 do
           begin
                Labels[i].Width :=52;
                Labels[i].Height:=13;
                Labels[i].Left:=16;
                Labels[i].Top:=104+(32*i);
           end;
           For i:=7 to 9 do
           begin
                Labels[i].Width:=76;
                Labels[i].Height:=13;
                Labels[i].Left:=368;
                Labels[i].Top:=72+(56*(i-6));
           end;
           Labels[0].Left := 88;
           Labels[0].Top := 88;
           Labels[0].Width := 142;
           Labels[0].Height := 13;
           Labels[0].Caption := 'You Currently have Player[s]   ';
           Labels[1].Caption := 'Username: ';
           Labels[2].Caption := 'Password: ';
           Labels[3].Caption := 'Nick:        ';
           Labels[4].Caption := 'Active:     ';
           Labels[5].Caption := 'Rock:      ';
           Labels[6].Left := 80;
           Labels[6].Top := 112;
           Labels[6].Width := 9;
           Labels[6].Height := 13;
           Labels[6].Caption := '0:';
           Labels[7].Caption := 'SRL ID: ';
           Labels[8].Caption := 'SRL Password: ';
           Labels[9].Caption := 'Loads To Do: ';
           Labels[10].Left := 56;
           Labels[10].Top := 344;
           Labels[10].Width := 278;
           Labels[10].Height := 13;
           Labels[10].Caption := 'Best Progress Report For Superbatman'#39's Power Miner V1.0';
           For i:=0 to 5 do
           begin
                Edit[i]:=TEdit.Create(MineForm);
                Edit[i].Parent:= MineForm;
                Edit[i].Width:=121;
                Edit[i].Height:=21;
           end;
           For i:=0 to 2 do
           begin
                Edit[i].Left:=72;
                Edit[i].Top:=104+((i+1)*32);
                Edit[i].TabOrder:=8+i;
           end;
           For i:=3 to 5 do
           begin
                Edit[i].Left:=368;
                Edit[i].TabOrder:=14+(i-3);
                Edit[i].Top:=96+(56*(i-2));
           end;
           Edit[1].PasswordChar:='*';
           Edit[4].PasswordChar:='*';
     //      LoadPlayers;
           For i:=0 to 1 do
           begin
                ComboBox[i]:=TComboBox.Create(MineForm);
                ComboBox[i].Parent:= MineForm;
                ComboBox[i].Width:=121;
                ComboBox[i].Height:=21;
                ComboBox[i].ItemHeight:=13;
                ComboBox[i].Left:=72;
                ComboBox[i].Top:=232+(32*i);
                ComboBox[i].TabOrder:=11+i;
           end;
           ComboBox[0].Text:='True';
           ComboBox[0].Items.Add('True');
           ComboBox[0].Items.Add('False');
           Case Prog of
           'mine':  begin
                   ComboBox[1].text:=('Copper');
                   ComboBox[1].Items.Add('Copper');
                   ComboBox[1].Items.Add('Tin');
                   ComboBox[1].Items.Add('Iron');
                   ComboBox[1].Items.Add('Coal');
                   ComboBox[1].Items.Add('Mithril');
                   ComboBox[1].Items.Add('Adamantite');
                   ComboBox[1].Items.Add('Runite');
              end;
           'fish':  begin
                   ComboBox[1].text:=('shrimp');
                   ComboBox[1].Items.Add('Shrimp');
              end;
           end;
           ListBox1 := TListBox.Create(MineForm);
           ListBox1.Parent := MineForm;
           ListBox1.Left := 224;
           ListBox1.Top := 136;
           ListBox1.Width := 113;
           ListBox1.Height := 153;
           ListBox1.ItemHeight := 13;
           ListBox1.TabOrder := 13;
           For i:=0 to 7 do
           begin
                Button[i]:= TButton.Create(MineForm);
                Button[i].Parent:= MineForm;
                Button[i].TabOrder:=17+i;
                Button[i].Width:=81;
                Button[i].Height:=25;
           end;
           For i:=0 to 3 do
           begin
                Button[i].Top:=296;
                Button[i].Left:=40+(i*104);
           end;
           For i:=4 to 7 do
           begin
                Button[i].Top:=488;
                Button[i].Left:=40+((i-4)*104);
           end;
           CheckButtonEnable;
           Button[0].Caption := '<---------';
           Button[0].OnClick:=@PrevPlayer;
           Button[1].Caption := 'Add Player';
           Button[1].OnClick:=@AddClick;
           Button[2].Caption := 'Delete Player';
           Button[2].OnClick:=@DeletePlayer;
           Memo1 := TMemo.Create(MineForm);
           Memo1.Parent := MineForm;
           Memo1.Left := 32;
           Memo1.Top := 360;
           Memo1.Width := 425;
           Memo1.Height := 121;
           Memo1.Lines.Add('######################################');
           Memo1.Lines.Add('#SuperBatmans''s Miner Thing');
           Memo1.Lines.Add('#Xp gained: 60480');
           Memo1.Lines.Add('#Time Running: 3 Hours, 16 Minutes and 0 Seconds');
           Memo1.Lines.Add('#');
           Memo1.Lines.Add('#Terminated For: Demon Random Event');
           Memo1.TabOrder := 20;
           Button[3].Caption := '--------->';
           Button[3].OnClick:=@NextPlayers;
           Button[4].Caption := 'Exit';
           Button[4].OnClick:=@ExitForm;
           Button[5].Caption := 'Save and Exit';
           Button[5].OnClick:=@SaveAndExitClick;
           Button[6].Caption := 'Save and Start';
           Button[5].OnClick:=@SaveAndStartClick;
           Button[7].Caption := 'Back To Menu';
    end;

    Procedure Initform1;
    var
    i: integer;
    begin
         MainForm1 := CreateForm;
         MainForm1.Left := 250;
         MainForm1.Top := 114;
         MainForm1.Width := 281;
         MainForm1.Height := 436;
         MainForm1.Caption := 'SuperBatman'#39's Script Pack';
         MainForm1.Color := clWhite;
         MainForm1.Font.Color := clWindowText;
         MainForm1.Font.Height := -11;
         MainForm1.Font.Name := 'MS Sans Serif';
         MainForm1.Font.Style := [];
         MainForm1.Visible := False;
         MainForm1.PixelsPerInch := 96;
         Label1 := TLabel.Create(MainForm1);
         Label1.Parent := MainForm1;
         Label1.Left := 24;
         Label1.Top := 32;
         Label1.Width := 217;
         Label1.Height := 23;
         Label1.Caption := 'SuperBatman'#39's Script Pack!';
         Label1.Font.Color := clRed;
         Label1.Font.Height := -16;
         Label1.Font.Name := 'Comic Sans MS';
         Label1.Font.Style := [fsBold];
         Label1.ParentFont := False;
         For i:=0 to 4 do
         begin
              MainButton[i]:= TButton.Create(MainForm1);
              MainButton[i].Parent:=MainForm1;
              MainButton[i].Left:=24;
              MainButton[i].Width:=217;
              MainButton[i].Height:=41;
              MainButton[i].Top:=72+(64*i);
              MainButton[i].TabOrder:=8+i;
         end;
         MainButton[0].OnClick:=@OpenMineForm;
         MainButton[0].Caption := 'Super Miner';
         MainButton[1].Onclick:=@OpenFishForm;
         MainButton[1].Caption := 'Super Cooker';
         MainButton[2].Caption := 'Super Fisher';
         MainButton[3].Caption := 'Super WoodCutter';
         MainButton[4].Caption := 'Next Page';
    end;

    begin
         FirstSetup;
         OpenForm(1,'MainForm1');
         OpenForm(0,'FillForm');
    end.

    Now i have to get working on the formz, cause the math is wrong on it.

Thread Information

Users Browsing this Thread

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

Posting Permissions

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