Einzelnen Beitrag anzeigen

Test0r79

Registriert seit: 10. Apr 2008
4 Beiträge
 
#1

Invalid variant operation

  Alt 10. Apr 2008, 20:56
Also das ganze sieht folgendermaßen aus:
Ich schicke von eimem Client eine Nachricht los, die wird auf dem Client (zT hier zu sehen) verarbeitet &gespeichert und eine Antwort zurückgesendet. Jedoch tritt bei jedem Senden vom Client "Invalid variant operation" als Fehler auf und er führt nicht das geplante aus.


Delphi-Quellcode:
type TClientNachricht = Record
        Betrag: extended;
        Kundennr: Integer;
        Absender: string[255];
  end;

type TClientAntwort = Record
        Absender: string[255];
        Existent: boolean;
        Abgedeckt: boolean;
        Sperre: boolean;
        Zeit: string[255];
        Betrag: extended;
        Kundennr: Integer;
  end;


Delphi-Quellcode:
procedure TServer.ServerSocketClientRead(Sender: TObject; Socket: TCustomWinSocket);
var Nachricht: TClientNachricht;
    Einträge: Integer;
    Antwort : TClientAntwort;
begin

  // Nachricht empfangen
  Socket.ReceiveBuf(Nachricht, SizeOf(Nachricht));

  // In Excel Tabelle eintragen
  try
  Excel.Worksheets[InttoStr(Nachricht.Kundennr)].Activate;
  Antwort.Existent := true;
  except
  Antwort.Existent := false;
  end;
  Antwort.Abgedeckt := false;


  if Antwort.Existent = true then
  begin
    Einträge := StrToInt(Excel.Cells[1,1]);
    if StrToFloat(Excel.Cells[1+Einträge,6]) - Betrag >= 0 then
    begin
      // Eintragen am Server (Stringgrid
      sgAktuell.Cells[0,sgAktuell.RowCount-1] := InttoStr(Nachricht.Kundennr);
      sgAktuell.Cells[1,sgAktuell.RowCount-1] := FloatToStr(Nachricht.Betrag);
      sgAktuell.Cells[2,sgAktuell.RowCount-1] := TimeToStr(Time);
      sgAktuell.Cells[3,sgAktuell.RowCount-1] := Nachricht.Absender;

      sgAktuell.RowCount := sgAktuell.RowCount+1;

      //Eintrag in Excel
      Excel.Cells[1,1] := IntToStr(Einträge+1);
      Excel.Cells[2+Einträge,2] := IntToStr(Einträge+1);
      Excel.Cells[2+Einträge,3] := TimeToStr(Time);
      Excel.Cells[2+Einträge,4] := Nachricht.Absender;
      Excel.Cells[2+Einträge,5] := FloatToStr(Nachricht.Betrag);
      Excel.Cells[2+Einträge,6] := FloatToStr((StrToFloat(Excel.Cells[1+Einträge,6]) - StrToFloat(Excel.Cells[2+Einträge,5])));

      Antwort.Abgedeckt := true;
    end;

  end;

  if Excel.Cells[8,7] = 'Jathen
        Antwort.Sperre := true
      else
        Antwort.Sperre := false;

  Antwort.Betrag := Nachricht.Betrag;
  Antwort.Kundennr := Nachricht.Kundennr;
  Antwort.Absender := 'Server';
  Antwort.Zeit := TimeToStr(Time);
  Socket.SendBuf (Antwort, SizeOf(Nachricht));
end;
habe im Netz auch nichts darüber gefunden was die "Invalid variant operation" genau aussagen soll.
Danke im vorraus, Test0r79
  Mit Zitat antworten Zitat