Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Max. Anzahl von Einträgen in ListBox (https://www.delphipraxis.net/83868-max-anzahl-von-eintraegen-listbox.html)

uplink 7. Jan 2007 18:08


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

mkinzler 7. Jan 2007 18:09

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.

uplink 7. Jan 2007 18:10

Re: Max. Anzahl von Einträgen in ListBox
 
Das Problem ist, das es sich aber unterscheidet :D

MrKnogge 7. Jan 2007 18:26

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 ?

Bernhard Geyer 7. Jan 2007 18:36

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.

uplink 7. Jan 2007 18:38

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...

mkinzler 7. Jan 2007 18:43

Re: Max. Anzahl von Einträgen in ListBox
 
Zeig mal den Code! In eine StringListe gehen deutlich mehr als 25 Einträge!

sirius 7. Jan 2007 18:51

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:
ListView_GetItemCount(HWND listview.handle)
natürlich mit deinem Listview-Handle und wenn du da deine 25 findest, versuch dann mit setitem die Grenze neu zu setzen:
Delphi-Quellcode:
ListView_SetItemCount(HWND hwnd, int cItems);
Vergiss nicht:
Delphi-Quellcode:
uses commCtrl

Edit: Das getitemcount kannst du vergessen, dass ist nicht, wie ich erst dachte das Gegenteil von setitemcount

uplink 7. Jan 2007 18:52

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*

C.Schoch 7. Jan 2007 19:11

Re: Max. Anzahl von Einträgen in ListBox
 
Um Dateien und Order zu listen sollte man besser Hier im Forum suchenFindFirst / Hier im Forum suchenFindNext verwenden.
Oder in der CodeLib nach FindFirstFindFirst suchen.


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