Hallo zusammen.... ich weiss noch recht wenig was die Programmierung mit Delphi betrifft... und versucher derzeit einen Chat zu programmieren... die Idee ist das ähnlich wie bei ICQ etc. für jeden neuen Chat mit einem Client auch ein neues Fenster geöffnet wird.
Mit diesem Quelltext :
Delphi-Quellcode:
procedure TChat.NewForm(I : Integer; S : String); // I = Nummer des Forms S = Nummer des Clients
Var aForm: TForm;
aRichedit : TRichEdit;
aMemo : TMemo;
aButton : TButton;
aClientSocket : TClientSocket;
begin
aForm := TForm.Create(Self);
with aForm do
begin
Name := 'Form'+IntToStr(I );
Width := 475;
Height := 440;
Caption := 'chat' + S;
Visible := True;
Form[i] := aForm;
end;
aRichEdit := TRichEdit.Create(Self);
with aRichEdit do
begin
Name := 'RichEdit'+IntToStr(I );
Parent := aForm;
Left := 1;
Top := 0;
Height := 241;
Width := 465;
RichEdit[i] := aRichEdit;
end;
aMemo := TMemo.Create(Self);
with aMemo do
begin
Name := 'Memo'+IntToStr(I );
Parent := aForm;
Left := 1;
Top := 264;
Height := 97;
Width := 465;
Memo[i] := aMemo;
end;
aClientSocket := TClientSocket.Create(Self);
with aClientSocket do
begin
Name := 'ClientSocket'+IntToStr(I);
Port := 6713;
Host := '127.0.0.1';
ClientSocket[i] := aClientSocket;
end;
aButton := TButton.Create(Self);
with aButton do
begin
Name := 'BtSend'+IntToStr(I );
Parent := aForm;
Left := 416;
Top := 376;
Height := 30;
Width := 49;
OnClick := SocketSend;
BtSend[i] := aButton;
end;
end;
Erzeuge ich mein Chatfenster sowie eine neue Clientkomponnete...
Das problem das ich habe ist nun das Onclickereignis auf den Button... Da all diese Komponneten ja erst existiern wenn ein chat zumm client aufgebaut wurde habe ich mir überlegt diese über ARRAYS anzusprechen.... das problem ist jetzt bloss das ich ja wissen muss vom welcher Button der OnClick kam damit ich weiss in welches ArrayFeld ich springen muss um dann den richtigen ClientSocket sowie die Memokomponnente auslesen zu können. Gibt es eine möglichkeit nicht nur die Komponnenten sondern auch eine Prozedur dynamisch zu erzeugen? Oder einen viel einfacheren Weg dynamisch neue Forms zu erzeugen ?
Schon mal danke im voraus
Holger