Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Lazarus (IDE) (https://www.delphipraxis.net/81-lazarus-ide/)
-   -   Quellcode Überprüfung (For Schleifen Fehler) (https://www.delphipraxis.net/187523-quellcode-ueberpruefung-schleifen-fehler.html)

Luckie 6. Dez 2015 18:21

AW: Quellcode Überprüfung (For Schleifen Fehler)
 
Noch mal. Benutz bitte endlich die Delphi Codetags. Das ist der Helm oben bei den Schaltflächen!

Zitat:

Scheint aber noch nicht zu funktionieren.
OK. Gut. Du kannst dir vorstellen, was wir jetzt gerne wissen würden, um dir zu helfen?

Delphi-Quellcode:
login_counter := 0;

if login_counter < 3 then begin
Wird die if Abfrage jemals false werden?

atzornf 6. Dez 2015 18:32

AW: Quellcode Überprüfung (For Schleifen Fehler)
 
Habe die Variable login_counter nun im public Bereich global definiert...
Funktioniert aber immer noch nicht!

Delphi-Quellcode:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, Unit2;

type

  { Tform_benutzerlogin }

  Tform_benutzerlogin = class(TForm)
    anmelden_knopf: TButton;
    beenden_knopf: TButton;
    ausgabe_fehlermeldung: TLabel;
    s_benutzername: TEdit;
    s_passwort: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    procedure anmelden_knopfClick(Sender: TObject);
    procedure beenden_knopfClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { private declarations }
  public
    login_counter : integer;
  end;

var
  form_benutzerlogin: Tform_benutzerlogin;

implementation

{$R *.lfm}

{ Tform_benutzerlogin }

procedure Tform_benutzerlogin.FormShow(Sender: TObject);
begin

form_benutzerlogin.Caption := 'Scylla V.1.0 - Login';
s_benutzername.Caption := '';
s_passwort.Caption := '';
ausgabe_fehlermeldung.Caption := '';
anmelden_knopf.Caption := 'Anmelden';
beenden_knopf.Caption := 'Beenden';

end;

procedure Tform_benutzerlogin.beenden_knopfClick(Sender: TObject);
begin

close;

end;

procedure Tform_benutzerlogin.anmelden_knopfClick(Sender: TObject);

var
benutzername : string;
passwort : string;

begin

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

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;
end.

Luckie 6. Dez 2015 18:34

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

Funktioniert aber immer noch nicht!
Wir sind keine Hellseher und sitzen nicht neben dir am Computer. WAS funktioniert nicht? Was soll passieren und was passiert?

haentschman 6. Dez 2015 18:40

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

Funktioniert aber immer noch nicht!
...was passiert deiner Meinung nach falsch?

Bitte Delphi Tags nicht Code Tags. Der Button mit dem Helm... wir lernen das noch... :roll:

ähhhmmmm....
Delphi-Quellcode:
s_benutzername: TEdit;
Delphi-Quellcode:
s_benutzername.Caption = benutzername
...du mußt schon .Text auswerten sonst vergleichst du die Caption. Obwohl... im Delphi hat TEdit kein Caption. Im Lazarus? :gruebel:

auch im Lazarus gibt es kein Caption: http://lazarus-ccr.sourceforge.net/d...rls/tedit.html...compiliert das?

TBx 6. Dez 2015 18:42

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

Zitat von Luckie (Beitrag 1323578)
Wir sind keine Hellseher

Die einzigen Dinge, die ich Dir definitiv sagen kann, sind:
1. Du initialisierst den Counter immer noch nicht
2. Du vergleichst Username und Password nicht mit den Usereingaben, da müßtest Du mit der Property Text und nicht mit Caption vergleichen.

atzornf 6. Dez 2015 18:45

AW: Quellcode Überprüfung (For Schleifen Fehler)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Delphi-Quellcode:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, Unit2;

type

  { Tform_benutzerlogin }

  Tform_benutzerlogin = class(TForm)
    anmelden_knopf: TButton;
    beenden_knopf: TButton;
    ausgabe_fehlermeldung: TLabel;
    s_benutzername: TEdit;
    s_passwort: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    procedure anmelden_knopfClick(Sender: TObject);
    procedure beenden_knopfClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { private declarations }
  public
    login_counter : integer;
  end;

var
  form_benutzerlogin: Tform_benutzerlogin;

implementation

{$R *.lfm}

{ Tform_benutzerlogin }

procedure Tform_benutzerlogin.FormShow(Sender: TObject);
begin

form_benutzerlogin.Caption := 'Scylla V.1.0 - Login';
s_benutzername.Caption := '';
s_passwort.Caption := '';
ausgabe_fehlermeldung.Caption := '';
anmelden_knopf.Caption := 'Anmelden';
beenden_knopf.Caption := 'Beenden';

end;

procedure Tform_benutzerlogin.beenden_knopfClick(Sender: TObject);
begin

close;

end;

procedure Tform_benutzerlogin.anmelden_knopfClick(Sender: TObject);

var
benutzername : string;
passwort : string;

begin

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

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;

if login_counter >= 3
   then begin
        form_benutzerlogin.Close;
        end;

end;
end.
Vielen Dank für eure Hilfe!
Benutzerkontrolle funktioniert!

Eventuell könnt Ihr mir noch bei einem Thema helfen:

Ich habe zwei Formulare. Sofern ein Benutzer auf der zweiten Form auf Beenden drückt soll sich auch ebenfalls Form1 schließen.

Mein Quellcode:
Delphi-Quellcode:
procedure Tform_hauptmenue.beenden_knopfClick(Sender: TObject);
begin

close;
form_benutzerlogin.Close;

end;
Fehlercode im Anhang!

TBx 6. Dez 2015 18:47

AW: Quellcode Überprüfung (For Schleifen Fehler)
 
Neues Thema --> neuer Thread!

Luckie 6. Dez 2015 18:49

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

Zitat von TBx (Beitrag 1323581)
1. Du initialisierst den Counter immer noch nicht

Integer Felder werden doch mit null initialisiert oder?
Zitat:

2. Du vergleichst Username und Password nicht mit den Usereingaben, da müßtest Du mit der Property Text und nicht mit Caption vergleichen.
Da hat meine Glaskugel kurz gewackelt, aber sie ist mit Lazarus/FreePascal nicht so firm. :mrgreen:

atzornf 6. Dez 2015 18:52

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

Programm funktioniert wie es soll!
Mache einen neuen Thread auf...

haentschman 6. Dez 2015 18:54

AW: Quellcode Überprüfung (For Schleifen Fehler)
 
Mich wundert das das mit .Caption compiliert. Auch bei Lazarus hat lt. Doku TEdit diese Property nicht... magic Compiler der das umbiegt? :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 Uhr.
Seite 3 von 4     123 4      

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