Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Aufrufendes Formular ermitteln (https://www.delphipraxis.net/10170-aufrufendes-formular-ermitteln.html)

chruttli 12. Okt 2003 23:25


Aufrufendes Formular ermitteln
 
Hi @all

Ich habe da so ein kleines Konzeptproblem.

Ich habe in meiner Anwenung ein Formular, welches von verschiedenen Orten (andere Formulare) her aufgerufen wird. Das klappt alles sehr gut.
Nun zu meinem Problem:
Ich möchte nun, dass wenn ich mein Formular über den 'Zurück'-Button verlasse auf meine alte Form (der Aufrufer) zurückkomme.
Wie gehe ich dieses Problem an?

Ich überlegte mir so was wie die aufrufer Form vestecken und dann wieder sichtbar machen, aber das funzt in einer MDI Umgebung bekanntlich nicht *sniff*

Hat da jemand eine Lösung?

Christian Seehase 13. Okt 2003 00:30

Re: Aufrufendes Formular ermitteln
 
Moin Chruttli,

eine Idee hätte ich beizusteuern, da ich mir das Programm im Moment nicht so ganz vorzustellen vermag:

Ergänze das Formularobjekt, des Formulares, dass von verschienen Stellen aus genutzt wird, um eine Eigenschaft, in der Du vor dem Anzeigen des Formulares einträgst, welches Formular aufruft, und in der OnClick Methode des Zurück Buttons aktivierst Du dieses dann.

chruttli 13. Okt 2003 11:41

Re: Aufrufendes Formular ermitteln
 
Hi Christian

Dein Ansatz gefällt mir. Das sieht ganz nach der Lösung für mein Problem aus. Ich habe jedoch das Problem, dass ich dies noch nie gemacht habe.
Könntest du mir kurz erklähren, wie ich unter Delphi einen Konstruktor überlagere?

Ich nehme an, dass ich das so tun müsste, da ich unter MDI ja die Show-Methode nicht nutzen kann, nur die Create-Methode...

Vielen Dank für deine Hilfe
Chruttli

Christian Seehase 13. Okt 2003 16:12

Re: Aufrufendes Formular ermitteln
 
Moin Chruttli,

ach so, Dein Universalformular ist auch ein MDI Child. Dann musst Du immer prüfen, ob vom Aufrufer aus dieses nicht schon erzeugt wurde, und es ggf. nicht erzeugen, sondern nur dahin wechseln.

Wenn Du es dann so (oder ähnlich) erzeugst (ohne die o.g. Prüfung)

Delphi-Quellcode:
  with TForm2.Create(nil) do begin
    FUniversal := self;
  end;
sollte es sogar gehen, dass Du mehrere Universalformular gleichzeitig offen hast, wobei immer zum jeweils richtigen zurückverzweigt werden kann.
Das Universalformular darf natürlich nicht in der Projektdatei erzeugt werden.

chruttli 13. Okt 2003 17:19

Re: Aufrufendes Formular ermitteln
 
Vielen Dank, so funktioniert es bestens :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:22 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