![]() |
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 |
Re: Abfrage von Text mit Komponente
OnCreate?
|
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! |
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
|
Re: Abfrage von Text mit Komponente
Zitat:
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, |
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!
|
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 |
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:
Das ist sauber und funktioniert ohne kranke Terminate oder Halt Aufrufe.
Procedure TmyLogin.btOkClick (Sender : TObject);
Var fMain : TMainForm; Begin If LoginOk Then Begin Application.CreateForm (fMain, TMainForm); fMain.ShowModal; fMain.Release; End; End; |
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. |
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 09:17 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