ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
689
689
EMPFEHLEN
-
Hi!
Ich möchte einen Instant Messenger programmieren, und nun habe ich ein Problem um die Chatfenster, die ich mehrmals aufgerufen habe einzeln anzusteuern:
Code :1 2 3
frmMsg:=TfrmMsg.Create(frmMsg); frmMsg.Caption:=lbuseronline.items[lbuseronline.itemindex]; frmMsg.show;
Die frmMsg wird von einem frmMain aufgerufen, wo sich die Socket-Komponenten befinden.
Ich möchte einzelne Felder der frmMsg ansteuern (ein redMain -> RichEdit).
Die Felder, die sich bilden heissen "frmMsg_1", "frmMsg_2" und so weiter.
Gibt es eine Möglichkeit diese dynamisch anzusteuern, um z.B. etwas ins RichEdit zu schreiben.
Code :1
'frmMsg_'+inttostr(1).redMain.lines.Append('TEST');
Funktionniert nicht
Danke im Voraus für Hilfe.
Oder hat jemand eine andere Idee, wie man das realisieren könnte
mfG;
~ The Alcatraz ~
-
Hi
Du kannst direkt auf die TComponent's eines Components zugreifen.
Schau mal in der Hilfe unter TComponent.FindComponent
TComponent.Components
Sowie unter TForm.Parent (übergeordnetes Fenster)
TApplication.MainForm (oberstes Fenster)
Damit solltest Du weiter kommen
Gruß vop
-
das funktionniert alles nicht.
ich glaube, du hast meine frage nicht richtig verstanden.
Oder ich deine antwort nicht.
Ich will auf eine Komponente auf einem Formular aufrufen, welches mehrere male kréiert wurde. Und zwar auf EINEM bestimmtenen dieser offenen formulare.
mfG;
~ The Alcatraz ~
-
Hi also ich habe dich so verstanden:
Du hast (z.b.) drei Fenster erzeugt, die alle vom Typ TfrmMsg sind.
Nun möchtest du bspw. vom zweiten Fenster den Wert einer seiner Komponenten ändern.
RedMain.Lines.Append('irgendwas');
Soweit klar.
Was Dir nur noch fehlt ist der Zugriff auf das richtige Fenster. Diese sind allesamt Kindelemente des Hauptfensters Application.MainForm und damit (glaube ich) in der Komponentenliste dieses Fenster zu finden.
Was Du brauchst ist eine Variable vom Typ TFrmMsg, die durch gezielte Auswahl auf das gewünschte Fenster zeigt.
Dann kannst du es einfach ansprechen.
Such doch mal nach dynamischer Fenstererzeugung oder so
vop
-
Ich glaube ich habe da eine gute Idee!
Verwende doch ein Array in deinem Hauptfenster vom Typ TFrmMsg;
MeineFenster : array [0..50] of TFrmMsg;
Später erzeugst Du dynamisch mehrere Forms:
MeineFenster[0]:=TFrmMsg.Create(.....
MeineFenster[27]:=TFrmMsg.Create(.....
anstelle von frmMsg:=....
Dann kannst Du jederzeit auf das Fenster mit
MeineFenster[ Index ].redMain.Lines.Append('blabla');
zugreifen.
Wenn Du dann noch einen Zähler hast, der dir sagt, wievielw Fenster du gerade hast, dann kannst Du prima in einer Schleife alle Fenster durchgehen.
Und das mit den Components vergiß wieder.
vop
-
Hey das klingt super

Ich probier das mal.
Vielen Dank erstmal.
Ich halte dich am laufenden.
mfG;
~ The Alcatraz ~
-
Hm, das funktionniert doch nicht

Er sagt was von "Undefinierter Bezeichner"...
Was muss ich tun, dass das funktionniert?
-
Ich habs weder ausprobiert noch kann ich sagen, ob es überhaupt funktionieren könnte. Normalerweise kann man aber auf Komponenten über FindComponent zugreifen. Wie das genau geht, steht in der Delphi-Hilfe.
Zitat von Alcatraz
Genrell hätte ich aber auch gedacht, dass das dynamische Erzeugen funktioniert. Welches ist denn der undefinierte Bezeichner?
lg HellieGeändert von Hellie (31.10.05 um 17:42 Uhr)
-
Hey!
Undefinierter Bezeichner ist angeblich "TfrmMsg".Code :1
var MessageWindow: array[1..50] of TfrmMsg;
Wenn ich es LOKAL (in einer Prozedur) deklariere, funktionniert es. (Also: keine Fehlermeldung).
Code :1 2 3 4 5 6
procedure TfrmMain.Test1Click(Sender: TObject); var MessageWindow: array[1..50] of TfrmMsg; begin MessageWindow[1]:=TfrmMsg.Create(frmMsg); MessageWindow[1].show; end;
Jetzt so funktionniert es.
Ich muss das "MessageWindow" aber global dekladieren, sonst funktionniert es nicht
Was könnte das sein
mfG;
~ The Alcatraz ~Geändert von Alcatraz (31.10.05 um 18:48 Uhr)
Ähnliche Themen
-
[C#] Dynamische Buttons einzeln handeln
Von Blackhawk50000 im Forum .NET Windows FormsAntworten: 3Letzter Beitrag: 13.10.08, 19:19 -
Problem: In einer While Schleife mehrere Formulare erzeugen und einzeln auswerten...
Von TS7 im Forum PHPAntworten: 4Letzter Beitrag: 23.03.08, 02:41 -
Dynamische <Divs> => Dynamische Ereignisse!?
Von Geflügel im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 05.09.07, 21:17 -
Frames in PopUp einzeln ansteuern
Von KoMtuR im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 06.01.04, 15:06 -
MC's einzeln ansteuern
Von erzwo im Forum Flash PlattformAntworten: 1Letzter Beitrag: 21.11.01, 14:15





Zitieren
Login





