AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Problem mit case-of Anweisung in ClientSocket1Read
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit case-of Anweisung in ClientSocket1Read

Ein Thema von fran · begonnen am 4. Nov 2005 · letzter Beitrag vom 5. Nov 2005
 
fran

Registriert seit: 4. Nov 2005
38 Beiträge
 
Delphi 6 Personal
 
#1

Problem mit case-of Anweisung in ClientSocket1Read

  Alt 4. Nov 2005, 19:10
Hallo Leute,

ich programmiere da gerade für ein Projekt an meiner Uni eine Client/Server Anwendung und da gibt es die eine Stelle im noch nicht fertigen Programm, die mich rätzeln läßt. Und zwar habe ich eine GUI mit mehreren Buttons. Je nachdem welcher Button gedrückt wird, erhält die globale und als public deklarierte Variable erg einen anderen Wert. Außerdem wird bei dem Klicken auf einen Button eine Nachricht an den Server geschickt, der dann je nach Nachricht ein anderes string-array zurückschickt. Bis hierher klappt auch alles wie es soll.

Jetzt komme ich zu dem Problem und zwar müssen unterschiedliche arrays beim Empfang dann auch unterschiedlich verarbeitet werden. Dazu gibt es die bereits erwähnte Variable erg, welche dann mit einem case of die unterschiedlichen "Fälle" bearbeitet. Das eigentliche Problem ist das, die untenstehende showmessage Anweisung in Fall 3 des case of aus mir nicht erklärlichen Gründen immer zweimal ausgeführt wird. Einmal mit und einmal ohne den Inhalt vom Feld edit17.

Delphi-Quellcode:
procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);

var daten: array[0..10,0..10] of string[20];

//In diesem Unterprogramm werden alle vom Server kommenden Meldungen geprüft und entsprechend verarbeitet
begin
        socket.ReceiveBuf(daten,SizeOf(daten));
        //mit Ereignisstatus prüfen, welcher Button gedrückt wurde
        case erg of
        1: showmessage('noch nicht belegt 1');
        2: showmessage('noch nicht belegt 2');
        3: begin
                edit17.Text:=daten[1,1];
                showmessage('Kontostand: ' +edit17.text);
                erg:=0;
           end;
        4: showmessage('noch nicht belegt 4');
        else showmessage('Ich weiß nicht was ich mit den Daten tun soll.')
        end;
        erg:=0;
end;
Sicher ist das für euch Experten hier kein Problem, aber ich komme einfach nicht dahinter was der Grund ist. Das komische ist, wenn ich es schrittweise ablaufen lasse, kommt die Meldung wie gewünscht nur einmal.
Vielleicht kann mir ja einer von euch weiterhelfen.

Vielen Dank für eure Hilfe sagt schon mal Fran
  Mit Zitat antworten Zitat
 


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 19:24 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