![]() |
StringList.Count
Delphi-Quellcode:
Ich möchte mit dieser Prozedur Nicknames in die Stringlist speichern und diese im Memo wieder ausgeben.
procedure TfrmMainForm.ListBoxShow;
var EdVariable: string; LbCount,i : integer; Liste : TStringList; begin Liste := TStringList.Create; EdVariable := frmMainForm.EdNickname.Text; LbCount := Liste.Count; if LbCount <= 0 then begin i := 0; end; if EdVariable <> '' then begin i := Liste.Count; i := i+1; Liste.Add(frmMainForm.EdNickname.Text + ' ' + '[' + InttoStr(i)+ ']'); Memo1.Text := Liste.Text; Soweit funktioniert alles nur dass sich der Count meiner Stringlist nicht ändert er ist stetig 0. Und deshalb überschreibt er auch alle Nicknames. Weis jemand wie dieses Problem zu lösen ist ? :?::?: |
AW: StringList.Count
Du erzeugst ja immer eine neue Liste.
|
AW: StringList.Count
Du legst die Liste immer wieder neu an, deshalb ist der Count erst einmal 0. Erst durch das Add wird er auf 1 erhöht. Von daher sind die Abfragen auf Count <= 0 überflüssig, da das immer zutrifft.
|
AW: StringList.Count
Delphi-Quellcode:
ich hab das jetzt so gemacht da memo.lines ja vom Typ Tstringlist ist muss ich ja keine neue anlegen habe aber immernoch das gleiche problem
procedure TfrmMainForm.ListBoxShow;
var EdVariable: string; LbCount,i : integer; begin EdVariable := frmMainForm.EdNickname.Text; LbCount := Memo1.Lines.Count; if LbCount <= 0 then begin i := 0; end; if EdVariable <> '' then begin i := Memo1.Lines.Count; i := i+1; Memo1.Text := (frmMainForm.EdNickname.Text + ' ' + '[' + InttoStr(i)+ ']'); |
AW: StringList.Count
Nun änderst Du Memo1.Text und damit auch Count.
|
AW: StringList.Count
statt Memo1.Text solltest du Memo1.Lines.Add verwenden, ansonsten überschreibst du jedesmal den kompletten Text.
|
AW: StringList.Count
Delphi-Quellcode:
Okay habs hinbekommen trotzdem Danke :thumb:
procedure TfrmMainForm.ListBoxShow;
var EdVariable: string; LbCount,i : integer; begin EdVariable := frmMainForm.EdNickname.Text; LbCount := Memo1.Lines.Count; if LbCount <= 0 then begin i := 0; end; if EdVariable <> '' then begin i := Memo1.Lines.Count; i := i+1; Memo1.Lines.Add(frmMainForm.EdNickname.Text + ' ' + '[' + InttoStr(i)+ ']'); |
AW: StringList.Count
Noch ein Hinweis:
Du solltest innerhalb einer procedure, die zu deinem Formular gehört das "frmMainForm." (bei z.B. frmMainForm.EdNickname.Text) weglassen. |
AW: StringList.Count
Müsste
Delphi-Quellcode:
nicht dasselbe tun?
if EdNickname.Text <> '' then
Memo1.Lines.Add(EdNickname.Text + ' ' + '[' + InttoStr(Memo1.Lines.Count + 1) + ']'); |
AW: StringList.Count
Ja es tut das selbe hab es gerade geändert danke,
aber ich habe noch eine Frage zum Index. Wie kann ich den Index auslesen aus dem Memo bei der Listbox war es ja ListBox1.Items[frmMainForm.ListBox1.ItemIndex]; und wie ist es dann beim Memo ? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 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