![]() |
Dynamische Stringlisten
Hallo!
Ich bin gerade dabei einen kleinen Netzwerkchat zu Programmieren. Funktioniert auch soweit ganz prima, ich möchte allerdings auch einen Privatchat einbauen also p2p. Dafür benutze ich Tabs und muss für jeden neuen Tab auch irgendwie eine eigene Stringlist und einen String für den Usernamen erzeugen. Wie sollte ich das am Besten anstellen? Ich habe mich schon informiert und habe herrausgefunden, dass es in etwa so aussehen muss:
Delphi-Quellcode:
und ich dann mit einer Tlist die Zeiger verwalten muss. Nur komme ich damit überhaupt nicht klar.. Ich weiß nicht wie ich mir das mit der TList vorstellen muss und auch immernoch nicht, wie ich die Klasse dann dynamisch erzeuge.. Ich hoffe ich habe mein Problem einigermaßen verständlich geschildert und mir kann jemand helfen :snowball:
type
TMeineKlasse class(TComponent) x : Integer; end; ... var MeineKlasse : TMeineKlasse; begin ... MeineKlasse := TMeineKlasse.Create(nil); ... end; Mfg Julian |
Re: Dynamische Stringlisten
Wie wäre es denn, wenn du dir eine Frame zusammenbaust und diese hält dann die Stringlist etc. Dann haste soweit alles fertig programmiert, die Komponenten auf jedem Tab sind auch schon fertig programmiert. Du musst halt nur für jeden neuen Tab einmalig eine Frame instanziieren und auf den neuen Tab legen.
|
Re: Dynamische Stringlisten
Mhm, da habe ich noch garnicht drüber nachgedacht... Trotzdem würd ichs gerne erst einmal anders probieren, da ich solche probleme schon öfters hatte und mir dann immer mit irgendwelchen workarounds geholfen habe... Trotzdem vielen vielen Dank für deine schnelle Antwort!!
LG Julian |
Re: Dynamische Stringlisten
ansonsten einfach so:
Delphi-Quellcode:
... also ich hoffe, das klar ist, wie's gemeint ist ... irgendwo musste dir halt noch merken, welcher chat zu welcher stringlist gehört ...
var chatlisten: array of TStringlist;
... stelength(chatlisten,length(chatlisten)+1); chatlisten[length(chatlisten)-1]:= TStringlist.create(self); ... for i:=0 to length(chatlisten)-1 do chatlisten[i].free; setlength(chatlisten,0); mfg deep_thought |
Re: Dynamische Stringlisten
Zitat:
Delphi-Quellcode:
Das ist jetzt eine einfache Variante. Du kannst das natürlich alles in eine Klasse verpacken und die passenden Methoden zum Anfügen, Auslesen, Löschen, Suchen usw. der einzelnen Chats mit einbauen.
type
TChatliste = record Username: String; Liste: TStringList; end; TChatlisten: array of TChatliste; var Chatlisten: TChatlisten; ... SetLength(Chatlisten, DieAnzahl); //Anzahl der Chatlisten, wie schon im Beitrag oben Chatlisten[i].Username := 'Ein Name'; //Der Name des Chatpartners Chatlisten[i].Liste := TStringlist.Create; //Erzeugen der Stringliste |
Re: Dynamische Stringlisten
Warum merkst du dir nicht die Tabsheet Instanz in dem Record? Damit ist die Zuordnung leichter.
Aber grundsätzlich finde ich es ein schlechter Ansatz: a) Verwendung eines dynamischen Arrays b) Keine 1:1 Zuordnung der Userdaten zu dem TabSheet Mit einer Frame wäre dies nicht passiert... |
Re: Dynamische Stringlisten
Vielen vielen Dank für eure Antworten!!
Habe es umgesetzt, wie es guidok vorgeschlagen hat und es klappt alles prima!! Vielen Dank nochmal! Weiß jemand zufällig, wie man Tabs hervorheben kann? ALso einfach einen Tab in einer anderen Farbe oder sogar einen Tab blinken lassen? Ist jetzt nicht soo wichtig, aber wenn es jemand weiß wäre eine Antwort schön! Viele liebe Grüße und happy x-mas schonmal :angel: Julian :cat: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:35 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-2025 by Thomas Breitkreuz