Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem mit Liste (https://www.delphipraxis.net/103064-problem-mit-liste.html)

Poring 9. Nov 2007 14:34

Re: Problem mit Liste
 
Oki danke, nur wie mache ich eine TStringList? Find ich einfach nicht. Das einzigste was ich habe ist eine TStringGrid :?

EDIT:
In TList geht add auch irgendwie nicht :wall:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  List: TListBox;
begin
  List:=TListBox.Create;
  try
    List.Add(Edit1.Text);
  finally
    List.Free;
  end;
end;
[Fehler] Unit1.pas(32): E2035 Nicht genügend wirkliche Parameter
[Fehler] Unit1.pas(34): E2003 Undefinierter Bezeichner: 'Add'

Nuclear-Ping 9. Nov 2007 14:39

Re: Problem mit Liste
 
TStringList ist nicht visuell. Entweder gleich 'ne TListBox oder (was besser ist) Code und Ausgabe trennen.
Delphi-Quellcode:
uses Classes;

var
  mySL: TStringList;

begin
  mySL := TStringList.Create;
  mySL.AddObject ('Test', TObject (5));
  mySL.AddObject ('Test1', TObject (10));
  mySL.AddObject ('Test2', TObject (7));

  ListBox1.Assign (mySL);

  FreeAndNil(mySL);


  showmessage (inttostr (Integer (ListBox1.Objects[0]))); // 5
  showmessage (inttostr (Integer (ListBox1.Objects[1]))); // 10
  showmessage (inttostr (Integer (ListBox1.Objects[2]))); // 7
end;
// ungetestet
Edit:
TList ist keine TListBox. ;)
Die ListBox musste aus dem Komponenten-Reiter "Standard" auf deine Form ziehen.

Poring 9. Nov 2007 14:45

Re: Problem mit Liste
 
[Fehler] Unit1.pas(7): E2004 Bezeichner redefiniert: 'Classes'
:roll:

Ich hab bei Standard nur eine TListBox drin :|
Ehm ja, verlesen. Hab ne TListBox drin aber wie gesagt dort kommt der Fehler :roll:

Nuclear-Ping 9. Nov 2007 14:47

Re: Problem mit Liste
 
Bitte nicht ganz so hilflos. ;)

Entferne halt das "uses Classes" wieder, scheinbar wird die Unit oben schon eingebunden.

Edit:
Ja, TList wäre auch nicht visuell. TListBox - kann man mal so grob sagen - ist die visuelle Implementierung von TList/TStringList.

Poring 9. Nov 2007 14:51

Re: Problem mit Liste
 
Argh sry, steht ja schon drin (Classes).
Nun bekomme ich trozdem ein Fehler ab:
ListBox1.Assign (mySL);

[Fehler] Unit1.pas(31): E2003 Undefinierter Bezeichner: 'ListBox1'
[Fehler] Unit1.pas(31): E2008 Inkompatible Typen
[Fehler] Unit1.pas(36): E2029 ')' erwartet, aber Bezeichner 'Objects' gefunden
[Fehler] Unit1.pas(39): E2029 '.' erwartet, aber ';' gefunden
[Fataler Fehler] Project1.dpr(5): F2063 Verwendete Unit 'Unit1.pas' kann nicht compiliert werden

Ich hab doch ne ListBox1 :(

Nuclear-Ping 9. Nov 2007 14:53

Re: Problem mit Liste
 
Du wirst wahrsch. versuchen, den Code nicht als Methode deiner Form1 auszuführen? Also du hast ihn wahrsch. kopiert und unten vor das end. oder so gesetzt. Das geht net ... ;)

Der Code muss in deiner Klasse sein. Also am besten 'n Button auf die Form machen, Doppelklick und dort den Code dann (inkl. var) rein.

Poring 9. Nov 2007 14:58

Re: Problem mit Liste
 
Hab mir doch gedacht das dort was nicht stimmt xD
Gut nu hab ich es in: procedure TForm1.Button1Click(Sender: TObject); rein
Nu bekomme ich jedoch nen Fehler bei:

showmessage (inttostr (Integer (ListBox1.Objects[0]))); // 5
showmessage (inttostr (Integer (ListBox1.Objects[1]))); // 10
showmessage (inttostr (Integer (ListBox1.Objects[2]))); // 7

[Fehler] Unit1.pas(42): E2003 Undefinierter Bezeichner: 'Objects'

entferne ich diese paar Zeilen, starte und drücke den button:
*Im Projekt Project1.exe ist eine Exception der Klasse EConvertError mit der Meldung 'TStringList kann nicht zu TListBox zugewiesen werden' aufegtreten.*

*seufz*

Och Manno :cry:

edit: mit diesem mysl kenne ich mich gar nich aus :(

Nuclear-Ping 9. Nov 2007 15:36

Re: Problem mit Liste
 
1.) Statt ListBox1.Objects ListBox1.Items.Objects
2.) Statt ListBox1.Assign (mySL) ListBox1.Items.Assign (mySL)

Wenn du dich womit nicht ausgekennst, mit Cursor rein und F1 drücken. ;)

Poring 9. Nov 2007 15:47

Re: Problem mit Liste
 
Wenn ich in der Hilfe mySL eingebe zeigt er mir gar nix an :(

Nun gehts ^^
Nur sind die nicht nach dem Wert sortiert :(
Habs damit auch getestet:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  mySL := TStringList.Create;
  ListBox1.Sorted:=True;
  mySL.AddObject ('Test', TObject (5));
  mySL.AddObject ('Test1', TObject (10));
  mySL.AddObject ('Test2', TObject (7));
  ListBox1.Items.Assign(mySL);
Sortiert nur nichts

Nuclear-Ping 9. Nov 2007 16:06

Re: Problem mit Liste
 
"mySL" ist auch kein Delphi-Element sondern eine Variable vom Typ TStringList. Dazu findest du was in der Hilfe. Ich hätte sie statt "mySL" auch "foobar" nennen können. ;)

Sortiert wird die Liste. Nur halt nach dem Text. Wenn du die Liste nach den Werten sortieren willst, musst du auch wieder per Hand ran. Element nach Element auslesen, vergleichen, ggf. tauschen. Stichworte: Bubblesort, Quicksort, ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:30 Uhr.
Seite 3 von 5     123 45      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz