Einzelnen Beitrag anzeigen

Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#1

Client reagiert erst beim 2. mal

  Alt 19. Nov 2006, 17:24
Hallo,

ich weiß wirklich nicht was ich falsch mache aber ich habe einen Chat programmiert auf basis von einem Protokoll.
So nun will ich dort auch eine Funktion zum registrieren implementieren. Das habe ich auch gemacht

So sieht das grundmodel aus:

Start von Client (connectet sofort annonym) -> registrierung wird aufgerufen zum ausfüllen -> Wird versandt....
Danach warte ich im ClientRead auf das Commando REGOK....

Jedoch funktioniert das ganze erst ebim 2. Click.....

Hier ein paar Quellcodeauszüge:

Im ClientRead:
Delphi-Quellcode:
    cmdREGOK:
    begin
     Form3.Show;
     Form1.Hide;
     Form2.hide;

    end;
Im ServerExecurte:
Delphi-Quellcode:
    cmdREG:
    begin
     clientdataset1.Insert;
     clientdataset1.Edit;
     clientdataset1.FieldByName('Vorname').text:=Data.Strings[1];
     clientdataset1.FieldByName('Nachname').text:=Data.Strings[2];
     clientdataset1.FieldByName('E-Mail').text:=Data.Strings[3];
     clientdataset1.FieldByName('Benutzername').text:=Data.Strings[4];
     clientdataset1.FieldByName('Passwort').text:=Data.Strings[5];
     clientdataset1.FieldByName('Geschlecht').text:=Data.Strings[6];
     clientdataset1.FieldByName('Ort').text:=Data.Strings[7];
     clientdataset1.FieldByName('ICQ').text:=Data.Strings[8];
     clientdataset1.FieldByName('MSN').text:=Data.Strings[9];
     clientdataset1.FieldByName('Hobbys').text:=Data.Strings[10];
     clientdataset1.FieldByName('Augenfarbe').text:=Data.Strings[11];
     clientdataset1.FieldByName('Haarfarbe').text:=Data.Strings[12];
     clientdataset1.FieldByName('Groese').text:=Data.Strings[13];
     clientdataset1.FieldByName('Gewicht').text:=Data.Strings[14];
     clientdataset1.FieldByName('Sprachen').text:=Data.Strings[15];
     clientdataset1.FieldByName('Berechtigung').text:='user';
     clientdataset1.FieldByName('RainDollar').text:='1500';
     clientdataset1.FieldByName('Accountstatus').text:='aktiv';
     clientdataset1.Post;
     (Clients.Items.Objects[ClientIndex] as TCustomWinSocket).SendText(Syntax[cmdRegOK].text+#13); // Hier sendet der Server an den Client das OK
    end;
Danke für Eure Hilfe!
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat