![]() |
Re: Runtime Error 217 beim Beenden! Finde keinen Fehler!
TeamSpeak muss ja Verbindungen aufbauen. Wäre es möglich, dass die noch offen sind und (da wahrscheinlich asynchron) sich nochmal melden und damit den Fehler erzeugen?
Stellt Du sicher, das alle IP-Verbindungen sicher beendet sind, bevor das Prog beendet wird? Grüße, Messie |
Re: Runtime Error 217 beim Beenden! Finde keinen Fehler!
Also beim TS, muss man nicht verbunden sein...
hier mal der Code: Diese läuft alle 300ms
Delphi-Quellcode:
procedure TForm1.Timer3Timer(Sender: TObject);
var TSSpeaker : string; i : integer; begin timer3.Enabled := false; TSSpeaker := GetTSSpeaker; if TSSpeaker = '' then begin timer3.Enabled := true; exit; end; for i := 0 to high(Freigabeliste) do if (Freigabeliste[i].belegt) and (freigabeliste[i].CallSign = TSSpeaker) then begin if not timer4.Enabled then begin LastCalling := TSSpeaker; LastCallingIndex := i; LastcallingSekunde := 0; Timer4.Enabled := true; end; // Code für Makierung end; timer3.Enabled := true; end;
Delphi-Quellcode:
function GetTSSpeaker : string; Function DisplayResult( Res : Integer ) : Boolean; Var ErrorMessage: array[0..99] of Char; begin if res = 0 then begin //Writeln('OK'); Result := True; exit; end else begin tsrGetLastError(@ErrorMessage, SizeOf(ErrorMessage)); Result := False; end; end; function DoGetPlayers : boolean; var PlayersInfo : Array[0..99] of TtsrPlayerInfo; Records : Integer; I : integer; begin result := true; Records := 100; DisplayResult(tsrGetPlayers(@playersInfo, @records) ); for I := 0 to Records - 1 do begin PLayer[i].id := PlayersInfo[i].PlayerID; Player[i].Name := PlayersInfo[i].NickName; end; result := true; end; function DoGetSpeakers : string; var IDs : Array[0..99] of Integer; Records : Integer; I , u: integer; PlayersInfo : Array[0..99] of TtsrPlayerInfo; ID : integer; begin result := ''; Records := 100; try //hier kommt der fehler DisplayResult(tsrGetSpeakers(@playersInfo, @records) ); //if Records > 0 then ; for I := 0 to Records - 1 do for u := 0 to high(Player) do if Player[u].id = PlayersInfo[i].PlayerID then begin result := player[u].Name; break; end; except exit; end; end; begin result := ''; if DOGetPlayers then try result := DogetSpeakers; except On E:Exception Do //hLog.AddException(E,'Function GetTSSpeaker', []); end; end; Sollte man nicht mit TeamSpeak verbunden sein, so passiert hier nix mit dem Code, also muss ich mich auch nicht mit dem TS disconnecten beim Beenden! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:40 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