Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Login erstellung/TTabControl (https://www.delphipraxis.net/92313-login-erstellung-ttabcontrol.html)

InZiDeR 17. Mai 2007 19:52


Login erstellung/TTabControl
 
Hi mal wieder 2 fragen ,finde in Tutorial und Kurse einfach nichts.

1 Frage.
Wie kann ich in mein Programm eine art Login einfügen.

zb: Name:dsd PW: fer=Nicht Aktzeptiert
Das er dann bestimmte sachen also Name:kalae PW:781 beiden sachen in der EXE Speichert
Und dann Name:kalae PW:781 =Aktzeptiert

wäre sowas in der art möglich?

2 Frage.
TTabControl ist ja eine einfachere art verschiedene Tools/Anwendungen in Programmen zu ordnen.
Blos ich komm einfach nicht klar damit,muss ich mal wieder befehle eingeben etc?

mkinzler 17. Mai 2007 19:55

Re: Login erstellung/TTabControl
 
Zu 1:Bastele die ein Formular dafür.
Zu 2:Befehle für was? das Wechseln des Avtiven Tabs oder was meinst du?

InZiDeR 17. Mai 2007 19:57

Re: Login erstellung/TTabControl
 
Zu 1:Kannst du mir für das Form ein kleines beispiel machen?
wäre echt net :wink:
Zu 2:Richtig :)

Real_Thunder 17. Mai 2007 20:05

Re: Login erstellung/TTabControl
 
Hallo InZiDeR erst,aö ein Herlzliches willkommen in der DP :hello:

Für eine art login gibt es viele möglichkeiten

Es kommt halt nur drauf an ob neue benutzer hinzugefügt entfernt oder das pw geändert wird...

wenn nicht reich eine einfach if abfrage.

zu den sachen mit der Tabcontrol.
am einfachsen ist es wenn du dir frames erstellst, und dann im onchangevent der Tabcontrol das jewailige fraume lädst bzw anzeigst
um zu erfahren welches gerade der aktibe tab ist gibt er den wert Tabcontrol1.Tabindex
diesen kannste dann mit case oder einer if abfrage auswerten.

Bitte für die zukunft beachten, immer nur ein thema pro threat machen.

MfG real Thunder

InZiDeR 17. Mai 2007 20:07

Re: Login erstellung/TTabControl
 
Ok ich merks mir,will aber auch nicht das ganze forum mit mehreren posts zuspammen. :-D

mkinzler 17. Mai 2007 20:08

Re: Login erstellung/TTabControl
 
Ich würde an deiner Stelle eine PageControl satt des TabControls nehmen.

SaFu 17. Mai 2007 20:30

Re: Login erstellung/TTabControl
 
Hab mal so in login gemacht ahbe dazu eine erste Form erstellt mit dem Login Benutzername und Benutzerpasswort mit einer Freigabe eines Button für den Administrator das man die Benutzernamen und Passwort anlegen bzw ändern kann

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var B,P :string ; begin   //Bsp. zur Anmeldung 18.04.2007                         Mittwoch
 if (Edit2.Text <> DateToStr(Date)) or (Edit1.Text <> FormatdateTime('dddd',Now)) then
    begin
     Table1.Open;
       //Benutzer wird gesucht
       if Table1.Locate('Benutzername',Edit1.Text, [LoCaseInsensitive])= True then
        begin
          B:= Table1.FieldByName('Passwort').AsString; //Übergabe von Feld "Passwort" an B
          P:= Table1.FieldByName('Administrator').AsString; //Übergabe von Feld "Admin" an P

       if Edit2.Text = B then //Vergleicht ein eingegebenes PW mit Ausgabe im Label
         begin
           Form2.Show;
           Form1.Visible:= False;
         end
       else
         begin
           MessageDlgPos('Benutzername oder Passwort falsch!',mtInformation,[mbOk],0,260,200);
         end;

       if P = 'Wahr' then //Adminrechte
         begin
           Form2.Button6.Visible:= True;
         end

       else
         begin
          Form2.Button6.Visible:= False;
         end;
       end

   else
    begin
      MessageDlgPos('Benutzername oder Passwort falsch!',mtInformation,[mbOk],0,260,200);
      Edit1.SetFocus;
    end;
  end

 else
   begin
     Form2.Show;
     Form2.Button6.Visible:= True;
     Form1.Visible:= False;
   end;
 Edit1.Clear;
 Edit2.Clear;
end;

und hier noch was damit du die Tabele dafür anlegen kannst mit einem bereits erstellten Admin konto

Delphi-Quellcode:
procedure TForm1.Tabelleerst;
Var B,P :string ; { Private declarations }
     Pfad :String;
begin
 Table1.close;
  getdir(0,Pfad);
   With Table1 Do //Tabelle erzeugen
     begin
      DatabaseName:= Pfad + '\Datenbank\'; //Pfad zur Tabelle
      Form10.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 //Datenfelder erzeugen
                begin
                 Clear;
                 Add('Nr.',ftAutoInc,0,True);
                 Add('Benutzername',ftString,30,True);
                 Add('Passwort',ftString,30,False);
                 Add('Administrator',ftboolean,0,False);
                end;
                  with IndexDefs do //Index Schlüssel erzeugen
                   begin
                    Clear;
                    Add('Nr','Nr.',[ixPrimary, ixUnique]); // Primär Index
                   end;
                    CreateTable;
                      begin  //User erzeugen
                       Table1.Open; //Tabelle öffnen zum Schreiben
                       Table1.Edit;
                       Table1['Benutzername']:= 'Admin';
                       Table1['Passwort']:= '123';
                       Table1['Administrator']:= True;
                       Table1.Post; //Eintrag übernehmen
                       Table1.Close; //Tabelle schließen
                      end;
                end;
        end;
     Table1.Active:= True; //Tabelle1 auf Form1 aktivieren
     Form10.Table1.Active:= True; //Tabelle1 auf Form10 aktivieren
end;
Sowas steht auch bereits in der Code libary habe es nur verbesseret so ist der Pfad der BD Variabel

Gruss Sascha hoffe das hilft dir

InZiDeR 17. Mai 2007 21:03

Re: Login erstellung/TTabControl
 
Hey,danke.
Das ist echt klasse,ich glaub in diesem Forum bin ich richtig :-D

EDIT:Aber es wäre schön wenn mich jemand mal in ICQ adden könnte.
Denn ich kapier so einiges nicht....

ICQ:482-021-130

.chicken 17. Mai 2007 21:36

Re: Login erstellung/TTabControl
 
Frag doch einfach hier ;-)

SaFu 17. Mai 2007 21:49

Re: Login erstellung/TTabControl
 
Genau wir beantworten dir bestimmt deine Fragen und es ist noch kein Meister vom himmel gefallen ich auch nicht

InZiDeR 17. Mai 2007 22:09

Re: Login erstellung/TTabControl
 
Also was muss ich jetzt mit dem Quellcode machen?
Also habe Form1 also den Login start auf soll ich auf aktion OneKlick beim button und dann alles einfügen oder wie?
Ich will das auch verstehen können :-D
http://img3.myimg.de/Hilfe0f6_thumb.jpg

mkinzler 17. Mai 2007 22:12

Re: Login erstellung/TTabControl
 
Genau. Beim Klick auf den Button die Eingaben überprüfen und dann Entscheiden ob das Programm fortgesetzt werden soll oder nicht.

SaFu 17. Mai 2007 22:12

Re: Login erstellung/TTabControl
 
ja mach dir 2 EditFelder auf dein form Blatt 1 fur Benutzername und eins fur Passwort dann noch ein anmelde Button in den du den Quellcode von oben reinlegst und den zweiten für die tabelle fühgst du unter FormShow deines Formblattes ein

Dann Platziere noche eine Table und eine Datasource auf dein Formblatt

SaFu 17. Mai 2007 22:17

Re: Login erstellung/TTabControl
 
Achso erstell dir noch ein zweites Formblatt mit einem DBGrid um dir die Benutzer und die Passwörter angucken zu können oder auch um sie zu ändern und neue anzulegen, bei mir ist es die Form 10 wie du erkennen kannst dort muss ebenfalls eine Datasource und eine table erstellt werden

InZiDeR 17. Mai 2007 23:37

Re: Login erstellung/TTabControl
 
Ich krieg es einfach nicht hin...also

1.Ich erstelle 2 edits 1 button
2.Füge in "Button1" dein oberen Quellcode ein (der erste ganz oben)
3.Fürge in "Form1" TDataSource und TTable ein
4.Erstelle Form2 und füge da TDBGrind ein und wieder ein TDaaSource so
5.Will programm starten..klappt net die befehle sind irgendwie falsch

fkerber 17. Mai 2007 23:40

Re: Login erstellung/TTabControl
 
Hi!

Was heißt denn klappt nit?
Welche Fehlermeldungen kommen?

Weißt du, was der Code bewirkt oder kopierst du ihn einfach nur? Bei Verständnisfragen helfen wir dir gerne weiter...



Ciao, Frederic

InZiDeR 18. Mai 2007 08:10

Re: Login erstellung/TTabControl
 
Das ist es ja ich will wissen wie es geht :)
Ich will das kapiern aber das geht irgendwie nicht.....
ist der ganze quellcode nur für den button?

Real_Thunder 18. Mai 2007 09:10

Re: Login erstellung/TTabControl
 
Ok, gehe mal dienen Code zeile für zeile durch, und sage uns was du nicht verstehst.
BZW Poste deinen Bisherigen code der LoginForm und makiere die zeilen die du nicht verstehst.

Es geht nicht, ist eine Sehr grobe fehlermeldung.. etwas spezifischer währe auch nett.

MfG Real Thunder

InZiDeR 18. Mai 2007 10:35

Re: Login erstellung/TTabControl
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var B,P :string ; begin   //Bsp. zur Anmeldung 18.04.2007                         Mittwoch
if (Edit2.Text <> DateToStr(Date)) or (Edit1.Text <> FormatdateTime('dddd',Now)) then
    begin
     Table1.Open;
       //Benutzer wird gesucht
       if Table1.Locate('Benutzername',Edit1.Text, [LoCaseInsensitive])= True then
        begin
          B:= Table1.FieldByName('Passwort').AsString; //Übergabe von Feld "Passwort" an B
          P:= Table1.FieldByName('Administrator').AsString; //Übergabe von Feld "Admin" an P

       if Edit2.Text = B then //Vergleicht ein eingegebenes PW mit Ausgabe im Label
         begin
           Form2.Show;
           Form1.Visible:= False;
         end
       else
         begin
           MessageDlgPos('Benutzername oder Passwort falsch!',mtInformation,[mbOk],0,260,200);
         end;

       if P = 'Wahr' then //Adminrechte
         begin
           Form2.Button6.Visible:= True;
         end

       else
         begin
          Form2.Button6.Visible:= False;
         end;
       end

   else
    begin
      MessageDlgPos('Benutzername oder Passwort falsch!',mtInformation,[mbOk],0,260,200);
      Edit1.SetFocus;
    end;
  end

else
   begin
     Form2.Show;
     Form2.Button6.Visible:= True;
     Form1.Visible:= False;
   end;
Edit1.Clear;
Edit2.Clear;
end;
Also soll dieser ganze code in den "OneKlickButton" in Form 1? Weil ich bezweifle das das so ist,kann es sein das in diesen quellcode alles zusammengemischt ist?

Real_Thunder 18. Mai 2007 11:26

Re: Login erstellung/TTabControl
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var B,P :string
begin
// waqs ist edit2 oder edit1 denn nu loginname oder datum ?? emienr meinung nach weg
if (Edit2.Text <> DateToStr(Date)) or (Edit1.Text <> FormatdateTime('dddd',Now)) then
    begin
     Table1.Open;
       //Benutzer wird gesucht
     
       if Table1.Locate('Benutzername',Edit1.Text, [LoCaseInsensitive])= True then
        begin
        //lasse dir hier den benutzernamen und dass paswort mal in einem label ausgeben um zu prüfen was er da eigebdlch rausholt
B
Ich werde dir mal ein ganz einfaches loginscript schreiben.. das du denn von dir aus weiterentwickeln kannst....
Es wird im laufe des tages mal hochgeladen

InZiDeR 18. Mai 2007 11:57

Re: Login erstellung/TTabControl
 
Guckst du hier:http://img241.imageshack.us/img241/4...tnetfc1.th.jpg
warum nimmt er das "begin" und das "end." am ende net an?

Real_Thunder 18. Mai 2007 13:58

Re: Login erstellung/TTabControl
 
Delphi-Quellcode:
begin;
das ";" hat gefehlt

und ein [delphi]end; fehlt auch noch am ende

InZiDeR 18. Mai 2007 14:12

Re: Login erstellung/TTabControl
 
Hier...
geht net
http://img241.imageshack.us/img241/8...kinckenfq3.jpg

Pass auf .....ich schik dir per PM mal meine pas dateien also das Projekt und dann kuckste mal...

Real_Thunder 18. Mai 2007 14:28

Re: Login erstellung/TTabControl
 
Delphi-Quellcode:
: string;
!

InZiDeR 18. Mai 2007 14:31

Re: Login erstellung/TTabControl
 
Ok,danke hab dir PM geschrieben

Real_Thunder 18. Mai 2007 17:41

Re: Login erstellung/TTabControl
 
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

SaFu 18. Mai 2007 17:49

Re: Login erstellung/TTabControl
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hab dir das mal schnell gemacht

Kannst es gleich testen

Sind noch einige feinheiten zu machen aber ich denke das hilft dir weiter

Viel spass :-D

SaFu 18. Mai 2007 17:58

Re: Login erstellung/TTabControl
 
Achso das mit dem datum und tag habe ich rein gemacht das wenn mal einer alle benutzer gelöcht hat das er mit dem Tag (ausgeschrieben) und mit dem Datum z.b. 17.12.2007 auch noch ins Programm kommt so zusagen ein hinter türchen :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:12 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