Einzelnen Beitrag anzeigen

Real_Thunder

Registriert seit: 25. Apr 2006
197 Beiträge
 
#26

Re: Login erstellung/TTabControl

  Alt 18. Mai 2007, 18:41
So hier noch mal der Source fpr alle Newbees die auch soetwas vorhaben.

Vom aufbau her nur zur verständnisfrage gedacht, für einen praktischen Einsatz nicht geeignet !!!

Vorbereitung.
- Neue Vlc Formular Anwengung erstellen
- Neue Form Erstellen
- Alles in einem ordner Speichern (Name der Unit1 ist start.pas name der unit2 ist unit2 ist Main.pas
- Mit dem Explorer in den Ordner gehen, und dort einen ordner mit dem namen Datenbank erstellen

- auf dem Formular der Unit1 bzw Start.pas zieht ihr
- 3 TLabels
- 1 TTable
- 2 TEdits
- 1 TButton

- den TButton gebt ihr den namen LoginBtn den Beiden TeditFeldern die namen UserId und UserPw

die Unit1 bzw Start.pas Sollte dann So Aussehen:
Delphi-Quellcode:
unit Start;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, XPMan, DB, DBTables;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Image1: TImage;
    LoginBtn: TButton;
    XPManifest1: TXPManifest;
    UserID: TEdit;
    UserPW: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Table1: TTable;
    procedure FormCreate(Sender: TObject);
    procedure LoginBtnClick(Sender: TObject);
    Function LoginCheck(B,P:String):Integer;
    procedure ResetEdit(sender:TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

uses Main;

{$R *.dfm}




Function TForm1.LoginCheck(B,P:String):Integer;
Var
  CP :string;
begin
  result:=-1; // stadart Rückgabe
  Table1.Open; // Tabelle Öffnen
  if Table1.Locate('Benutzername',B, [LoCaseInsensitive])= True then begin // Prüfen ob der Benutzername Existtiert
    CP:= Table1.FieldByName('Passwort').AsString; // Passwort Auslesen
    if CP = P then begin // prüfen ob das Passwort Passt
      result:=2
    end else begin
      result:=1;
    end;
  end else begin
    result:=0;
  end;
end;


procedure TForm1.LoginBtnClick(Sender: TObject);
var LC:integer;
begin
  LC:= LoginCheck(UserId.Text,UserPw.Text);

  Case LC of
    0: UserId.Color:=ClRed;
    1: UserPw.Color:=Clred;
    2: begin
      Form2.Show;
      self.Visible:=false;
    end;
  end;
end;

procedure TForm1.ResetEdit(sender:TObject);
begin
  TEdit(Sender).Color:=ClWhite;
end;


procedure TForm1.FormCreate(Sender: TObject);
Var B,P :string ; { Private declarations }
     Pfad :String;
begin
  getdir(0,Pfad);
  With Table1 Do begin
    DatabaseName:= Pfad + '\Datenbank\';
    Table1.DatabaseName:= Pfad + '\Datenbank\';
    TableName:= 'Benutzerverwaltung.DB';
    TableType:= ttParadox;
  end;
  if not FileExists(Pfad + '\Datenbank\Benutzerverwaltung.DB') then begin
    With Table1 Do begin
      with FieldDefs Do begin
        Clear;
        Add('Nr.',ftAutoInc,0,True);
        Add('Benutzername',ftString,30,True);
        Add('Passwort',ftString,30,False);
      end;
      with IndexDefs do begin
        Clear;
        Add('Nr','Nr.',[ixPrimary, ixUnique]); // Primär Index
      end;
      CreateTable;
      begin
        Table1.Open; //Tabelle öffnen zum Schreiben
        Table1.Edit;
        Table1['Benutzername']:= 'Admin';
        Table1['Passwort']:= '123';
        Table1.Post; //Eintrag übernehmen
        Table1.Close; //Tabelle schließen
      end;
    end;
  end;
  Table1.Active:= True;
end;



end.
Sollte es fragen, geben dann fragt

MfG Real Thunder
  Mit Zitat antworten Zitat