AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Passwortabfrage mit Datenbank abgleichen
Thema durchsuchen
Ansicht
Themen-Optionen

Passwortabfrage mit Datenbank abgleichen

Ein Thema von Thieon · begonnen am 18. Mär 2016 · letzter Beitrag vom 22. Mär 2016
Antwort Antwort
Benutzerbild von haentschman
haentschman

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

AW: Passwortabfrage mit Datenbank abgleichen

  Alt 20. Mär 2016, 09:05
Moin...

Dann schaun wir mal...
Zitat:
muss das LoginFenster in der der Unit DelphiMD5 eingebaut werden oder wird die "procedure TLogin.Login..." in meiner eigentlichen Login Unit (in meinem Fall die Unit 1) mit dem Befehl "uses DelphiMD5;" automatisch abgearbeitet?
Eine Unit ist eine "Sammlung" von Klassen, Funktionen, Procedure etc. welche, normalerweise, funktional zusammenhängen. An dieser Unit wird nichts verändert...sie wird einfach benutzt. Dazu wird sie im uses Abschnitt eingebunden. Dem Delphi spendierst du noch den Suchpfad in dem die PAS liegt.
Mit dem entsprechenden Vorwissen hättest du an meinem Beispielcode gesehen das mein Login eine Klasse ist. Für den Anfang geht das natürlich auch ohne. Du spendierst deinem Form eine private procedure namens Login oder ähnlich . In dieser Procedure bringst du dann die Logik, entsprechend dem Beispiel, unter.
Hinweis: Wenn du mit Query statt Table arbeitest mußt du dich auch zwangsläufig mit SQL und Parametern beschäftigen. Das kann je nach verwendeten Komponenten eingeschränkt sein.

Wie du siehst ist das nicht mal eben programmiert wenn das Basiswissen fehlt. Programmieren ist ein ständiger Lernprozess bei dem man klein anfangen und sich ständig weiterentwickeln muß. Um die Motivation nicht zu verlieren braucht man auch Erfolgserlebnisse. Die kannst du aber knicken wenn du deine Ziele zu hoch ansetzt. Dann lieber Step by Step...

Hänge mal deinen kompletten Code hier an. Da sehen wir mal wo es Nachholebedarf gibt.

Geändert von haentschman (20. Mär 2016 um 09:13 Uhr)
  Mit Zitat antworten Zitat
Thieon

Registriert seit: 18. Mär 2016
9 Beiträge
 
#2

AW: Passwortabfrage mit Datenbank abgleichen

  Alt 21. Mär 2016, 10:13
Erstmal Danke... Ich habe versuch deinen Code einzubinden, aber dann kommen lauter Fehlermeldungen:

Projekt kompilieren, Ziel: DRK: Exit code 256, Fehler: 1
DelphiMD5.pas(17,6) Fatal: Kann Windows nicht finden verwendet von DelphiMD5 des Projektinspektors.

Projekt kompilieren, Ziel: DRK: Exit code 256, Fehler: 20, Hinweise: 5
DelphiMD5.pas(234,30) Error: Operator is not overloaded: "TUINT4Array" and "Byte"
DelphiMD5.pas(235,33) Error: Operator is not overloaded: "TUINT4Array" shr "ShortInt"
DelphiMD5.pas(236,33) Error: Operator is not overloaded: "TUINT4Array" shr "ShortInt"
DelphiMD5.pas(237,33) Error: Operator is not overloaded: "TUINT4Array" shr "ShortInt"
DelphiMD5.pas(258,16) Error: Illegal type conversion: "TByteArray" to "LongWord"
DelphiMD5.pas(258,36) Error: Illegal type conversion: "TByteArray" to "LongWord"
DelphiMD5.pas(259,5) Error: Illegal type conversion: "TByteArray" to "LongWord"
DelphiMD5.pas(259,36) Error: Illegal type conversion: "TByteArray" to "LongWord"
DelphiMD5.pas(288,10) Error: Incompatible types: got "TArray4UINT4" expected "LongWord"
DelphiMD5.pas(288,23) Error: Incompatible types: got "TArray4UINT4" expected "LongWord"
DelphiMD5.pas(288,36) Error: Incompatible types: got "TArray4UINT4" expected "LongWord"
DelphiMD5.pas(288,49) Error: Incompatible types: got "TArray4UINT4" expected "LongWord"
DelphiMD5.pas(360,2) Error: Operator is not overloaded: inc "TArray4UINT4"
DelphiMD5.pas(360,2) Error: Incompatible types: got "untyped" expected "TArray4UINT4"
DelphiMD5.pas(361,2) Error: Operator is not overloaded: inc "TArray4UINT4"
DelphiMD5.pas(361,2) Error: Incompatible types: got "untyped" expected "TArray4UINT4"
DelphiMD5.pas(362,2) Error: Operator is not overloaded: inc "TArray4UINT4"
DelphiMD5.pas(362,2) Error: Incompatible types: got "untyped" expected "TArray4UINT4"
DelphiMD5.pas(363,2) Error: Operator is not overloaded: inc "TArray4UINT4"
DelphiMD5.pas(363,2) Error: Incompatible types: got "untyped" expected "TArray4UINT4"
DelphiMD5.pas(461,17) Hint: Local variable "Context" does not seem to be initialized
DelphiMD5.pas(468,33) Hint: Local variable "Buffer" does not seem to be initialized
DelphiMD5.pas(475,17) Hint: Function result variable does not seem to be initialized
DelphiMD5.pas(482,17) Hint: Local variable "Context" does not seem to be initialized
DelphiMD5.pas(484,17) Hint: Function result variable does not seem to be initialized


Ach ja ich hatte in einen Post zuvor erwähnt, dass ich Lazarus verwende und nicht Delphi, für den Fall, dass dies noch nicht bekannt sein sollte und dies den Fehler verursachen sollte. Zudem Schreibe ich das Programm primär unter Linux und anschließend kompiliere ich es noch unter Mac und Windows 10. ...


Hänge mal deinen kompletten Code hier an. Da sehen wir mal wo es Nachholebedarf gibt.
Aber Du wolltest ja, dass ich mal meinen kompletten Code anhänge... Mein Du damit den Code aus meiner LogIn Unit oder das ganze Projekt? Ich füge erstmal nur den der LogIn Unit bei, fall das nicht reicht, dann bitte bescheid sagen....

Code:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, sqldb, db, FileUtil, Forms, Controls, Graphics, Dialogs,
  ComCtrls, ExtCtrls, StdCtrls, Buttons, Menus;

type

  { TForm1 }

  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    CheckBox1: TCheckBox;
    Image1: TImage;
    Benutzer: TLabeledEdit;
    Code: TLabeledEdit;
    MainMenu1: TMainMenu;
    MenuItem1: TMenuItem;
    MenuItem2: TMenuItem;
    StatusBar1: TStatusBar;
    Timer1: TTimer;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure CheckBox1Change(Sender: TObject);
    procedure CodeChange(Sender: TObject);
    procedure CodeKeyPress(Sender: TObject; var Key: char);
    procedure MenuItem2Click(Sender: TObject);
    procedure MenuItem4Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);


  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation
 uses Unit2, Unit3, Unit4;
{$R *.lfm}

{ TForm1 }
//Anzeige DATUM und Uhrzeit in der Statusleiste
procedure TForm1.Timer1Timer(Sender: TObject);
var
  hr, min, sec, msec: Word;

begin
DecodeTime(now, hr, min, sec, msec);
StatusBar1.Panels[1].Text := FormatDateTime ('dd.mm.yyyy, hh:nn:ss', Now);
Form2.StatusBar2.Panels[1].Text := FormatDateTime ('dd.mm.yyyy, hh:nn:ss', Now);
Form3.StatusBar1.Panels[1].Text := FormatDateTime ('dd.mm.yyyy, hh:nn:ss', Now);
Form4.StatusBar1.Panels[1].Text := FormatDateTime ('dd.mm.yyyy, hh:nn:ss', Now);
end;
//Abbruch des Logins und schließen des Programms
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  form2.close;
end;

// Passworteingabe durch Sternchen ersetzten
procedure TForm1.CodeChange(Sender: TObject);
begin
  Code.PasswordChar := '*';
end;
//Passworteingabe durch Sternchen deaktivieren
procedure TForm1.CheckBox1Change(Sender: TObject);
begin
   if CheckBox1.Checked then
      begin
      Code.PasswordChar := #0;
      end else
      begin
      Code.PasswordChar := '*';
      end
end;

//Mit Enter den LoginButton aktivieren
procedure TForm1.CodeKeyPress(Sender: TObject;
var Key: Char);
begin
  if Key = #13 then begin
    BitBtn1.Click; // or something else
    Key := #0;
  end;
end;

//LoginButton = true Weiterleitung zum MainForm und schließen LoginFenster
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  form3.dbf1.Filtered := false;
  form3.dbf1.Filter := Format('Ben = %s and Code = %s',[QuotedStr(Benutzer.text),QuotedStr(Code.Text)]);
  form3.dbf1.Filtered := true;
  form3.dbf1.First;
  if not form3.dbf1.EoF then begin
    form2.show;
    form1.close;
  end;
  form3.dbf1.Filtered := false;
end;

//Beenden des Programms durch das Mainmenü
procedure TForm1.MenuItem2Click(Sender: TObject);
begin
  form2.close;
end;

procedure TForm1.MenuItem4Click(Sender: TObject);
begin
  form3.showmodal;
end;

end.

Nochmals vielen Dank für die umfangreiche Hilfe, das ist nicht selbstverständlich und vor allem wird es in vielen Foren immer seltener...

Gruß

René
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:56 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 by Thomas Breitkreuz