AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Anzeige bringt fatalen Fehler

Ein Thema von Bloodfire · begonnen am 27. Okt 2005 · letzter Beitrag vom 27. Okt 2005
Antwort Antwort
Bloodfire

Registriert seit: 17. Jun 2004
38 Beiträge
 
#1

Anzeige bringt fatalen Fehler

  Alt 27. Okt 2005, 21:40
Hi!

Folgendes:

Es wird auf den BtnNew geklickt und eine Info wird per TCP versandt:

Delphi-Quellcode:
procedure TBoardForm.BtnNewClick(Sender: TObject);
begin
   SendText('Info','NewGame');
end;
Delphi-Quellcode:
procedure TBoardForm.SendText(FKind, FTxt: String);
var
  ASendText: String;
begin
   //{
   try
    if TcpClient.Connect then
      begin
         ASendText:=FKind+'#'+FTxt;
         TcpClient.Sendln(ASendText);
      end;
   finally
     TcpClient.Disconnect;
   end;
   //}
end;

Dann wird sie empfangen, 'zerstückelt', ausgewertet und es wird je nach Info darauf reagiert:

Delphi-Quellcode:
procedure TBoardForm.TcpServerAccept(Sender: TObject;
  ClientSocket: TCustomIpClient);
var
  RecievedLn: String;
  i,j: Integer;
  RecievedKind: String;
  RecievedInfo: String;
begin
   RecievedLn:=ClientSocket.Receiveln;

   //{
   i:=0;
   while not(RecievedLn[i]='#')
     do inc(i);
   RecievedKind:=Copy(RecievedLn,0,i-1);

   if (RecievedKind = 'Info') then
     begin
        inc(i);
        j:=i;
        while not(length(RecievedLn)=i)
          do inc(i);
        RecievedInfo:=Copy(RecievedLn,j,i-j+1);

        if RecievedInfo = 'NewGame'
          then ShowMessage('Test!');
        //CheckInfo(RecievedInfo);
     end;
     //}
end;

Grundsätzlich passiert folgendes:
Die ShowMessage wird gezeigt, aber danach zickt das Programm. Wenn ich die Form beenden will meldet Delphi eine EAccessViolation (screenshot anbei: error1.jpg)

Ab und zu ist auch folgendes passiert:
Vor, bzw. während dem Anzeigen der ShowMessage (sie wird nicht mehr gezeichnet) tickt der PC komplett aus. Es hängt alles - jeder Task (auch Taskmanager). Jeder Bearbeitungsschritt (zb. Taskmngr öffnen / Task anklicken / etc.) braucht ca 20-30 Sekunden!!

Hin und wieder gab's vorher von Delphi eine Fehlermeldung -> anbei(error2.jpg)

Ich hoffe, mir kann jemand weiterhelfen!
Danke!
Miniaturansicht angehängter Grafiken
error_163.jpg   error2_200.jpg  
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Anzeige bringt fatalen Fehler

  Alt 27. Okt 2005, 22:08
Probier mal so:

Delphi-Quellcode:
procedure TBoardForm.TcpServerAccept(Sender: TObject;
  ClientSocket: TCustomIpClient);
var
  ReceivedLn: String;
  i, j: Integer;
  ReceivedKind: String;
  ReceivedInfo: String;
begin
  RecievedLn := ClientSocket.ReceiveLn;
  i := Pos('#', ReceivedLn);
  ReceivedKind := Copy(ReceivedLn, 1, Pred(i));
  if ReceivedKind = 'Info') then
  begin
    ReceivedInfo := Copy(ReceivedLn, Succ(i), Length(ReceivedKind) - i);
    if ReceivedInfo = 'NewGame'
      then ShowMessage('Test!');
      // CheckInfo(ReceivedInfo);
  end;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#3

Re: Anzeige bringt fatalen Fehler

  Alt 27. Okt 2005, 22:14
Noch ein kleiner Tipp:

eine AccessViolation heisst in 99% der Fälle, das du ein Objekt benutzt, welches du noch nicht erstellt hast (Create) und deren Instanz (ein Pointer) folglich noch nil ist (also nach 000... zeigt)

danach solltest du mal genau gucken
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:20 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