AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Ein Chat und beliebig viele Formulare
Thema durchsuchen
Ansicht
Themen-Optionen

Ein Chat und beliebig viele Formulare

Ein Thema von Holger · begonnen am 4. Aug 2003 · letzter Beitrag vom 10. Sep 2003
Antwort Antwort
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, 14: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
Helld_River

Registriert seit: 2. Jan 2003
Ort: Hürth
136 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Ein Chat und beliebig viele Formulare

  Alt 14. Aug 2003, 12:54
Hi !
Warum erzeugst Du dir das komplette Formular nicht zur Design-Zeit, nimmst es aus der Liste der automatisch erzeugten Formulare (Menü: Projekt-->Optionen-->Reiter: Formulare) raus und erzeugst es einfach, wenn Du es benötigst:
Delphi-Quellcode:
try
  NewForm := TNewForm.Create(self);
  NewForm.Show;
finally
  NewForm.Free;
end;
Das müsste doch dem entsprechen, was Du versuchst so super kompliziert zum machen.

Es könnte noch Probleme geben, wenn Du für jedes Form die gleiche Variable benutzt. Das kann man aber umgehen, indem Du dir ein Array machst:
Delphi-Quellcode:
var
  myForms : array[1..10] of TForm;
Hoffe, das hilft dir weiter.

Gruß, Helld
  Mit Zitat antworten Zitat
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Ein Chat und beliebig viele Formulare

  Alt 14. Aug 2003, 14:08
Hi,

Um es noch mehr ICQ- Like zu machen:

Delphi-Quellcode:
var
  myForms: array of TMyChatForm;
  formCount: integer;

{...}

procedure MachNeuForm;
begin
  inc(formCount);
  SetLength(myForms, formCount);
  myforms[formCount - 1]:= TMyChatForm.Create(self);
  myforms[formCount - 1].Show;
end;
So kannst du beliebig viele Fenster öffnen. So mach ich das bei meinem ChatProgramm auch (an dieser Stelle möchte ich die Präsentation im Freeware - Bereich für irgendwann demnächst ankündigen...), da funktionierts ganz gut.

Bis dann,

S - tefano
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
Benutzerbild von Flogo
Flogo

Registriert seit: 24. Mär 2003
Ort: Freiburg im Breisgau
317 Beiträge
 
Delphi 7 Professional
 
#4

Re: Ein Chat und beliebig viele Formulare

  Alt 10. Sep 2003, 19:46
Geht das auch irgendwie so, dass beim minimieren der Hauptform nicht alle Chatfenster mitminimiert werden?
If one coincidence can occur, then another coincidence can occur. And if one coincidence happens to occur just after another coincidence, then that is just a coincidence.
DNA

www.Anyxist.de
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz