Max. Anzahl von Einträgen in ListBox
Hallo alle miteinander,
ich hab wiedermal ne Frage. Diesmal habe ich das Problem das ich ein Programm geschrieben habe um den Inhalt eines Ordners auszulesen... Jedenfalls wollt ich die Dateien in einer ListBox eintragen, mein Problem ist nur das nur ein gewisser Teil der Dateien und Ordner angezeigt wird. Da ich wissen wollte ob es wirklich an der ListBox liegt habe ich das ganze mit nem Memo getestet und da ging es. Wollt jetz mal fragen ob es eine maximal Anzahl der Einträge gibt? Mfg Uplink |
Re: Max. Anzahl von Einträgen in ListBox
Die eigentlich Datenhaltung einet ListBox und eines Memos unterscheiden sich nicht. Deshalb dürfte es hier keine Unterschiede geben.
|
Re: Max. Anzahl von Einträgen in ListBox
Das Problem ist, das es sich aber unterscheidet :D
|
Re: Max. Anzahl von Einträgen in ListBox
Die Daten stecken aber beiden in TStrings.
Sicher das du nichts anderes verändert und es mit dem gleichen Ordner getestet hast ? |
Re: Max. Anzahl von Einträgen in ListBox
Um wieviel Einträge geht es bzw. wieviel Einträge funktionieren?
Win-API-Technisch gibt es für diverse Controls Einschränkungen die man aber teilweise per WinAPI-Aufruf aufheben bzw. vergrößern kann. |
Re: Max. Anzahl von Einträgen in ListBox
Ja hab es in dem selben Ordner getestet und sonst geht auch alles.
@ Bernhard Geyer: Es passen genau 25 Einträge hinein... |
Re: Max. Anzahl von Einträgen in ListBox
Zeig mal den Code! In eine StringListe gehen deutlich mehr als 25 Einträge!
|
Re: Max. Anzahl von Einträgen in ListBox
@mkinzler
Delphi tut die SyListView-API von Windows nur kapseln und benutzt dazu TStrings. das bedeutet aber nicht, dass das Window unter Windows auch "unendlich" viele einträge wie TStrings haben kann. @uplink: 25 ist aber reichlich wenig. Mach mal folgendes:
Delphi-Quellcode:
natürlich mit deinem Listview-Handle und wenn du da deine 25 findest, versuch dann mit setitem die Grenze neu zu setzen:
ListView_GetItemCount(HWND listview.handle)
Delphi-Quellcode:
Vergiss nicht:
ListView_SetItemCount(HWND hwnd, int cItems);
Delphi-Quellcode:
uses commCtrl
Edit: Das getitemcount kannst du vergessen, dass ist nicht, wie ich erst dachte das Gegenteil von setitemcount |
Re: Max. Anzahl von Einträgen in ListBox
Delphi-Quellcode:
begin
listbox2.Clear; s:=Socket.ReceiveText; repeat; delete(s,1,pos('\',s)+2); delete(s,1,pos(':',s)+2); i:=1; wort:=''; if pos('<',s) < 7 then begin delete(s,1,19); index:=pos(':',s); while i<=index-16 do begin wort:=wort+s[i]; i:=i+1; end; // Memo1.Lines.Add('<DIR> '+wort); Listbox2.Items.Add('<DIR> '+wort); end else begin delete(s,1,19); index:=pos(':',s); while i<=index-16 do begin wort:=wort+s[i]; i:=i+1; end; // Memo1.Lines.Add(' '+wort); ListBox2.Items.Add(' '+wort); end; until s=''; end; Ich arbeite mit DOS man kann in nem Edit Feld den Pfad eingeben und bekommt dann den Ordnerinhalt in einem String übermittelt. Ich hab das so gemacht das erstmal der ganze Mist mit Volumennummer und so weiter rausgelöscht wird... Danach löscht er weiter zeichen... Das Datum wann die Datei das letzte mal verändert wurde is dann auch weg. Dann wird geguckt ob ein < von <DIR> in den nächsten 7 stellen steht wenn ja isses ein Verzeichnis, wenn nich eine Datei. Der Rest dürfte selbst erklärend sein. Das einzigste Problem ist das die letzte Datei oder der letzte Ordner nich gefunden wird, weil ich mich an den Datumsangaben orientiere.... Aber dann kommt anstatt ner Datei/Ordner einfach fünf mal untereinander das selbe zeichen... So hoffe ich hab euch nich zu verwirrt :D Edit: Kann sein das ich den Code bissel falsch bzw. zu ungenau wiedergegeben habe *ascheaufhaupt* |
Re: Max. Anzahl von Einträgen in ListBox
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:57 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