![]() |
AW: Quellcode Überprüfung (For Schleifen Fehler)
Delphi-Quellcode:
Ich habe es mal sauber formatiert. Vielleicht siehst du dann deinen Fehler.
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; Davon mal abgesehen. Lokale Variablen werden nicht initialisiert. zaehler enthält also einen zufälligen Wert. Und was soll das
Delphi-Quellcode:
?
zaehler := i + 1;
|
AW: Quellcode Überprüfung (For Schleifen Fehler)
@Luckie
Stehe gerade auf dem Schlauch! zaehler = i + 1; Damit meine ich, dass die zaehler Variable den Wert von i anholen soll und i bei jedem durchlauf um 1 erhöht wird. |
AW: Quellcode Überprüfung (For Schleifen Fehler)
Liste der Anhänge anzeigen (Anzahl: 1)
Upps...:P
Zitat:
Ein Projekt zum üben ist mit Sicherheit nicht falsch. Man sollte aber, bevor man sich an so etwas wagt, ein paar Tutorials durchgeackert haben. Dieses z.B. ![]() Da Objektpascal ereignisorientiert funktioniert wirst du nach dem Tutorial deinen Code auch verstehen warum das nicht funktioniert. :thumb: |
AW: Quellcode Überprüfung (For Schleifen Fehler)
Du weist zaehler den aktuellen Wert der Zählvariablen zu um eins erhöht. Aber warum? Was soll die Variable denn Zähen?
Druck dir den Code mal aus und gehe ihn mal mit einem Bleistift in der Hand durch. Schleife beginnt i = 1 if Abfrage ist false Eingabefelder werden gelöscht Sprung zum Anfang der Schleife i = 2 if Abfrage ist false (logisch, kann sich ja nichts geändert haben) Eingabefelder werden gelöscht Sprung zum Anfang der Schleife i = 3 if Abfrage ist immer noch false Eingabefelder werden gelöscht Sprung zum Anfang der Schleife Schleife wird verlassen Du siehst, die Schleife ist irgendwie überflüssig, da sich an
Delphi-Quellcode:
nie was ändern wird.
(s_benutzername.Caption = benutzername) and (s_passwort.Caption = passwort)
|
AW: Quellcode Überprüfung (For Schleifen Fehler)
Ich glaube du willst das:
Code:
globale Variable AttemptCount
Button_Click: Wenn AttemptCount < X begin Wenn Benutzername und Passwort richtig mach was else mach was anders erhöhe AttemotCount end end else Nachricht: X Versuche verbraucht end |
AW: Quellcode Überprüfung (For Schleifen Fehler)
@Luckie
Genau das will ich! procedure Tform_benutzerlogin.anmelden_knopfClick(Sender: TObject); var benutzername : string; passwort : string; i : 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 form_hauptmenue.Show; end else begin ausgabe_fehlermeldung.Caption := 'Falsche Eingabe'; s_benutzername.Clear; s_passwort.Clear; end; end; if i >= 3 then begin form_benutzerlogin.Close; end; end; Ich habe mal meinen Quellcode ein wenig abgeändert. Weshalb muss ich den das ButtonClick: verwenden? |
AW: Quellcode Überprüfung (For Schleifen Fehler)
Zitat:
ButtonClick ist deine
Delphi-Quellcode:
Mit den Delphi Tags nerv ich dich heute noch... :thumb:
procedure Tform_benutzerlogin.anmelden_knopfClick(Sender: TObject);
|
AW: Quellcode Überprüfung (For Schleifen Fehler)
Benutz bitte die Delphi-Tags!
Mein Button_Click ist nur eine Pseudo-Bezeichnung. für irgendeine ButtonClick Routine. Noch mal. Du hast nicht verstanden, warum deine Schleife überflüssig und nutzlos ist. Ich habe dir doch genau beschrieben, was deine Schleife macht, nämlich im Prinzip nichts, weil sich die Eingabe ja nicht ändert. Und wenn sie bei ersten Durchlauf falsch ist, wird es die Eingabe auch beim millionsten Durchlauf sein. Und du hast meinen Pseudo-Code nicht umgesetzt. Das Denken habe ich dir schon abgenommen. Du musst es nur noch in Delphi formulieren. |
AW: Quellcode Überprüfung (For Schleifen Fehler)
@Luckie
procedure Tform_benutzerlogin.anmelden_knopfClick(Sender: TObject); var benutzername : string; passwort : string; login_counter : integer; begin benutzername := 'root'; passwort := 'dHuz76Tr%4f1B'; login_counter := 0; if login_counter < 3 then begin if (s_benutzername.Caption = benutzername) and (s_passwort.Caption = passwort) then begin form_hauptmenue.Show; end else begin ausgabe_fehlermeldung.Caption := 'Falsche Eingabe'; s_benutzername.Clear; s_passwort.Clear; login_counter := login_counter + 1; end; end; end; Habe dies mal nach deiner Vorgabe gestaltet. Scheint aber noch nicht zu funktionieren. |
AW: Quellcode Überprüfung (For Schleifen Fehler)
Zitat:
:evil: Delphi Tags... ich nerve dich bis es klappt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:41 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