Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   StringList.Count (https://www.delphipraxis.net/177472-stringlist-count.html)

Frage95 8. Nov 2013 07:42

StringList.Count
 
Delphi-Quellcode:
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;
Ich möchte mit dieser Prozedur Nicknames in die Stringlist speichern und diese im Memo wieder ausgeben.

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 ?
:?::?:

mkinzler 8. Nov 2013 07:45

AW: StringList.Count
 
Du erzeugst ja immer eine neue Liste.

DeddyH 8. Nov 2013 07:46

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.

Frage95 8. Nov 2013 07:49

AW: StringList.Count
 
Delphi-Quellcode:
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)+ ']');
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

DeddyH 8. Nov 2013 07:50

AW: StringList.Count
 
Nun änderst Du Memo1.Text und damit auch Count.

baumina 8. Nov 2013 07:52

AW: StringList.Count
 
statt Memo1.Text solltest du Memo1.Lines.Add verwenden, ansonsten überschreibst du jedesmal den kompletten Text.

Frage95 8. Nov 2013 07:52

AW: StringList.Count
 
Delphi-Quellcode:
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)+ ']');
Okay habs hinbekommen trotzdem Danke :thumb:

baumina 8. Nov 2013 07:56

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.

DeddyH 8. Nov 2013 07:58

AW: StringList.Count
 
Müsste
Delphi-Quellcode:
if EdNickname.Text <> '' then
  Memo1.Lines.Add(EdNickname.Text + ' ' + '[' + InttoStr(Memo1.Lines.Count + 1) + ']');
nicht dasselbe tun?

Frage95 8. Nov 2013 08:10

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 ?

DeddyH 8. Nov 2013 08:11

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.

Frage95 8. Nov 2013 08:13

AW: StringList.Count
 
und wie würde ich das dann hinbekommen ?:lol:

DeddyH 8. Nov 2013 08:18

AW: StringList.Count
 
http://www.delphi-treff.de/tipps/kom...ern-bestimmen/

Frage95 8. Nov 2013 08:47

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 ?

Back2Code 8. Nov 2013 08:52

AW: StringList.Count
 
Zitat:

Zitat von Frage95 (Beitrag 1235052)
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 ?

Nimm doch lieber eine Listbox als ein Memo.

Frage95 8. Nov 2013 08:54

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.

DeddyH 8. Nov 2013 08:58

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);

mkinzler 8. Nov 2013 09:40

AW: StringList.Count
 
Delphi-Quellcode:
Memo.Lines[<Index>];

DeddyH 8. Nov 2013 10:07

AW: StringList.Count
 
Markus, das ist aber doch etwas anderes als der ItemIndex ;)

mkinzler 8. Nov 2013 10:29

AW: StringList.Count
 
Ich war nicht auf der letzen Seite und habe eine alte Frage beantwortet...


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:07 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