![]() |
Ein Popup erscheinen lassen
Hallo
Ich möchte gerne, dass nach einem Buttonklick oder so ein neues Fenster aufgerufen wird und man dort eine Eingabe machen kann. Sowas wie ein Popup in einem Browser. Dieses sollte möglichst im Vordergrund sein, das heißt, wenn das programm i-wo im Hintergrund lläuft und man etwas anderes macht, dass das Popup dann im Vordergrund ist und man es sieht. Wie könnte man das mit Delphi realisieren? ein 2. Form erstellen und es dann mit Form2.Hide und Form2.Show erscheinen/verschwinden lassen? aber ich hab noch keine Komponente gefunden mit der man ein solches zweites Formular erstellen kann =/ Gibt es noch eine andere Lösung? Danke :) |
Re: Ein Popup erscheinen lassen
Zitat:
|
Re: Ein Popup erscheinen lassen
Du benötigst zum Erstellen an sich keine Komponente, das geht komplett über die IDE. Es klingt allerdings so, als wolltest du ein Formular dynamisch erzeugen. Folgender Code erzeugt 100 Formulare falls dich das weiterbringt:
Delphi-Quellcode:
In dieser Form könnte das bei den Freigaben aber Ärger geben, ein Array of TForm könnte aushelfen, außer die VCL gibt die Formen - wie ich denke - automatisch frei.
var Formular : TForm;
i : Integer; begin for i := 0 to 99 do begin Formular := TForm.Create(Self); Formular.Caption := 'Formular'+IntToStr(i); end; end; |
Re: Ein Popup erscheinen lassen
Vielleicht reicht dir ja das schon aus.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Eingabe: String; begin InputQuery('Überschrift', 'Eingabebeschreibung', Eingabe); end; |
Re: Ein Popup erscheinen lassen
sonst mal unter "ShowModal" in der Hilfe schauen... zeigt jedes bel. Fenster als Modales Fenster, d.h. man muss es erst abarbeiten bevor man mit der Anwendung weitermachen kann.
|
Re: Ein Popup erscheinen lassen
mit inputquery oder inputbox ist es schlecht, ich möchte noch ein bild in dem popup haben.
|
Re: Ein Popup erscheinen lassen
Ok, ich verusch mal zu helfen :wink:
Falls du nur eine Art von Dialog zur Benutzerinformation/-interaktion brauchst, sollte das ![]() Brauchst du ein etwas komplexeres Fenster, was erst geschlossen werden muss, ehe es weitergeht, dann mach dir ein neues Form, design es wie dus brauchst und öffne es mit ShowModal(), wie schon genannt wurde. Auch hierzu wird man fündig werden, wenn man weitere Infos braucht, ist aber eigentlich nicht schwer. Zum direkten Aufruf beim Start, kommt es darauf an was du machen willst: 1. Du willst etwas am schon bestehenden Form ändern, z.b. 100 Einträge in ein Memo-Feld schreiben, oder so etwas: Benutze das FormCreate() Ereignis, am einfachsten erstellst du es, wenn du einfach auf dein Form im Designer doppelklickst. 2. Du willst direkt beim Programmstart, vor der Form-Erstellung etwas machen (z.B. globale Variablen initalisieren, oder Randomize ausführen): Beachte zunächst, das du hierbei nicht auf Teile des Forms zugreifen kannst, da dieses noch nciht besteht. Erstelle im Code einen initialization-Abschnitt (nach der letzten Implementierung, vor dem end.) und führe dort den gewünschten Code aus. So hoffe das ist, was du suchst. :o [Edit: Beispiel anhängen] FolgenderCode erstellt bei Programmbeginn z.B ein modales Form dynamisch und wartet bis es gesclossen wird, ehe das Hauptform angezeigt wird:
Delphi-Quellcode:
uses
Windows, ..., MyModalFormUnit; //Unit des Forms in uses eintragen ... procedure TForm1.FormCreate(Sender: TObject); var ModalForm: TMyModalForm; //oder ggf. eine globale Variable verwenden und Free nicht verwenden, oder später initialisieren, kommt auf Zweck an begin ModalForm:= TMyModalForm.Create(Self); //Speicher allokieren, Instanz erstellen ModalForm.ShowModal; //Rückgabewert von ShowModal ggf. überprüfen, siehe Onlinehilfe ModalForm.Free; //Instanz freigeben end; |
Re: Ein Popup erscheinen lassen
danke erstmal :!:
hab alles so kopiert, kommt ein fehler: [Fataler Fehler] Unit1.pas(7): Datei nicht gefunden: 'MyModalFormUnit.dcu' eigentlich wollte ich nur ein neues formular erstellen, was dann i-wann erscheint, davor wollte ich aber noch sagen was dortdrin sein soll (image, edit, usw. . .). aber das zweite form sollte dem ersten untergeordnet sein, sodass ich werte zurückgeben kann. |
Re: Ein Popup erscheinen lassen
Du musst auch schon eine 2. Form erstellen und den Unit-Namen auf den deiner 2. Form anpassen
|
Re: Ein Popup erscheinen lassen
das is mir zu kompliziert >.<
ich wollte einfach nur sowas ähnliches wie diese inputbox erstellen, nur daneben soll ein kleines bildchen erscheinen und drüber ein wenig text |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 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