Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Ein Popup erscheinen lassen (https://www.delphipraxis.net/115232-ein-popup-erscheinen-lassen.html)

möp001 8. Jun 2008 20:40


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 :)

SirThornberry 8. Jun 2008 20:41

Re: Ein Popup erscheinen lassen
 
Zitat:

ein 2. Form erstellen und es dann mit Form2.Hide und Form2.Show erscheinen/verschwinden lassen?
ganz genau so :)

Nils_13 8. Jun 2008 20:45

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:
var Formular : TForm;
    i       : Integer;
begin
  for i := 0 to 99 do
  begin
    Formular := TForm.Create(Self);
    Formular.Caption := 'Formular'+IntToStr(i);
  end;
end;
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.

divBy0 8. Jun 2008 21:05

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;

thabaker 8. Jun 2008 22:00

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.

möp001 9. Jun 2008 18:04

Re: Ein Popup erscheinen lassen
 
mit inputquery oder inputbox ist es schlecht, ich möchte noch ein bild in dem popup haben.

Cyf 9. Jun 2008 19:02

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 hier helfen (erster Treffer einer großen amerikanischen, von mir eigentlich ungeliebten Suchmaschiene, keine Qualitätsgarantie von mir, weil nur schnell überflogen, aber such einfach mal nach "Delphi Dialog" irgendwo und du wirst viele Tutorials finden).
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;

möp001 9. Jun 2008 19:33

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.

Fussball-Robby 9. Jun 2008 19:36

Re: Ein Popup erscheinen lassen
 
Du musst auch schon eine 2. Form erstellen und den Unit-Namen auf den deiner 2. Form anpassen

möp001 9. Jun 2008 19:41

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 10:24 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