Einzelnen Beitrag anzeigen

Holger

Registriert seit: 4. Aug 2003
Ort: Meerbusch
8 Beiträge
 
Delphi 7 Enterprise
 
#1

Ein Chat und beliebig viele Formulare

  Alt 4. Aug 2003, 15:17
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
  Mit Zitat antworten Zitat