![]() |
Access Violation bei manchen Versionen von Windows?
Hallo!
Habe gerade ein Programm fertiggestellt - auf meinem Rechner und auf meinem Laptop läuft es Einwandfrei, auf dem von meinem Kumpel will es nicht laufen.. die berühmte Access violation..
Delphi-Quellcode:
Ich glaube es liegt am htmlcontent[1], aber was kann ich machen, damit da auf keinen fall solch eine Message kommt?
procedure TForm1.Button1Click(Sender: TObject);
var htmlcontent:string; begin htmlcontent:='u'; htmlcontent:=GETHTML('http://www.link.de/status.php?username='+Edit1.Text+'&password='+Edit2.Text); while (htmlcontent= 'u') do begin form1.caption:='Überprüfung...'; sleep(1000); end; if htmlcontent[1]= '1' then begin login:=true; FormActivate(Sender); end else Form1.caption:='Login'; end; hilfe :( ach ja getHTML liest einfach die seite aus.. die seite gibt 0 oder 1 zurück, jenachdem, ob name und passwort stimmten oder nicht. Freue mich auf Hilfe! :) DAnKE Richie |
Re: Access Violation bei manchen Versionen von Windows?
Delphi-Quellcode:
Wenn der String leer ist, knallt es beim Zugriff auf das erste Zeichen (logisch, oder?).
if (Length(htmlcontent) > 0) and (htmlcontent[1]= '1') then
|
Re: Access Violation bei manchen Versionen von Windows?
Delphi-Quellcode:
immer noch der gleiche Fehler..
procedure TForm1.Button1Click(Sender: TObject);
var htmlcontent:string; begin htmlcontent:='u'; htmlcontent:=GETHTML('http://link.com/login.php?username='+Edit1.Text+'&password='+Edit2.Text); while ( (htmlcontent= 'u') OR (not(Length(htmlcontent)>0))) do begin form1.caption:='Überprüfung...'; sleep(1000); end; if htmlcontent[1]= '1' then begin login:=true; //FormActivate(Sender); end else Form1.caption:='Login'; end; hab sogar mal FormActivate ausgeklammert um zu verhindern, dass es daran liegt.. ich verstehe es nicht - bei mir klappt es wunderbar, bei ihm nicht. |
Re: Access Violation bei manchen Versionen von Windows?
Hallo,
MadExcept runterladen, einbinden und damit das Programm starten. Heiko |
Re: Access Violation bei manchen Versionen von Windows?
Wie wärs mit
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var htmlcontent:string; begin htmlcontent:='u'; htmlcontent:=GETHTML('http://link.com/login.php?username='+Edit1.Text+'&password='+Edit2.Text); while ( (htmlcontent= 'u') OR (not(Length(htmlcontent)>0))) do begin form1.caption:='Überprüfung...'; sleep(1000); end else //<-----Sonst wird das danach ja auch ausgeführt, wenn das oben nicht zutrifft if htmlcontent[1]= '1' then begin login:=true; //FormActivate(Sender); end else Form1.caption:='Login'; end; |
Re: Access Violation bei manchen Versionen von Windows?
Zitat:
Um genau zu sein: Es "knallt" nur wenn die Compilerdirektive "Boolsche Ausdrucke komplett auswerten" oder so auf aktiviert ist - standardmäßig ist es deaktiviert. Wenn es aktiviert ist und der String ist leer, gibt der erste Teilausdruck false zurück- damit kann der Gesamtausdruck nicht mehr wahr werden und die Auswertung bricht ab ;) Oh, sorry - hatte gedacht das wäre ein Zitat und keine Verbesserung ... :oops: |
Re: Access Violation bei manchen Versionen von Windows?
Das war ja auch mein Korrekturvorschlag ;) :lol:
|
Re: Access Violation bei manchen Versionen von Windows?
habe den Startwert von htmlcontent jetzt auf '' gesetzt, also leeren String, damit ich bei der while Schleife
while not(Length(htmlcontent)>0) do schreiben konnte. Es gibt immer noch eine Fehlermeldung, sogar, wenn ich if htmlcontent[1]= '1' then in if htmlcontent='1' then ändere.. ich habe jetzt die befürchtung, dass GETHTML bei ihm nicht funktioniert.. GETHTML ist eine Funktion, die man u.A. hier: ![]() betrachten kann. Kann es sein, dass das System bestimmte Voraussetzungen für die Arbeit damit mitbringen muss? Immerhin geht bei mir alles ohne Probleme.. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:57 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