AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Aus ListBox löschen...

Ein Thema von hircusmutzus · begonnen am 15. Jun 2003 · letzter Beitrag vom 16. Jun 2003
Antwort Antwort
hircusmutzus
(Gast)

n/a Beiträge
 
#1

Aus ListBox löschen...

  Alt 15. Jun 2003, 21:30
Hi,
ich habe ein kleines Problem: Ich habe einen Chat programmiert. Jetzt will ich noch in einer ListBox die Namen der Chatteilnehmer anzeigen, d.h. wenn sich ein Client connected sendet er seinen Nick und der wird dann der ListBox hinzugefügt. Logischer Weise will ich wenn der Clinent Disconnected, dass sein Name aus der ListBox gelöscht wird. Kann mir jemand sagen wie ich das anstelle?

MfG Matthias Volland
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 15. Jun 2003, 21:31
Moin Matthias,

TListBox.Items.Delete(...)
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
hircusmutzus
(Gast)

n/a Beiträge
 
#3
  Alt 15. Jun 2003, 21:36
Das habe ich auch schon probiert, aber das problem ist das ich da die nummer des Namens in der ListBox finden muss, weil dieser Befehl ja eine Zahl benötigt!

MfG Matthias Volland
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#4
  Alt 15. Jun 2003, 21:43
Hallo,

dann schau Dir noch (Item)Index an.

Grüsse, Daniel
  Mit Zitat antworten Zitat
hircusmutzus
(Gast)

n/a Beiträge
 
#5
  Alt 15. Jun 2003, 21:49
hä, das versteh ich jetzt irgendwie nicht!
ich hab mal in der code library geguckt und da ist ein beitrag von dir drin, wie man eine listbox durchsichen kann und hab versucht das in meinen quelltext einzubauen, aber das hat nicht funktioniert!
ich schreib hier grad mal den code, vielleicht weist du ja was falsch ist.
Also der Client schickt beim disconnecten folgenden code:

Delphi-Quellcode:
procedure TForm1.ClientSocket2Disconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  ClientSocket2.Socket.SendText(Edit1.Text); //Edit1 beinhaltet den Nickname
end;
und der Server macht dann folgendes

Delphi-Quellcode:
procedure TForm1.ServerSocket2ClientDisconnect(Sender: TObject;
  Socket: TCustomWinSocket);
var nick: string;
    i: integer;
begin
  nick:=Socket.ReceiveText;
  for i:=0 to ListBox2.Items.Count -1 do
  begin
    if ListBox2.Items.Strings[i] = nick then
      ListBox2.Items.Delete(i);
  end;
end;
MfG Matthias Volland
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#6
  Alt 15. Jun 2003, 21:49
Moin Daniel,

fast.

TListBox.Items.IndexOf(...)
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
hircusmutzus
(Gast)

n/a Beiträge
 
#7
  Alt 15. Jun 2003, 21:55
Sorry, vielleicht bin ich ja etwas dumm , aber ich raffs immer noch nicht! es wäre sau nett wenn du die ganze zeile mal schreiben könntest wo do meinst dass sie falsch ist!
Noch mal Danke!

MfG Matthias Volland
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#8
  Alt 15. Jun 2003, 23:14
Moin Matthias,

statt

Delphi-Quellcode:
procedure TForm1.ServerSocket2ClientDisconnect(Sender: TObject;
  Socket: TCustomWinSocket);
var nick: string;
    i: integer;
begin
  nick:=Socket.ReceiveText;
  for i:=0 to ListBox2.Items.Count -1 do
  begin
    if ListBox2.Items.Strings[i] = nick then
      ListBox2.Items.Delete(i);
  end;
end;
geht's auch so:

Delphi-Quellcode:
procedure TForm1.ServerSocket2ClientDisconnect(Sender: TObject;
  Socket: TCustomWinSocket);
var
  i: integer;

begin
  i := ListBox2.Items.IndexOf(Socket.ReceiveText);
  if i <> -1 then ListBox2.Items.Delete(i);
end;
Abgesehen davon, dass Deine Version auch funktionieren müsste.

Übrigens kannst Du statt
ListBox2.Items.Strings[i] auch
ListBox2.Items[i] schreiben.

[EDIT]
Falsch ist Deiner Abfrage eigentlich nichts, nur dass die Schreibweise exakt übereinstimmen muss, bei IndexOf wird Gross-/Kleinschreibung nicht unterschieden.
[/EDIT]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
hircusmutzus
(Gast)

n/a Beiträge
 
#9
  Alt 16. Jun 2003, 13:30
Hi, danke für die schnelle Hilfe!

MfG Matthias Volland
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:21 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