AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Combobox

Ein Thema von LDericher · begonnen am 26. Feb 2007 · letzter Beitrag vom 27. Feb 2007
Antwort Antwort
Benutzerbild von LDericher
LDericher

Registriert seit: 29. Jan 2007
Ort: Erkelenz
224 Beiträge
 
Delphi 7 Enterprise
 
#1

Problem mit Combobox

  Alt 26. Feb 2007, 15:01
Ich habe mein eigenes Spiel als Konsolenanwendung geschrieben und es ist erhältlich unter www.dreamofreality.de.ki und habe ein neues Projekt, jetzt als normales Programm.
Leider gibt es auch hier einige Probleme:
Delphi-Quellcode:
begin
K:=1;
while(K<=10)do
     begin
     if fileexists(dir+'\DATA\save\'+inttostr(K)+'.sav')
       then
           begin
           {}
           assignfile(figdat, dir+'\DATA\save\'+inttostr(K)+'.sav');
           reset(figdat);
           read(figdat, FIG);
           closefile(figdat);
           {}
           Laden1.Chara.Items.Add(FIG.PER.NI+', Level '+inttostr(FIG.DAT.LVL));
           end;
     K:=K+1;
     end;
     end;
end;
Dieser Code soll die einzelnen Savegames in eine ComboBox eintragen (Laden1.Chara) und funktioniert leider nur einwandfrei, wenn vorher ein neues Savegame angelegt wurde. Ich verstehe das beim besten Willen nicht.
  Mit Zitat antworten Zitat
uwewo

Registriert seit: 14. Jul 2004
Ort: Karlsruhe
479 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Problem mit Combobox

  Alt 26. Feb 2007, 19:13
Hi Superwinger,

hier mal ein kleiner Codeschnipsel um die ComboBox zu füllen

Delphi-Quellcode:

begin
ComboBox.Items.Clear;//Alle Einträge entfernen
 { alle Dateien mit Endung SAV suchen }
  if FindFirst(dir+'\DATA\save\'+'*.sav', $23, Search)= 0 then
    repeat
      ComboBox.Items.Add(Search.Name);
    until FindNext(Search) <> 0;
end;
Uwe
Uwe
  Mit Zitat antworten Zitat
Benutzerbild von LDericher
LDericher

Registriert seit: 29. Jan 2007
Ort: Erkelenz
224 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Problem mit Combobox

  Alt 26. Feb 2007, 20:22
Ich brauche ja etwas, das erst die Daten aus einem Save in einen (richtig deklarierten) Record liest, dann den Nickname und das Charakterlevel als String in die Combobox einfügt und zur nächsten Datei springt.

Mein Record:
Delphi-Quellcode:
type t_figur=record
             PER:record{Persönliche Daten}
                 NI:string[20];
                 GES:string[1];
                 AVA:integer;
                 end;
             DAT:record{Figurendaten(Zahlen)}
                 AHP, MAXHP:integer;
                 AMP, MAXMP:integer;
                 POI{NTS}:integer;
                 EXP{ERIENCE}:integer;
                 LVL:integer;
                 ATT{ACKE}:integer;
                 QUE{STS ABGESCHLOSSEN}:integer;
                 end;
             INV:record{Inventar}
                 HPOK, HPOG:integer;
                 MPOK, MPOG:integer;
                 HPO, MPO:integer;
                 end;
             WAF:record{Waffen}
                 end;
             SPE:record{Sprüche}
                 end;
             LOC:record{Position}
                 X, Y:integer;
                 end;
             FIG:record
                 AVA:boolean;
                 COL:integer;
                 end;
             end;
Die Deklarationen:
Delphi-Quellcode:
  dir:string;
  FIG:t_figur;
     figdat:file of t_figur;
  anz:integer;//Anzahl vorhandener Saves
  I:integer;//Nächstes freies Save
Hier nochmal meine Prozedur beim Klick auf LADEN:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var K:integer;
begin
Laden1.Chara.Items.Clear;
Image1.Visible:=false;
Image2.Visible:=true;
Button1.Visible:=false;
Button2.Visible:=false;
Button3.Visible:=false;
Button4.Visible:=false;
Label1.Visible:=false;
Laden1.Visible:=true;
K:=1;
while(K<=10)do
     begin
     if fileexists(dir+'\DATA\save\'+inttostr(K)+'.sav')
       then
           begin
           {}
           assignfile(figdat, dir+'\DATA\save\'+inttostr(K)+'.sav');
           reset(figdat);
           read(figdat, FIG);
           closefile(figdat);
           {}
           Laden1.Chara.Items.Add(FIG.PER.NI+', Level '+inttostr(FIG.DAT.LVL));
           end;
     K:=K+1;
     end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von LDericher
LDericher

Registriert seit: 29. Jan 2007
Ort: Erkelenz
224 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Problem mit Combobox

  Alt 26. Feb 2007, 20:40
Nach Testen des Codes oben

Delphi-Quellcode:
begin
ComboBox.Items.Clear;//Alle Einträge entfernen
{ alle Dateien mit Endung SAV suchen } 
  if FindFirst(dir+'\DATA\save\'+'*.sav', $23, Search)= 0 then
    repeat
      ComboBox.Items.Add(Search.Name);
    until FindNext(Search) <> 0;
end;
habe ich NUR nach Anlegen eines neuen Savegames (also wie gehabt) ein befriedigendes Ergebnis erhalten...???:
  Mit Zitat antworten Zitat
uwewo

Registriert seit: 14. Jul 2004
Ort: Karlsruhe
479 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Problem mit Combobox

  Alt 26. Feb 2007, 20:50
Ok, dann nochmal anders

Delphi-Quellcode:
begin
ComboBox.Items.Clear;//Alle Einträge entfernen

K:=0;
{ alle Dateien mit Endung SAV suchen } 
  if FindFirst(dir+'\DATA\save\'+'*.sav', $23, Search)= 0 then
    repeat
      ComboBox.Items.Add(Search.Name);
       {$I-}
           assignfile(figdat, dir+'\DATA\save\'+Search.Name);
           reset(figdat);
           read(figdat, FIG);
           Laden1.Chara.Items.Add(FIG.PER.NI+', Level '+inttostr(FIG.DAT.LVL));
           closefile(figdat);
       {$I+} 
           inc(k);
    until (K >= 10) or (FindNext(Search) <> 0);
end;
ich kann ohne kompletten Code, das auch nicht besser , oder ich verstehe alles falsch

Uwe
Uwe
  Mit Zitat antworten Zitat
Benutzerbild von LDericher
LDericher

Registriert seit: 29. Jan 2007
Ort: Erkelenz
224 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Problem mit Combobox

  Alt 27. Feb 2007, 11:23
Alles klar: Bin selbst auf die Antwort gekommen, war einfacher als ich dachte:

Das Problem war nur, dass ich das getdir an der falschen Stelle hatte...
Hmpf...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz