KillA hat folgendes geschrieben: |
Ich habe vorher eine TListBox genommen und da waren nur Captions zugelassen. |
Habe ich Dich richtig verstanden? Du hast auf Deinem Hauptform einen Listbox in der alle Channels jeweils durch einen Eintrag eingetragen sind? Dann wird es wahrscheinlich so sein das Du bei einem (Doppel-)Klick auf einem Eintrag das entsprechende Fenster öffnest. Ist das soweit richtig?
Dann könntest Du die Listbox oder besser gesagt die StringList die da drin steckt dafür "missbrauchen". Das heißt wenn Du auf einen ListBox-Eintrag klickst und dann das Fenster öffnest könntest Du in dem ListBox-Eintrag einen Verweiss auf dieses Fenster "speichern".
Jeder Eintrag in der Listbox kann nicht nur einen Text beinhalten sondern auch einen tObject. Schau mal in der Hilfe unter tStrings nach und dann unter Eigenschaften. Da siehst Du nicht nur die Eigenschaft Strings sondern auch Objects.
Wenn Du nun ein Eintrag doppelt geklickt wird sieht Dein Event ungefähr so aus:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.ListBox1DblClick(Sender: TObject); Var Form: tForm2; begin Form := tForm2.Create (Self); ListBox1.Items.Objects [ListBox1.ItemIndex] := Form; {...} end; |
Wenn nun eine Nachricht rein kommt suchst Du halt in der Listbox nach dem Channel und dadruch bekommst Du dann auch das entsprechende Form. Wenn natürlich das Object hinter dem Form nil ist hat der User noch kein Fenster für diesen Channel geöffnet und Du kannst Die Nachricht ignorieren.
Gruß
Gruß