![]() |
Delphi-Version: XE2
Problem bei meinem Loginsystem & der Hauptunit
Hallo DP,
bei meiner neusten Übung ist ein kleines Loginsystem herausgekommen. (Unit3.pas). Der Code sieht wie folgt aus :
Delphi-Quellcode:
Jetzt habe ich noch eine neue Unit hinzugefügt (VCL Anwendungsform Unit1.pas) und würde diese gerne nach erfolgreichem einloggen öffnen lassen und das Loginfenster sollte sich schließen. Wie verwirkliche ich das in der Praxis?
unit Unit3;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Imaging.pngimage, Vcl.ExtCtrls, Vcl.ComCtrls, Unit1; type TForm3 = class(TForm) Edit1: TEdit; Button1: TButton; Edit2: TEdit; Label1: TLabel; Label2: TLabel; Image1: TImage; Image2: TImage; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form3: TForm3; trys: integer = 3; const pwd = 'password'; usr = 'admin'; implementation {$R *.dfm} procedure TForm3.Button1Click(Sender: TObject); begin if (edit1.Text= pwd) and (edit2.Text= usr) then Form3.Caption:=('Correct password') else Form3.Caption:=('Wrong password'); trys := trys-1; if trys=0 then close(); end; end. :?::( |
AW: Ptroblem bei meinem Loginsystem & der Hauptunit
Moin...
beim Ablauf der Versuche machst du es doch auch. Warum nicht auch bei richtigem Paßwort ?
Delphi-Quellcode:
- "Form3" entfernt
procedure TForm3.Button1Click(Sender: TObject);
begin if (edit1.Text= pwd) and (edit2.Text= usr) then Caption:=('Correct password'); Close; else Caption:=('Wrong password'); trys := trys-1; if trys=0 then Close; end; - Close hinzugefügt |
AW: Ptroblem bei meinem Loginsystem & der Hauptunit
Zitat:
|
AW: Problem bei meinem Loginsystem & der Hauptunit
Um eine Form zu schließen benutzt man den Befehl "Close". In deiner Anweisung
Delphi-Quellcode:
hattest du ihn schon drin. Nur in der Abfrage ob Paßwort korrekt fehlte er.
if trys=0 then Close;
...Ich sehe grade daß begin/end noch fehlt. (Koffeinmangel :oops:)
Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
begin if (edit1.Text= pwd) and (edit2.Text= usr) then begin Caption:=('Correct password'); Close; end else begin Caption:=('Wrong password'); trys := trys-1; if trys=0 then Close; end; end; |
AW: Problem bei meinem Loginsystem & der Hauptunit
Zitat:
|
AW: Problem bei meinem Loginsystem & der Hauptunit
Zitat:
|
AW: Problem bei meinem Loginsystem & der Hauptunit
War es nicht so, dass wenn Form3 das Hauptformular der Anwendung ist und man close aufruft, dass sich die Anwendung dann schliesst? :gruebel:
Ich mach sowas immer über modale Fenster:
Delphi-Quellcode:
Dann kann ich die Loginform an anderer Stelle schön verwenden:function TLoginForm.TryLogin:Boolean; begin Result := ShowModal = mrYes; end; function TLoginForm.LoginClick(Sender: TObject); begin if (edit1.Text= pwd) and (edit2.Text= usr) then begin Caption:=('Correct password'); ModalResult:=mrYes; end else begin Caption:=('Wrong password'); trys := trys-1; if trys=0 then ModalResult:=mrNo; end; end;
Delphi-Quellcode:
Alternativ kann man TryLogin auch statisch machen und TLoginForm dort drin erzeugen.
with TLoginForm.Create() do
try if TryLogin then begin //Show other Form NewForm.Show; // Falls noch nicht erzeugt erst NewForm := TNewForm.Create() aufrufen end else begin //Go back or close App end; finally Free; end; P.S.: Hab den Code jetz nirgends rauskopiert sondern wollte nur das Prinzip darstellen |
AW: Problem bei meinem Loginsystem & der Hauptunit
Liste der Anhänge anzeigen (Anzahl: 1)
Hier ein Screenshot
|
AW: Problem bei meinem Loginsystem & der Hauptunit
Kann es sein, dass du nur den Befehl "Form1.Show;" suchst? Einfach nach "Caption:=('Correct Password');"
|
AW: Problem bei meinem Loginsystem & der Hauptunit
Zitat:
Jetzt gehts
Delphi-Quellcode:
Caption:=('Correct password');
Form1.Show; Form3.Hide; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:22 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