Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Form2 bei Form1 Oncreate aufrufen ! (https://www.delphipraxis.net/112638-form2-bei-form1-oncreate-aufrufen.html)

Delphiturbo 24. Apr 2008 19:09


Form2 bei Form1 Oncreate aufrufen !
 
Hi
ich bekomme immer Fehler, wenn ich versuche Form2 so aufrufe
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
if passwort='123' then
Form2.ShowModal();
end;
Form1 (MainForm) ist ein Login Fenster, wo man das Passwort eingibt
also wenn der User das Passwort vorher eingegeben hat und gespeichert, hat Form1
kein Sinn mehr. Deswegen wird zuerst überprüft on das Passwort richtig ist, wenn ja, dann wird Form2 aufgerufen sonst wird For1 (Mainform) angezeigt, damit der User das Passwort eingibt.

Wie kann ich das am besten machen ?

mkinzler 24. Apr 2008 19:13

Re: Form2 bei Form1 Oncreate aufrufen !
 
Auf jedenfall nicht im Create-Event. Besser vor dem Öffnen von Form1

Fussball-Robby 24. Apr 2008 19:13

Re: Form2 bei Form1 Oncreate aufrufen !
 
Tipp: Nicht das LogIn-Fenster sondern das HauptFenster deiner Anwendung sollte die MainForm sein.

Mfg

DeddyH 24. Apr 2008 19:28

Re: Form2 bei Form1 Oncreate aufrufen !
 
Die MainForm ist das Hauptfenster :mrgreen: . Das Problem ist, dass Form2 zum Zeitpunkt des Erstellens von Form1 (MainForm) noch gar nicht erstellt wurde. Deshalb reicht ein einfaches ShowModal nicht mehr aus.

Fussball-Robby 24. Apr 2008 19:34

Re: Form2 bei Form1 Oncreate aufrufen !
 
Mit Hauptfenster war aber jetzt nicht die MainForm gemeint, sondern das "zentrale" Fenster der Anwendung. Konnte mich nur gerade nicht richtig ausdrücken :mrgreen:

Larsi 24. Apr 2008 19:57

Re: Form2 bei Form1 Oncreate aufrufen !
 
Wie wärs mit OnShow?

DeddyH 24. Apr 2008 20:00

Re: Form2 bei Form1 Oncreate aufrufen !
 
Wie wärs mit OnButtonBestaetigenClick? Wenn ich mich einloggen will, muss ich ja im Login erstmal Benutzernamen und Kennwort eingeben. Das kann ich im OnCreate des Login-Formulars ja noch gar nicht.

toms 25. Apr 2008 06:10

Re: Form2 bei Form1 Oncreate aufrufen !
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo, im Anhang mal eine Möglichkeit, eine Login Form anzuzeigen

Prinzip: Login Form zeigen, falls Login ok Mainform zeigen.
Der Hauptcode ist in der dpr Datei zu finden.


Delphi-Quellcode:
var
  LoginForm: TfrmLogin;

begin
  Application.Initialize;

  // Login Fenster erzeugen
  with TfrmLogin.Create(Application) do
  try
    // Login Fenster anzeigen
    ShowModal;
    // Falls nicht OK Anwendung beenden
    if not (ModalResult = mrOK) then Exit;
  finally
    // Free wird auch ausgeführt bei Abbruch der Anwendung
    Free
  end;

  // Hauptform starten falls Login erfolgreich
  Application.CreateForm(TfrmMain, frmMain);
  Application.CreateForm(TfrmLogin, frmLogin);
  Application.Run;

end.

Delphiturbo 25. Apr 2008 11:54

Re: Form2 bei Form1 Oncreate aufrufen !
 
Liste der Anhänge anzeigen (Anzahl: 1)
Damit mein Ziel oder mein Problem bei euch klar wird, habe ich eine Skizze erstellt

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
// else oder error Fenster sind nicht erwünscht
begin
if edit1.text <> edit2.Text
then
begin
Form1.Show;
end;
if (password <> '123') and (edit1.text = edit2.Text) then
begin
Form2.Show;
end;
if (password = '123') and (edit1.text = edit2.Text) then
begin
Form3.Show;
end;
end;
Der Code soll bearbeitet werden, da mansch mal 2 Forms nach dem Klick auf Button1 (Start) aufgerufen werden !!!

DeddyH 25. Apr 2008 12:13

Re: Form2 bei Form1 Oncreate aufrufen !
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if edit1.text <> edit2.Text then
    begin
      Form1.Show;
    end
  else if (password <> '123') then
    begin
      Form2.Show;
    end
  else
    begin
      Form3.Show;
    end;
end;

Delphiturbo 25. Apr 2008 14:10

Re: Form2 bei Form1 Oncreate aufrufen !
 
Danke ! :)

Du hast else verwendet aber ich habe überliegt, es ist ok
Ich muss aber in Form2 (logIN Form) kein else verwenden.
Das ist gut gegen Hacker. Ich möchte keine Meldung anzeigen lassen, wenn der
User ein falsches Passwort eingibt

In Form2 möchte ich folgendes machen :

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var
password : String;
begin
Edit1.Text:=password;
if password = '123' then
Form3.Show
//else showmessage('bitte geben Sie das Passwort noch einmal ein !');
end;
end;

RavenIV 25. Apr 2008 14:23

Re: Form2 bei Form1 Oncreate aufrufen !
 
Ich hoffe nun mal, dass die Zeile
if password = '123' then
nur zu Demozwecken so geschrieben ist.

Sonst macht Dein Hinweis auf Hacker nämlich keinen Sinn.

Delphiturbo 25. Apr 2008 14:29

Re: Form2 bei Form1 Oncreate aufrufen !
 
Zitat:

Zitat von RavenIV
Ich hoffe nun mal, dass die Zeile
if password = '123' then
nur zu Demozwecken so geschrieben ist.

Sonst macht Dein Hinweis auf Hacker nämlich keinen Sinn.

was kann ich noch verstecken ? "if" ? :mrgreen:

aber womit kann ich es ersetzen ?
Mit case ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:35 Uhr.

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