AGB  ·  Datenschutz  ·  Impressum  







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

Indy TCP Client Exception

Ein Thema von hesch21 · begonnen am 30. Apr 2012 · letzter Beitrag vom 16. Mai 2012
Antwort Antwort
hesch21

Registriert seit: 31. Aug 2004
Ort: Basel
114 Beiträge
 
Delphi XE2 Enterprise
 
#1

AW: Indy TCP Client Exception

  Alt 2. Mai 2012, 09:16
Vorab Danke für Eure Antworten.
@ Data: Ich glaube, ich habe ziemlich klar beschrieben, auf welcher Zeile mit welcher Exception das Programm aussteigt.
@ sx2008: Wenn ich die beiden Asserts einbaue, bekomme ich die Exception auf dem ersten Assert. Hier der exakte Text aus dem MAD-Bugreport:
exception class : EAssertionFailed
exception message : kein TALiz - Objekt (S:\Client1.pas, Zeile 30).
Aber was das nun bedeutet, resp. weshalb das TALiz-Objekt nicht vorhanden (assigned) ist, ist mir nach wie vor ein Rätsel.
Heinz Schneider
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Indy TCP Client Exception

  Alt 2. Mai 2012, 09:29
Zitat:
@ Data: Ich glaube, ich habe ziemlich klar beschrieben, auf welcher Zeile mit welcher Exception das Programm aussteigt.
Ja, da hast Du absolut Recht; Asche auf mein Haupt ... wer Lesen kann ist klar im Vorteil

Zitat:
Hast Du die Möglichkeit das Auftreten der Exception zu debuggen ?
Diese Frage halte ich aber schon für berechtigt, denn wenn ja dann müßtest Du auch herausfinden können,
warum Dein
TALiz-Objekt nicht vorhanden (assigned) ist.

Wird die function GetLizfromServer etwa von irgendwelchen Timern / Form-Events aufgerufen,
so das diese eventuell eintreten könnten, bevor Dein Objekt erzeugt ist ?

Greetz Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
hesch21

Registriert seit: 31. Aug 2004
Ort: Basel
114 Beiträge
 
Delphi XE2 Enterprise
 
#3

AW: Indy TCP Client Exception

  Alt 2. Mai 2012, 11:00
Hallo DataCool

natürlich läuft das Ding mit dem Debugger. Mal kurz um was es geht. Die Unit übermittelt dem (meinem) Server Lizenzierungsdaten welche dieser prüft. Je nach Ergebnis kommt vom Server ein Lizenzierungsschlüssel oder ein 'No Go' mit einem Fehlercode zurück. Angestossen wird das im Hauptprogramm über einen Button (also keinen Automatismus über einen Timer oder so). Der Fehler tritt erst auf, wenn ich die Funktion im Hauptprogramm über den Button aufrufe.

Die Aufruf-Procedure im Hauptprogramm ist auch recht einfach:
Code:
{Get License from Server}
procedure TComCont.BitBtn1Click(Sender: TObject);
var hili : string;
begin
  if Edit4.Visible and (Edit4.Text <> '') then
     hili := Edit4.Text
  else
     hili   := Label49.Caption;
  Edit3.Text := ALiz.GetLizfromServer('6', hili, Label48.Caption, 'IP');
  if StrToIntDef(copy(Edit3.Text,1,3),0) <> 0 then
     Button8Click(Self)
  else
     begin
     Edit3.Color := clRed;
     ShowMessage('There happened an error. Please consult the manual and try with a manual licensing');
     end;
end;
Wie bereits erwähnt, das ganze funktioniert in 11 anderen Applikationen problemlos mit derselben Unit.
Heinz Schneider
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Indy TCP Client Exception

  Alt 11. Mai 2012, 22:00
Hallo Hesch21,

wenn du hier :
  Edit3.Text := ALiz.GetLizfromServer('6', hili, Label48.Caption, 'IP');
Einen Breakpoint setzt, ist an der stelle ALiz eventuell = nil ?

Greetz Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
hesch21

Registriert seit: 31. Aug 2004
Ort: Basel
114 Beiträge
 
Delphi XE2 Enterprise
 
#5

AW: Indy TCP Client Exception

  Alt 14. Mai 2012, 07:29
Hallo Data

Deine Vermutung trifft zu. Aliz ist tatsächlich nil. Jetzt sollte ich bloss noch dahinter kommen, weshalb.
Heinz Schneider
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Indy TCP Client Exception

  Alt 15. Mai 2012, 22:09
Hi Hesch21,

sorry für die späte Antwort, ich war auf den Delphi Developer Days in Frankfurt ...
Zu Deinem Problem, es gibt eigentlich nur 3 Möglichkeiten/Ursachen das ALiz = nil ist:
- ALiz wird nirgendswo erzeugt ( ALiz := TALiz.Create ) Wenn aLiz erzeugt wird, in welcher Unit ?
- Die Variable aLiz ist 2 x deklariert, einmal in Deiner Unit und noch in einer anderen unit/Form wo
das Create der Klasse aufgerufen wird? In dem Fall wäre die var in Deiner Unit nämlich nil.
- Letzte recht unwahrscheinliche Möglichkeit, irgendwo außerhalb Deiner unit wiird ALiz := nil gesetzt.

Hoffe das hilft jetzt

Greetz Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
hesch21

Registriert seit: 31. Aug 2004
Ort: Basel
114 Beiträge
 
Delphi XE2 Enterprise
 
#7

AW: Indy TCP Client Exception

  Alt 16. Mai 2012, 10:05
Hallo Data

das war die Erleuchtung! Aus unerfindlichen Gründen hat mir Delphi 7 den Create für das Formular nicht in die DPR eingestellt, als ich die Unit über 'dem Projekt hinzügen' eingebunden haben. Das klappt sonst immer.
Wie dem auch sei, dort ein Application.CreateForm(TALiz, ALiz); einfügen hat geholfen.

Danke für deine Hilfe.
Heinz Schneider
  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 02:11 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