Autor Beitrag
mhxcm
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 54



BeitragVerfasst: Mi 20.02.08 11:12 
Moin,

ich habe eine Benutzersteuerung und möchte nun, wenn ich den Button Laden drücke, dass mir in der Listbox nicht die Benutzer1, Benutzer2... usw. angezeigt wird, sonder das dann der Spielname erscheint. Daraufhin soll dann alles in die Labels übernommen werden und die sonstigen Einstellungen, sofern vorhanden übergeben werden. Hier der Quelltext der HauptmenueUnit:´
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
unit UnitHauptmenue;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, IniFiles, Menus;

type
  THauptmenue = class(TForm)
    btnbenutzer: TButton;
    btnstat: TButton;
    btnspeichern: TButton;
    btnanleitung: TButton;
    btnspielen: TButton;
    btnladen: TButton;
    btnhauptmenueende: TButton;
    lblname: TLabel;
    lblvorname: TLabel;
    lblspielname: TLabel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    lblstatrichtig: TLabel;
    lblstatfalsch: TLabel;
    ListBox1: TListBox;
    btnbenutzerloeschen: TButton;
    procedure btnbenutzerClick(Sender: TObject);
    procedure btnhauptmenueendeClick(Sender: TObject);
    procedure btnspielenClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btnstatClick(Sender: TObject);
    procedure btnladenClick(Sender: TObject);
    procedure btnbenutzerloeschenClick(Sender: TObject);


  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Hauptmenue: THauptmenue;
  var_aktuelleslevel : integer;

implementation

uses UnitBenutzer,UnitLevel,UnitAufgabenblock;



{$R *.DFM}

procedure THauptmenue.btnbenutzerClick(Sender: TObject);
begin


     if application.messagebox('Wollen Sie einen neuen Benutzer anlegen?','ACHTUNG!!!',IDOK) = IDOK then
     begin
          hauptmenue.Visible := false;
          benutzer.visible := true;
          benutzer.edtname.text:='';
          benutzer.edtvorname.text:='';
          benutzer.edtspielname.text:='';
          benutzer.edtname.setfocus;

     end;
end;

procedure THauptmenue.btnhauptmenueendeClick(Sender: TObject);
begin
     close;
end;

procedure THauptmenue.btnspielenClick(Sender: TObject);
begin
     Hauptmenue.Visible := false;
     levelauswahl.visible := true;
end;

procedure THauptmenue.FormCreate(Sender: TObject);
begin
      btnanleitung.Enabled :=false;
      //btnbenutzer.Enabled :=false;
      //btnstat.Enabled := false;
      //btnladen.Enabled := false;
      //btnspeichern.Enabled :=false;
end;

procedure THauptmenue.btnstatClick(Sender: TObject);
begin
     lblstatrichtig.Caption := '0';
     lblstatrichtig.caption := 'Richtig gelöst: ' + inttostr(var_statrichtig);
     lblstatfalsch.Caption := '0';
     lblstatfalsch.Caption := 'Falsch gelöst: ' + inttostr(var_statfalsch);
     lblstatrichtig.visible := true;
     lblstatfalsch.visible :=true;
end;






procedure THauptmenue.btnladenClick(Sender: TObject);
var hilfe : string;
    j : integer;
begin
    hilfe:= InputBox('Eingabe','Bitte geben Sie Ihren Spielnamen ein: ','');

    for j:= 1 to 5 do
        begin
        ini := Tinifile.Create(ExtractFilePath(ParamStr(0))+'stress.ini');
             if hilfe = ini.ReadString('Benutzer'+inttostr(j),'Spielname','') then
                begin
                     lblname.caption := ini.ReadString('Benutzer'+inttostr(j),'Name','');
                     lblvorname.caption := ini.ReadString('Benutzer'+inttostr(j),'Vorname','');
                     lblspielname.caption := ini.ReadString('Benutzer'+inttostr(j),'Spielname','');
                     if ini.ReadString ('Benutzer'+inttostr(j),'Level1_3','') = 'True' then
                        Levelauswahl.btnlevel1_3.Enabled := true
                     else
                        Levelauswahl.btnlevel1_3.Enabled := false;
                     
                end;
                ini.Free;
                
        end;
end;

procedure THauptmenue.btnbenutzerloeschenClick(Sender: TObject);
var spielname : string;
    j : integer;
begin
     if MessageBox(0,'Möchten Sie wirklich einen Benutzer löschen?','Vorsicht!!!',ID_OK) = ID_OK then
        begin
             spielname:= InputBox('Spielname','Bitte geben Sie Ihren Spielnamen ein: ','');
             ini := TiniFile.Create(ExtractFilePath(ParamStr(0))+'stress.ini');
             try
                for j:= 1 to 5 do
                begin
                   if spielname = ini.ReadString('Benutzer'+inttostr(j),'Spielname','')then
                   ini.EraseSection('Benutzer'+inttostr(j));
                end;
             finally
              ini.free;
             end;
             end;
         end;





end.


und hier der der BenutzerUnit:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
unit UnitBenutzer;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls,IniFiles;

type
  Tbenutzer = class(TForm)
    edtname: TEdit;
    edtvorname: TEdit;
    edtspielname: TEdit;
    btnokbenutzer: TButton;
    btnabrbenutzer: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    procedure btnabrbenutzerClick(Sender: TObject);
    procedure btnokbenutzerClick(Sender: TObject);
    //procedure FormCreate(Sender: TObject);

    procedure FormKeyPress(Sender: TObject; var Key: Char);


  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  benutzer: Tbenutzer;      
  ini : TiniFile;
  hilfe : integer;

implementation

uses unitHauptmenue;

{$R *.DFM}

procedure Tbenutzer.btnabrbenutzerClick(Sender: TObject);
begin
     if application.messagebox('Wollen Sie wirklich Abbrechen?','ACHTUNG!!!',IDOK) = IDOK then
        begin
             benutzer.visible := false;
             hauptmenue.visible := true;
        end;

end;

procedure Tbenutzer.btnokbenutzerClick(Sender: TObject);
var i : integer;
begin

             for i:= 1  to 5 do
             begin
               ini := TiniFile.Create(ExtractFilePath(ParamStr(0))+'stress.ini');
               if ini.SectionExists('Benutzer'+inttostr(i)) then
                 ini.free
               else
                 break;
               end;

               if i > 5 then
                 MessageBox(0,'Die höchstzulässige Anzahl an Benutzern wurde erreicht! Bitte löschen Sie einen Benutzer zuerst, um ein neues Profil anzulegen!!! MFG','fehler',ID_OK)
               else
                 try
                   ini.WriteString('Benutzer'+inttostr(i),'Name',edtname.text);
                   ini.WriteString('Benutzer'+inttostr(i),'Vorname',edtvorname.text);
                   ini.WriteString('Benutzer'+inttostr(i),'Spielname',edtspielname.text);
                 finally
                   ini.free;
                 end ;

                 benutzer.visible := false;
                 hauptmenue.visible := true;
end;


{procedure Tbenutzer.FormCreate (Sender : TObject);
begin
     ini2 := TiniFile.Create('C:\\Programme\zähler.ini');
          try
          test:=ini2.ReadInteger('Sektion','Zähler',0);
          finally
          ini2.free
          end;
end;}







procedure Tbenutzer.FormKeyPress(Sender: TObject; var Key: Char);
begin
     if (key=#13) then
     btnokbenutzer.click;
end;

end.


ist das irgendwie möglich, weil im Moment muss ich den Spielnamen ja noch in ner Inputbox eingeben....

mfg

_________________
1100101 heißt ich Liebe dich ich möchte bei dir sein! (search Song:"Das Modul - 1100101") ;)
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Mi 20.02.08 14:22 
statt der InputBox einfach eine Lese-Schleife:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
j:=0;
while SectionExists('Benutzer'+inttostr(j))do
 begin
   ListBox.Add(ini.ReadString(...Name lesen...));
   j:=j+1;
 end;


und bitte das ini.Create aus der for-Schleife nehmen, einfach zu Beginn der Procedure erstellen und am Ende Free-en

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
mhxcm Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 54



BeitragVerfasst: Mi 20.02.08 14:37 
ListBox1.Add geht nicht... das gibt es nicht.... man, ich bekomme heute auch gar nichts auf die Reihe... heute ist echt mal en beschissener Tag zum proggen..... so auf em Schlauch stehen und nichts hinbekommen *verzweifel :roll:

_________________
1100101 heißt ich Liebe dich ich möchte bei dir sein! (search Song:"Das Modul - 1100101") ;)
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Mi 20.02.08 14:41 
ListBox1.Items.Add ;)

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
mhxcm Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 54



BeitragVerfasst: Mi 20.02.08 14:49 
H E L L yeah..... :twisted: that´s it!!!!!


Thank you so much....


Man oh Man was bin ich heute daneben... Vielen Vielen Dank dem Meister ^^ ;)

_________________
1100101 heißt ich Liebe dich ich möchte bei dir sein! (search Song:"Das Modul - 1100101") ;)
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Mi 20.02.08 14:59 
für so viel Lob immerwieder gerne :mrgreen:

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)