AGB  ·  Datenschutz  ·  Impressum  







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

Tlist wird nicht richtig gefüllt

Ein Thema von XXcD · begonnen am 28. Aug 2008 · letzter Beitrag vom 28. Aug 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von XXcD
XXcD

Registriert seit: 19. Sep 2006
581 Beiträge
 
Delphi 2007 Professional
 
#1

Tlist wird nicht richtig gefüllt

  Alt 28. Aug 2008, 14:24
Hallo,
ich schreibe an einem NonVCL Programm und möchte eine TList mit meinen Accountdaten füllen.
Die Daten werden auch richtig in die Liste eingetragen, aber sobald ich die Daten aus der Liste auslesen möchte zeigt der mir von den zwei Accounts zweimal den zweiten an.

Hier mal der Code:
Delphi-Quellcode:
  type
  TAccounts = class(TObject)
    ID : Integer;
    Name : String;
    Passwort : String;
    ban : integer;
  end;

...

  q:='select * from user;';
  FResult := FMysql.query(q, true, ex);
  if ex then
  begin
  ListAccounts:= TList.Create;
  Account:= TAccounts.Create;
  FResult.First;
   for I := 0 to FResult.RowsCount - 1 do
   begin
    Account.ID := strtoint(Fresult.FieldValuebyname('id'));
    Account.Name := Fresult.FieldValuebyname('username');
    Account.Passwort := Fresult.FieldValuebyname('password');
    Account.ban := strtoint(Fresult.FieldValuebyname('ban'));
    ListAccounts.Add(Account);
   FResult.Next;
   end;

...

   for E := 0 to SQL.ListAccounts.Count -1 do
   begin
   Account := SQL.ListAccounts.Items[E];
   WriteLN('Name: '+Account.Name+' | '+'ID: '+inttostr(Account.ID));
   end;
Das Ergebnis in der Konsole ist:
Name: test | ID: 2
Name: test | ID: 2

Eigentlich müsste es aber so aussehen:
Name: XXcD | ID: 1
Name: test | ID: 2

Wo könnte da der Fehler liegen?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Tlist wird nicht richtig gefüllt

  Alt 28. Aug 2008, 14:27
Das Account:= TAccounts.Create; muss natürlich mit in die For-Schleife, sonst legst Du keinen neuen Account an, sondern überschreibst den bestehenden.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Roachford
(Gast)

n/a Beiträge
 
#3

Re: Tlist wird nicht richtig gefüllt

  Alt 28. Aug 2008, 14:27
Zitat von XXcD:
Wo könnte da der Fehler liegen?
Vielleicht daran, dass du nur ein Objekt erzeugst und dieses eine ständig erneut hinzufügst?
  Mit Zitat antworten Zitat
Benutzerbild von XXcD
XXcD

Registriert seit: 19. Sep 2006
581 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Tlist wird nicht richtig gefüllt

  Alt 28. Aug 2008, 14:39
Lol wenn ich Account:= TAccounts.Create; in die for Schleife einfüge funktioniert es.
Ich dachte Account wäre nur temporär da das in die ListAccounts eingefügt wird und beim auslesen
wieder in Account geladen wird.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Tlist wird nicht richtig gefüllt

  Alt 28. Aug 2008, 14:41
Nee nee, die einzelnen Objekte müssen auch alle erzeugt werden. Wieso nimmst Du eigentlich keine TObjectList statt TList?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
I.A

Registriert seit: 14. Jan 2007
83 Beiträge
 
#6

Re: Tlist wird nicht richtig gefüllt

  Alt 28. Aug 2008, 14:46
Hallo XXcD!

Mich wundert, das es jetzt funktioniert: Du sagst, das Dein TList Objekt nicht funktioniert, aber Du hast geschrieben:

Delphi-Quellcode:
type
  TAccount = class(TObject)
   ...
  end;
statt:

Delphi-Quellcode:
type
  TAccount = class(TList)
   ...
  end;
In TList hast Du alles, was Du für Deine Liste brauchst. Warum da ein neues Listenobjekt?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Tlist wird nicht richtig gefüllt

  Alt 28. Aug 2008, 14:48
TAccounts ist die Deklaration eines Objekts. Mit diesen Objekten will er seine Liste befüllen, das ist doch völlig korrekt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von XXcD
XXcD

Registriert seit: 19. Sep 2006
581 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Tlist wird nicht richtig gefüllt

  Alt 28. Aug 2008, 14:58
Wenn ich jetzt direkt ne TList nehme ist das doch bestimmt ein wenig Ressourcen schonender.
Aber wie kann ich das umsetzen?

So siehts bei mir bis jetzt aus:
Delphi-Quellcode:
    type
  TAccounts = class(TList)
    ID : Integer;
    Name : String;
    Passwort : String;
    ban : integer;
  end;
...

  q:='select * from user;';
  FResult := FMysql.query(q, true, ex);
  if ex then
  begin
    Account:= TAccounts.Create;
  FResult.First;
   for I := 0 to FResult.RowsCount - 1 do
   begin
   test.
    Account.ID := strtoint(Fresult.FieldValuebyname('id'));
    Account.Name := Fresult.FieldValuebyname('username');
    Account.Passwort := Fresult.FieldValuebyname('password');
    Account.ban := strtoint(Fresult.FieldValuebyname('ban'));
    // Wie gehts denn hier weiter???<---------------------------------
   FResult.Next;
   end;
  Mit Zitat antworten Zitat
Benutzerbild von spaxxn
spaxxn

Registriert seit: 19. Nov 2004
253 Beiträge
 
Delphi XE2 Enterprise
 
#9

Re: Tlist wird nicht richtig gefüllt

  Alt 28. Aug 2008, 14:59
Ehm, du hast nun kein Objekt, mit dem du die Liste füllen könntest!

Hast du dich schon mal mit Listenverwaltung beschäftigt?

Würde sagen, dass du dir erstmal Grundlagenwissen aneignen solltest...
"Hey Süße,
hol mir mal was zu trinken! Du wirst schon wieder hässlich!"

Zitat eines Betrunkenen
  Mit Zitat antworten Zitat
Benutzerbild von XXcD
XXcD

Registriert seit: 19. Sep 2006
581 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Tlist wird nicht richtig gefüllt

  Alt 28. Aug 2008, 16:14
Ja hab mich schon mit Listenverwaltung beschäftigt, aber bisher noch nie in NonVCL.
Ich möchte auch eigentlich nur die Tabelle von meiner MySQL Datenbank direkt ins Programm laden und wenn sich einer einloggt, sollen die Daten aus der Liste genommen werden.

Wenn es da noch bessere Möglichkeiten gibt, als die die ich im Moment habe gebt mir bitte etwas code womit ich nen wenig lernen kann.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13:12 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