![]() |
Anzahl von listbox Strings anpassen -> aus grid geladen
Grüße aus Hamburg,
muss nochmal mit meiner Listbox nerven :P Habs jetzt zwar mit Hilfe geschafft die einträge aus dem Grid in der Listbox anzuzeigen, allerdings hab ich am ende der listbox immer leere Zeilen/Items (sry bin mir nicht sicher wie exakte name ist). dies ist mein code mit dem ich die listbox fülle (ein paar var einträge kommen in diesem teil des quelltextes nicht vor, hab nur den listbox-quellcode kopiert):
Delphi-Quellcode:
Was ich schon heraus gefunden habe ist das die "Zeilenanzahl" der listbox mit der Sarr definition zusammenhängt.
var
iRow: integer; sPrev, sCurr: string; datei : TextFile; dateiname : String; zeile : String; inhalt : String; perslist : Sarr; pers : Sarr; i, j : integer; begin etc etc.......... listbox1.Clear; for iRow := 1 to length(perslist) do begin sCurr := StringGrid1.Cells[CI_ACCT, iRow]; if sCurr <> sPrev then begin if iRow > 1 then listbox1.items.Add(''); listbox1.items.Add(sCurr); listbox1.items.Add(StringOfChar('-', 10)); sPrev := sCurr; end; listbox1.items.Add(StringGrid1.Cells[CI_NAME, iRow]); end; dateiname := ('rankinglist.htm'); AssignFile(datei, dateiname); reset(datei); inhalt := ''; repeat Readln(datei, zeile); inhalt := inhalt + zeile; until eof(datei); CloseFile(datei); inhalt := getTable(inhalt); perslist := getEntries(inhalt); i := 0; while (perslist[i] <> '') do begin pers := processAccount(perslist[i]); for j := 0 to 11 do begin Stringgrid1.cells[j+1,i+1]:=pers[j]; end; inc(i); end; reloadtable.Enabled := true; reloadhtml.Enabled := true; end; end; end;
Delphi-Quellcode:
ist die zeile (denk ich) die auf "sarr" zurückgreift. Die Definition von "Sarr" hab ich ziemlich weit oben in meinem code stehen, direkt über der implementation:
for iRow := 1 to length(perslist) do
begin
Delphi-Quellcode:
statt der 1000 kann ich hier auch ne andere zahl eintragen, meine listbox wird immer exakt diese "Zeilenanzahl" haben. :cry:
type
Sarr = Array [0..1000] of String; da ich unterschiedlich lange listen in die listbox lade, möchte ich nun das dieses Array variabel ist bzw. sich an die anzahl der im Grid befindlichen Einträge hält. Wenn ihr nen anderen Quellcode braucht sagt bitte bescheid, ich komm da einfach nicht hinter :coder2: Gruße von Rhodan |
Re: Anzahl von listbox Strings anpassen -> aus grid gelad
Hi Rhodan,
die Lösung deines Problems steckt in deinem Parser. Beim Parsen weißt du ja, an welchen Platz im Array persList du zuletzt geschrieben hast. Wenn du die Werte dann wieder ausliest, dann musst du dieses Wissen wieder einbringen:
Delphi-Quellcode:
Grüße vom marabu
// so werden auch die unbenutzten Items verarbeitet
// for iRow := 1 to length(perslist) do // Merke dir beim Parsen den letzten Index in PersCount // und lasse die Schleife dann so laufen: for iRow := 1 to PersCount do |
Re: Anzahl von listbox Strings anpassen -> aus grid gelad
hmmm, wenn ich das so schreibe bekomme ich die meldung das "perscount" ein undef. bezeichner ist
|
Re: Anzahl von listbox Strings anpassen -> aus grid gelad
Mache PersCount zu einer Variablen deiner Form, dann können der Parser und die von dir gezeigte Methode zum Füllen der ListBox auf diese Variable zugreifen.
Grüße vom marabu |
Re: Anzahl von listbox Strings anpassen -> aus grid gelad
danke dir, werds mal ausprobieren :)
grüße von rhodan |
Re: Anzahl von listbox Strings anpassen -> aus grid gelad
ok habs endlich gelöst. habs auf nem anderen weg geschafft. :dancer2:
Delphi-Quellcode:
und dafür hab ich 4 nächte gebraucht :wall:
var
Q: integer; begin for Q := listbox1.Items.Count - 1 downto 0 do begin if listbox1.Items[listbox1.Items.Count-1]='' then listbox1.Items.Delete(listbox1.Items.Count-1); end; end; Grüße aus Hamburg, Rhodan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:26 Uhr. |
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 by Thomas Breitkreuz