AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Lazarus (IDE) Quellcode Überprüfung (For Schleifen Fehler)
Thema durchsuchen
Ansicht
Themen-Optionen

Quellcode Überprüfung (For Schleifen Fehler)

Ein Thema von atzornf · begonnen am 6. Dez 2015 · letzter Beitrag vom 6. Dez 2015
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
atzornf

Registriert seit: 6. Dez 2015
Ort: Völklingen
11 Beiträge
 
FreePascal / Lazarus
 
#1

Quellcode Überprüfung (For Schleifen Fehler)

  Alt 6. Dez 2015, 17:07
Hallo Leute,

habe ein Problem mit meinem Quellcode. Habe einen Fehler drin, den ich leider nicht erkenne.

Hier mein Quellcode:
Delphi-Quellcode:
procedure Tform_benutzerlogin.anmelden_knopfClick(Sender: TObject);

var
benutzername : string;
passwort : string;
i : integer;
zaehler : integer;

begin

benutzername := 'root';
passwort := 'dHuz76Tr%4f1B';
i := 0;
zaehler := 1;

for i := 1 to 5 do begin

if (s_benutzername.Caption = benutzername) and (s_passwort.Caption = passwort)
   then begin
             s_benutzername.Clear;
             s_passwort.Clear;
             ausgabe_fehlermeldung.Caption := '';
             form_hauptmenue.Show;
             form_benutzerlogin.Visible := False
        end
        else begin
             s_benutzername.Clear;
             s_passwort.Clear;
             end;

        zaehler := zaehler + 1;
        ausgabe_fehlermeldung.Caption := Inttostr(zaehler);
end;
end;
Bei mir springt der Zähler aus irgend einem Grund direkt von 0 auf 6.

Wäre super, wenn Ihr mir helfen würdet.
Fabian

Geändert von TBx ( 6. Dez 2015 um 17:29 Uhr) Grund: Delphi-Tags gesetzt
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#2

AW: Quellcode Überprüfung (For Schleifen Fehler)

  Alt 6. Dez 2015, 17:16
Hallo und willkommen hier...

Bitte verpacke bitte den Delphi Code formatiert in Delphi Code Tags. Das ist der Button mit dem Helm...

Zum Thema:
Direkt auf 6 bedeutet if (s_benutzername.Caption = benutzername) and (s_passwort.Caption = passwort) then ist nicht True. Dadurch wird 5 mal s_benutzername leergemacht und der Zähler steht auf 6... logisch oder? Beim ersten Mal könntest du ja noch Glück haben das Benutzername und Paßwort paßt um in die erste Bedingung reinzukommen. Aber spätestens mit dem 1. Leeren wird die Bedingung nie wieder True sein können.

Erkläre mal den Ablauf den du vorhast... Das kann so vom logischen Ablauf nicht funktionieren. Wo für ist dieses Programm? Für externe Kunden? Dann solltest du dich mit "nicht einkompilieren" von Benutzernamen und Passwörtern beschäftigen.

Geändert von haentschman ( 6. Dez 2015 um 17:46 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: Quellcode Überprüfung (For Schleifen Fehler)

  Alt 6. Dez 2015, 17:45
Wenn (s_benutzername.Caption = benutzername) and (s_passwort.Caption = passwort) false ist, müssten auch die Eingabefelder geleert werden. Trifft das zu?

Ansonsten, dass eine Schleife rückwärts läuft ist normal. Siehe dazu: http://michael-puff.de/Programmierun...ckwaerts.shtml
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#4

AW: Quellcode Überprüfung (For Schleifen Fehler)

  Alt 6. Dez 2015, 17:48
Zitat:
Ansonsten, dass eine Schleife rückwärts läuft ist normal
Seine Zählvariable zaehler ist 6... I könnte maximal 5 haben...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Quellcode Überprüfung (For Schleifen Fehler)

  Alt 6. Dez 2015, 17:50
Muss nicht. Nach verlassen der Schleife ist der Wert der Zählvariablen unbestimmt. Stellt sich die Frage, wo er feststellt, dass die Zählvariable 6 ist.

Außerdem wollte ich mal wieder einen Link zu meiner Homepage unterbringen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#6

AW: Quellcode Überprüfung (For Schleifen Fehler)

  Alt 6. Dez 2015, 17:55
Zitat:
Außerdem wollte ich mal wieder einen Link zu meiner Homepage unterbringen.
Schön das wir drüber gesprochen haben...
Zitat:
Nach verlassen der Schleife ist der Wert der Zählvariablen unbestimmt.
...richtig, aber dannn ist die aber bestimmt nicht immer exakt 6.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Quellcode Überprüfung (For Schleifen Fehler)

  Alt 6. Dez 2015, 18:03
Er kann nur exakt sein. Da es sich um einen Integer handelt.

Und wie so sollte er nicht (zufällig) 6 sein? Wenn der Ablauf im Code immer gleich ist, sind auch die Speicheradressen um Adressraum des Prozesses wohl gleich. Und wie oft hatten wir schon die Situation, dass es zufällig bisher immer funktioniert hat, aber eben nur zufällig. Eine kleine Änderung und der Code, der zufällig funktioniert hat, funktioniert nicht mehr.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
atzornf

Registriert seit: 6. Dez 2015
Ort: Völklingen
11 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Quellcode Überprüfung (For Schleifen Fehler)

  Alt 6. Dez 2015, 18:13
Habe meinen Quellcode mal überarbeitet:

Delphi-Quellcode:
procedure Tform_benutzerlogin.anmelden_knopfClick(Sender: TObject);

var
benutzername : string;
passwort : string;
i : integer;
zaehler : integer;

begin

benutzername := 'root';
passwort := 'dHuz76Tr%4f1B';

for i := 1 to 3 do begin

if (s_benutzername.Caption = benutzername) and (s_passwort.Caption = passwort)
   then begin
        s_benutzername.Clear;
        s_passwort.Clear;
        form_hauptmenue.Show;
        end
        else begin
             s_benutzername.Clear;
             s_passwort.Clear;
             ausgabe_fehlermeldung.Caption := 'Falsche Eingabe';
             zaehler := i + 1;
             end;
if zaehler >= 6
   then begin
        form_benutzerlogin.Close;
        end;
end;
end;
Ich würde gerne eine Benutzerabfrage schreiben, welche die vorgegebenen Variablen benutzername/passwort überprüft.
Sofern die Eingabe des Benutzers korrekt ist, soll sich ein weiteres Fenster öffnen.
Sofern die Benutzereingabe falsch ist, sollen sich die Eingabefelder leeren und eine Labelbeschriftung mit Falscher Eingabe erzeugen.--> das ganze soll 3 mal von statten gehen, ansonsten soll sich die Anwendung schließen.
Fabian

Geändert von Luckie ( 6. Dez 2015 um 18:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#9

AW: Quellcode Überprüfung (For Schleifen Fehler)

  Alt 6. Dez 2015, 18:16
@atzornf: Die Delphi Tags üben wir noch...
Zitat:
Sofern die Benutzereingabe falsch ist, sollen sich die Eingabefelder leeren und eine Labelbeschriftung mit Falscher Eingabe erzeugen.--> das ganze soll 3 mal von statten gehen
Dann mußt du dem Benutzer auch die Möglichkeit geben das er 3 x auf den Button klicken kann. Merkst du was? Es macht keinen Sinn innerhalb der Klick procedure die Schleife laufen zu lassen. Die Fehlversuche mußt du dir außerhalb der procedure z.B. als privates Feld merken. Innerhalb der Klick procedure prüfst du ob die Anzahl der Fehlversuche kleiner als dein MAX ist und prüfst die Kombination. Ansonsten wird das Fenster geschlossen wie auch bei erfolgreicher Prüfung.

Geändert von haentschman ( 6. Dez 2015 um 18:25 Uhr)
  Mit Zitat antworten Zitat
atzornf

Registriert seit: 6. Dez 2015
Ort: Völklingen
11 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Quellcode Überprüfung (For Schleifen Fehler)

  Alt 6. Dez 2015, 18:23
@haentschman

Programmiere heute zum ersten mal mit Delphi.
Wäre super, wenn du mir helfen würdest.

Wäre auch mal interessant zu wissen, was ich falsch gemacht habe.
Fabian
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 23:33 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