Brauche Hilfe :(

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von EugenE »

jop stimmt naja solange das programm geht kann mir der debugg error egal sein finde ich^^

EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von EugenE »

oh mein gott -.-

habe jez seitdem 29.12 ca 2oder3 andere bugs versucht wegzubekommen , die immernoch dasind und jez kommt wieder dieser scheiß fehler , (pic beim ersten post) , kann sich ein progger bereitstellen und mir pers. helfen? es brachte ja letzens fast garnichts , wenn ich den code hier poste :( zumindest bei diesem fehler

Hiiiilfe :(

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

Da haste dir für den Anfang aber auch gleich nen richtigen Brocken ausgesucht.

Hast Du jetzt wenigstens mal die Http-Anfrage auf nen Button gelegt, anstatt das ganze Gemüse gleich im FormCreate zu machen?

Dann das nächste, bei TCP-Verbindungen (auch Http läuft über TCP Port = 80) wird nicht zwingend eine Exception ausgelöst. Wenn die Verbindung nicht klappt hast halt ne leere Stringlist, aber du mußt warten bis der Timeout kommt. Manche Funktionen könnten z.B. die Stringlist bei Mißerfolg auf nil setzen, das muß man abfangen:

if (Stringlist nil) then begin

Bei mir hatte die Abfrage ja problemlos geklappt, das deutet immernoch auf ein Netzwerkproblem hin. Die Frage, ob du hinter nem Router sitzt haste noch immer nicht beantwortet, sollte das nämlich über ISDN laufen sieht die Welt anders aus. Der Einwahlversuch des ISDN muß dazugerechnet werden, das kann zum Timeout führen wenn die Timeout-Zeit deiner Verbindung zu kurz gewählt ist.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Benutzeravatar
theo
Beiträge: 10859
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Der Synapse Teil löst in sich mit Sicherheit keine Zugriffsverletzung aus.
Man sollte halt nur weiterfahren wenn die Methode (z.B. HttpGetText) ein true zurückgibt. http://synapse.ararat.cz/docs/help/httpsend.html" onclick="window.open(this.href);return false;
Mehr ist dazu nicht zu sagen. Auch Timeouts etc. lösen keine Zugriffsverletzung aus.
Da ist einfach nur das Resultat "false" und dann sollte man auch nicht weiterverarbeiten.

Wenn man's genauer kontrollieren will (als True/False), muss man das Objekt THTTPSend selber erstellen

Code: Alles auswählen

var HTTP: THTTPSend;
....
  HTTP := THTTPSend.Create;
....
          HTTP.Clear;
          if HTTP.HTTPMethod('GET', URL) then
          begin
            if HTTP.ResultCode = 200 then
            begin
             //hier ist alles gut -> weitere Verarbeitung mit HTTP.Document
          end else ErrLog('Meldung vom Server: (' + inttostr(HTTP.ResultCode) + ') ' + HTTP.ResultString);
          end else ErrLog('Problem mit der Verbindung: '+HTTP.Sock.LastErrorDesc);
        end;
 
HTTP.free;
@Schnullerbacke: Will sagen es bringt nichts an irgendwelchen Internet Konfigurationen und Server Fragen rumzuhirnen. Das siehste dann schon, das erzählt dir Synapse. ;-)

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

@theo

Ich hab da gerade "imageforlazarus.pas" entdeckt, das angeblich auch "MNG", also die animierte Version von "PNG", verarbeiten soll. Muß man da irgendwas spezielles veranstalten?

Eingebunden hatt ich das, nur werden beim Imageload-Dialog die *.mng trotzdem nicht angezeigt. Das Paket ist angeblich in der Umgebung geladen.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Benutzeravatar
theo
Beiträge: 10859
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

schnullerbacke hat geschrieben:@theo

Ich hab da gerade "imageforlazarus.pas" entdeckt, das angeblich auch "MNG", also die animierte Version von "PNG", verarbeiten soll. Muß man da irgendwas spezielles veranstalten?
Woher haste denn die Information wegen MNG?

Bei mir sieht's nicht so aus (0.9.20):

Code: Alles auswählen

unit ImagesForLazarus; 
 
interface
 
uses
  LazPNG, LazPNM, LazJPG, LazBMP, LazTGA, LazXPM, RegisterImg4Laz, 
    LazarusPackageIntf;
Vielleicht ne neuere Version?

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

Oops,... :oops:

Da bin ich wohl auf Delphi mit dem TNGImage-Package reingefallen. Da läuft das ganz hübsch... :wink:
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Benutzeravatar
theo
Beiträge: 10859
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

EugenE hat geschrieben:oh mein gott -.-
jez kommt wieder dieser scheiß fehler , (pic beim ersten post) ,
Eugen, das ist kein "Scheiß Fehler" das meldet eine Zugriffsverletzung.
Der Fehler kann ein ganz anderer als zu Anfang sein.

Das ist wie wenn du "Aua" schreist. Da weiss ich ohne hinsehen auch nicht, ob dir einer auf die Füsse getreten ist, oder ob du 'nen Blumentopf auf den Schädel gekriegt hast.

"Aua" (bzw. Zugriffsverletzung) ist ja nur ne "Meldung" und nicht das Problem. ;-)

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

Da das nun auch beim Debugger eintritt kann sogar der der Schuldige sein. Deswegen mal mein Hinweis auf "try except". Bau das immer da ein wo du ein Objekt initialisierst, eine Datei oder einen Stream öffnest. Das unterbindet i.a.R. auch, das der Debugger überhaupt erst meckert weil dann das Exception-Handling das unterbindet. Zumindest kriegt man dann raus an welcher Stelle genau das passiert.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Wie ich am anfang des threads schonmal gesagt hab ist der "scheiss fehler" gdb spezifisch und tritt immer das 2. 3. 4. ... mal auf wenn man ne anwendung debuggt die aufs netzwerk zugreift einfach nach jedem debuggen debugger zurücksetzen machen und man ist das problem los wiso muss ich das immer 2x schreiben
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
theo
Beiträge: 10859
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Christian hat geschrieben:Wie ich am anfang des threads schonmal gesagt hab ist der "scheiss fehler" gdb spezifisch und tritt immer das 2. 3. 4. ... mal auf wenn man ne anwendung debuggt die aufs netzwerk zugreift einfach nach jedem debuggen debugger zurücksetzen machen und man ist das problem los wiso muss ich das immer 2x schreiben
Gilt das auch für Linux? Das ist mir so noch nicht aufgefallen.

EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von EugenE »

so habe das try except versucht

Code: Alles auswählen

try
      HttpGetText('http://layer-ads.de/api/'+xml+'.xml', txt);
   except
      ShowMessage('hm die url spinnt -.- oder so');
   end;
kommt immer diese zugriffsverletzung

habe es auch mit debugger zurücksetzen und so gemacht bringt auch ncihts

mir ist aufgefallen das die texte als datei gespeichert werden obwohl der die verletzung vorher erscheint

Code: Alles auswählen

try
      HttpGetText('http://layer-ads.de/api/'+xml+'.xml', txt);
   except
      ShowMessage('fehler');
   end;
 
   if txt <> nil then
      begin
         ShowMessage('gespeichert');
         txt.SaveToFile(path+'xml/'+xml+'.xml');
      end else begin
         ShowMessage('Der Layer-Ads Server anscheinend kleinere Probleme , bitte Aktualisieren etwas später.');
   end;

Benutzeravatar
theo
Beiträge: 10859
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Was hier schon mal nicht sauber ist:

Erstens:
HttpGetText schmeisst keine Exceptions, wenn das Dokument nicht erhalten wurde. Du kannst den Try-Except Block schon da lassen, aber ob die Anfrage geklappt hat kriegst du durch den Rückgabewert raus:

hatgeklappt:=HttpGetText(.....);

Zweitens:
if txt nil then
ist sinnlos. Du musst die TStringList vorher ja selber createn. Also wird die auch nicht nil sein. Ob Daten drin sind, kriegst du mit Count raus:

if txt.count > 0 then

EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von EugenE »

ich hatte vorher das hier drinne

if txt.count > 7 then , hat aber auch ncihts gebracht

Benutzeravatar
theo
Beiträge: 10859
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

EugenE hat geschrieben:ich hatte vorher das hier drinne

if txt.count > 7 then , hat aber auch ncihts gebracht
Was heisst "gebracht"?

Tust du die StringList auch vorher createn?

txt:=TStringList.create;

Antworten