Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Abfrage von Text mit Komponente (https://www.delphipraxis.net/62635-abfrage-von-text-mit-komponente.html)

kabuco 7. Feb 2006 13:57


Abfrage von Text mit Komponente
 
Hallo,

Ich möchte eine Komponente realisieren die einen Text abfragt bevor sich die MainForm öffnet ! Kann man das realisieren, und wenn ja wie?

MFG

kabuco

Sascha_OW 10. Feb 2006 11:57

Re: Abfrage von Text mit Komponente
 
OnCreate?

kabuco 13. Feb 2006 14:22

Re: Abfrage von Text mit Komponente
 
Also jetzt mal für dumme: Im OnCreate Ereignis der Komponente?
falls das der fall ist, bleibt immer noch die frage, wie ich verhindere, das die Form erst nach der richtigen eingabe aufgeht!

R2D2 13. Feb 2006 15:38

Re: Abfrage von Text mit Komponente
 
Schreib doch ins OnCreate-Ereigniss der Form, es solle ein Input-Feld kommen. Wenn die Eingabe fasch ist, dann wird die Anwendung beendet.
Delphi-Quellcode:
Application.terminate

-=wWw=- AK23 13. Feb 2006 16:03

Re: Abfrage von Text mit Komponente
 
Zitat:

Zitat von kabuco
Also jetzt mal für dumme: Im OnCreate Ereignis der Komponente?
falls das der fall ist, bleibt immer noch die frage, wie ich verhindere, das die Form erst nach der richtigen eingabe aufgeht!

nein, im OnCreate feld des forms.

Allerdings ist dieses ereignis ein wenig problematisch, da es sein kann, dass zwar dein Form erstellt wurde, die entsprechende Komponente noch nicht.

Nimm lieber das OnShow ereigniss des forms.

MfG,

kabuco 16. Feb 2006 11:24

Re: Abfrage von Text mit Komponente
 
Ich möchte ja nicht das INputFeld im Formular öffnen sonder per Komponente. Also die Komponente soll wissen, ob das MainForm geöffet widr, wenn ja soll es einen String abfrage. wenn dieser String richtig ist, soll die Form geöffnet werden!

gfjs 16. Feb 2006 11:50

Re: Abfrage von Text mit Komponente
 
Mein Tipp als Anfänger:

Im Startformular einen Dialog, der den Text abfragt. In's onClick-Ereignis des OK-Buttons die Prüfung, ob der Text okay ist. Wenn nein: Anwendung schließen oder Fehlermeldung mit erneuter EIngabe. Wenn ja: gewünschtes Formular öffnen und beim Schließen dieses Formulars die Anwendung schließen. Merkt ja keiner, dass das Formular mit dem Dialog nicht Dein MainForm ist. :wink:

mfg gfjs

alzaimar 16. Feb 2006 12:21

Re: Abfrage von Text mit Komponente
 
Ich mache es immer so:
Der 'Login-Dialog' ist das Hauptformular der Anwendung :zwinker:
Da ist ein OK und ein Cancel-Knopf drauf.
Delphi-Quellcode:
Procedure TmyLogin.btOkClick (Sender : TObject);
Var
  fMain : TMainForm;

Begin
  If LoginOk Then Begin
    Application.CreateForm (fMain, TMainForm);
    fMain.ShowModal;
    fMain.Release;
  End;
End;
Das ist sauber und funktioniert ohne kranke Terminate oder Halt Aufrufe.

turboPASCAL 16. Feb 2006 13:25

Re: Abfrage von Text mit Komponente
 
Liste der Anhänge anzeigen (Anzahl: 2)
Ich weiss jetzt nicht genau wann du das Passwort abfragen möchtest, vor dem Programmstart ?

In diesem Fall kanst du dir das Demo im Anhang mal ansehen. Vor dem Programmstart wird über eine eigene
InputBox eine Passwortabfrage realisiert. Auf Wunsch kann der Text mit einem PasswortChar (***) verborgen werden.

Delphi-Quellcode:
program Project1;
//...
var Pass: string;

BEGIN
  // function CustomInputBox(const ACaption, APrompt: string;
  //     var Value: string; UsePasswordChar: Boolean): Boolean;
  //
  // ACaption       : Titel des Dialoges
  // APrompt        : Text über dem Eingabefeld
  // Value          : Rückgabewert als String des Eingabefeldes
  // UsePasswordChar : Eingabetext verstecken / anzeigen
  // Rückgabewert   : TRUE wenn OK-Button gedrückt wurde, andernfalls FALSE
  //
  // Autor          : ????????? ( [url]http://www.swissdelphicenter.ch/de/showcode.php?id=709[/url] )
  // Edit by        : turboPASCAL

  if CustomInputBox('MyApplication', 'Passwort eingeben:', pass, True) then
  begin

    if pass = 'passwort' then // Das Passwort ist "passwort" ;)
    begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      Application.Run;
    end else
    begin
      MessageBox(0, 'Sorry, das Passwort ist nicht richtig.',
        'Information', MB_ICONERROR or MB_OK);
    end;

  end else
  begin
    MessageBox(0, 'Abbruch durch Benutzer',
      'Information', MB_ICONINFORMATION or MB_OK);
  end;
END.

kabuco 17. Feb 2006 15:33

Re: Abfrage von Text mit Komponente
 
Um das ganze noch mal klarer zu erklären:

Die Komponente wird in der Entwurfszeit auf die Form gezogen. Wenn man das Programm jetzt compiliert und ausführt, soll Die Komponente merken, wenn das Programm gestratet wird. Wenn das der fall sein solte (Wenn das Programm gestartet wird) soll die Komponente solange die MainForm unterdrücken, bis das Eingegebene Passwort richtig ist. Nur dann soll die erste Form ausgeführt werden. Ich möchte das nicht mit einem Code in dem Programmcode machen, sondern das alles in eine Komponente Packen.

MFG
kabuco


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 Uhr.
Seite 1 von 2  1 2      

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