![]() |
Invalid variant operation
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:
habe im Netz auch nichts darüber gefunden was die "Invalid variant operation" genau aussagen soll.
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] = 'Ja' then 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; Danke im vorraus, Test0r79 |
Re: Invalid variant operation
Hallo erstmal und Willkommen in der :dp:
hier gibt es eine Suchfunktion..da findest Du sicher den Fehler in Deiner Anwendung ![]() |
Re: Invalid variant operation
Danke fürs Hallo sagen :)
Also mit deinem Tip hast mich ja fast direkt zu der folgenden Zeile geführt:
Delphi-Quellcode:
jedoch finde ich nichts was in der Richtung einen fälschlichen Sinn ergibt, so wie ich es geschrieben habe.
Excel.Worksheets[InttoStr(Nachricht.Kundennr)].Activate;
|
Re: Invalid variant operation
Zitat:
![]() |
Re: Invalid variant operation
Also workbook und worksheet sind ja schon vorhanden. Es wird sozusagen an der vorhanden Tabelle weitergeschrieben...
aber wenn ich es so wie dort beschrieben versuche:
Delphi-Quellcode:
bekomme ich nur die volle Ladung an excessviolations im OLE string support. Auch ist Excel richtig eingebunden.
Excel.Sheets[Nachricht.Kundennr].Cells[2+Einträge,2].Value := IntToStr(Einträge+1);
|
Re: Invalid variant operation
Zitat:
Die Anzahl der Eintraege in einer Excel Tabelle solltest Du mit OLE auslesen! Es gibt noch andere Hilfen fuer OLE mit Excel..siehe ![]() |
Re: Invalid variant operation
Delphi-Quellcode:
so ist die Tablle aufgebaut, wobei ich nun nicht verstehe, warum ich die Einträge zählen sollte, wenn ich oben link die aktuelle Zeilenzahl "mitlaufen" lass um diese dann zu beschreiben. Ich greife ja nicht auf eine Zelle zu die nicht vorhanden ist...
24 Eintrag ID Zeit Absender Betrag Guthaben
1 00:00 Server 0 100 2 12:00 Supermarkt 14,00 86,00 3 12:00 Supermarkt 11,00 75,00 4 12:00 Supermarkt 11,00 64,00 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz