![]() |
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 ? |
AW: StringList.Count
In einem Memo gibt es keinen ItemIndex, was soll das auch sein? Du könntest höchstens auslesen, in welcher Zeile der Eingabecursor aktuell steht.
|
AW: StringList.Count
und wie würde ich das dann hinbekommen ?:lol:
|
AW: StringList.Count
|
AW: StringList.Count
okay soweit so gut, doch ich habe folgendes problem
ich habe jz das memo in dem die "Namen" drinstehen. Ich habe jz eine MeoDblClick procedur gemacht für folgendes Wenn ich einen Namen auswähle dann soll er ein anderes Fenster öffnen und den "Namen" auf den ichgeklickt hab in dessen Label reinschreiben nur bei mir funktioniert das ganze nicht so es ist egal wo ich reinklicke das fenster öffnet sich immer so kann ich aber auch den "Namen" nicht in das Label bekommen ? gibt es da eine Lösung ? |
AW: StringList.Count
Zitat:
|
AW: StringList.Count
Eine Listbox hatte ich da vor hat ja alles wunderbar geklappt, doch die "Liste" in der die Namen stehen soll jeder der sich eingelogt hat sehen ich mache das mit einem Socket
und das ging bei der Listbox i.wie nicht und beim Memo weis ich dass es funktioniert da ich das schon bei meinem Server getan habe also habe ich alles auf Memo umgestellt. |
AW: StringList.Count
Das war aber der falsche Weg. TListBox.Items ist vom Typ TStrings, deren Text kann man ja auch per Socket versenden, etwa
Delphi-Quellcode:
Socket.SendText(ListBox1.Items.Text);
|
AW: StringList.Count
Delphi-Quellcode:
Memo.Lines[<Index>];
|
AW: StringList.Count
Markus, das ist aber doch etwas anderes als der ItemIndex ;)
|
AW: StringList.Count
Ich war nicht auf der letzen Seite und habe eine alte Frage beantwortet...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01: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