| Autor |
Beitrag |
mhxcm
      
Beiträge: 54
|
Verfasst: 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:´
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 public 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; 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:
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 FormKeyPress(Sender: TObject; var Key: Char);
private public 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.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
      

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)
|
Verfasst: Mi 20.02.08 14:22
statt der InputBox einfach eine Lese-Schleife:
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 
      
Beiträge: 54
|
Verfasst: 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 
_________________ 1100101 heißt ich Liebe dich ich möchte bei dir sein! (search Song:"Das Modul - 1100101")
|
|
Xion
      

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)
|
Verfasst: 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 
      
Beiträge: 54
|
Verfasst: Mi 20.02.08 14:49
H E L L yeah.....  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
      

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)
|
Verfasst: Mi 20.02.08 14:59
für so viel Lob immerwieder gerne 
_________________ 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)
|
|
|