AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Ist Parentform von Frame ein Modales Form?

Ein Thema von bernau · begonnen am 27. Mai 2021 · letzter Beitrag vom 27. Mai 2021
Antwort Antwort
Seite 1 von 3  1 23   
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.188 Beiträge
 
Delphi 10.3 Rio
 
#1

Ist Parentform von Frame ein Modales Form?

  Alt 27. Mai 2021, 12:49
Ich habe ein Frame, auf dem einige Buttons sind. Dieses ist entweder auf einem Modalen "oder" einem Nicht-Modalen Form plaziert. Das Frame erzeuge ich im OnCreate des Forms.

Wenn das Frame auf einem Modalen Form ist, dann möchte ich einen bestimmten Button ausblenden.

Eigentlich ist es kein Problem herauszufinden, ob das Form Modal ist:

isModal := (fsModal in TForm(owner).FormState);

Wenn ich diesen Code aufrufe, wenn das Form erzeugt ist, dann ist es kein Problem.

Aber... dieser Code Funktioniert nicht im Create oder Afterconstruction des Frames, da das Form "noch nicht" den Modalen Status hat.

Irgendeine Idee, wie ich sonst noch im Frame herausfinden kann, ob das Form mit ShowModal aufgerufen wird?
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.252 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Ist Parentform von Frame ein Modales Form?

  Alt 27. Mai 2021, 13:12
Könnte der Ansatz funktionieren? https://www.detlef-heibing.de/progra...und-holen.html
Interessant wäre für Dich in dem Zusammenhang die Methode GetModalWindow, wenn da ein Ergebnis <> 0 herauskommt, kannst Du das Fensterhandle mit dem Deines Fensters vergleichen.

[edit] Der Code ist allerdings schon etwas älter, statt der TList kannst Du auch eine generische Variante benutzen. [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
1.744 Beiträge
 
Delphi 7 Professional
 
#3

AW: Ist Parentform von Frame ein Modales Form?

  Alt 27. Mai 2021, 13:15
Ich frag' jetzt mal, ohne wirklich Ahnung zu haben:

Du willst doch wissen, ob das Parentform modal ist, fragst aber, ob der Owner modal ist. Parent ist nicht zwingend gleich Owner.

Was passiert, wenn Du Owner durch Parent ersetzt?

isModal := (fsModal in TForm(Parent).FormState); Klar, ggfls. muss vorher prüfen werden, ob Parent was zugewiesen wurde und wenn ja, ob das ein TForm ist.
  Mit Zitat antworten Zitat
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
148 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Ist Parentform von Frame ein Modales Form?

  Alt 27. Mai 2021, 13:43
Man könnte auch OnShow oder OnActivate vom Form auf den Frame umleiten. Das wird erst aufgerufen, nachdem
    Include(FFormState, fsModal); aufgerufen wird.
Bernd
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.029 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Ist Parentform von Frame ein Modales Form?

  Alt 27. Mai 2021, 14:00
Hi Bernau
Zitat:
Ich habe ein Frame, auf dem einige Buttons sind. Dieses ist entweder auf einem Modalen "oder" einem Nicht-Modalen Form plaziert. Das Frame erzeuge ich im OnCreate des Forms.
Was du da erzeugst, ist bestimmt die Frameinstanz, nicht den Frame selbst - der wird vor der ersten Form (in der Regel die Mainform) erstellt. Zu dem Zeitpunkt, wenn du nun die Form erzeugst, kannst du auf die Frameinstanz zugreifen, zB. in OnShow, und hier kannst du entscheiden, ob der Button sichtbar sein soll oder nicht.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.188 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Ist Parentform von Frame ein Modales Form?

  Alt 27. Mai 2021, 14:32
Ich frag' jetzt mal, ohne wirklich Ahnung zu haben:

Du willst doch wissen, ob das Parentform modal ist, fragst aber, ob der Owner modal ist. Parent ist nicht zwingend gleich Owner.

Was passiert, wenn Du Owner durch Parent ersetzt?

isModal := (fsModal in TForm(Parent).FormState); Klar, ggfls. muss vorher prüfen werden, ob Parent was zugewiesen wurde und wenn ja, ob das ein TForm ist.
Das Frame wird im OnCreate des Forms erzeugt.

Delphi-Quellcode:
myFrame := TMyFrame.Create(self);
myFrame.parent := self;
Wie du siehst, wird Parent erst im nächsten Befehl zugewiesen. Daher ist Parent im Create des Frames nil. Owner ist aber bekannt. Deshalb verwende ich owner.

Es ist ja auch nicht das Problem, an die Form zu kommen, auf dem das Frame sitzt. Die Form hat zu dem Zeitpunkt einfach noch nicht den Modal-Status. Das war mein Problem.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.188 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Ist Parentform von Frame ein Modales Form?

  Alt 27. Mai 2021, 14:43
Was du da erzeugst, ist bestimmt die Frameinstanz, nicht den Frame selbst - der wird vor der ersten Form (in der Regel die Mainform) erstellt. Zu dem Zeitpunkt, wenn du nun die Form erzeugst, kannst du auf die Frameinstanz zugreifen, zB. in OnShow, und hier kannst du entscheiden, ob der Button sichtbar sein soll oder nicht.
Es ist kein Problen, von der Form auf die Buttons des Frame zuzugreifen und dort Visible=False zu setzen. Diesen Code will ich mir aber sparen. Das Frame wird vielen verschiedenen Forms verwendet. Wenn ich das Ausblenden des Buttons im Frame einmal automatisiere, dann brauche ich das nicht in den vielen Forms, in dem das Frame erzeugt wird, zu machen.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de

Geändert von bernau (27. Mai 2021 um 14:46 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.188 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Ist Parentform von Frame ein Modales Form?

  Alt 27. Mai 2021, 14:49
Was du da erzeugst, ist bestimmt die Frameinstanz, nicht den Frame selbst - der wird vor der ersten Form (in der Regel die Mainform) erstellt. Zu dem Zeitpunkt, wenn du nun die Form erzeugst, kannst du auf die Frameinstanz zugreifen,
Oh... Jetzt erst deinen Satz verstanden

Warum sollte ich ein Frame erzeugen, wenn es noch nicht gebraucht wird? Das Frame wird erzeugt, wenn das Form erzeugt wird, in dem es benötigt wird.

Aber das ist auch nicht das Problem
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.188 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Ist Parentform von Frame ein Modales Form?

  Alt 27. Mai 2021, 14:53
Man könnte auch OnShow oder OnActivate vom Form auf den Frame umleiten. Das wird erst aufgerufen, nachdem
    Include(FFormState, fsModal); aufgerufen wird.
Das müsste ich aber im Code des Forms machen. Das will ich vermeiden, da es viele Forms gibt, die das Frame verwenden. Den Code will ich einmal im Frame haben. In den Forms soll einfach nur das Frame erzeugt werden. Keine zusätzlichen Zeilen. Ich möchte Code sparen und Fehler vermeiden.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
148 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Ist Parentform von Frame ein Modales Form?

  Alt 27. Mai 2021, 14:55
Dann könnte der Frame doch im Create beim Form das OnShow Event setzen und bei Bedarf auch sichern und dann hier im Event die Prüfung machen und OnShow wiederherstellen und aufrufen, falls gesetzt.
Bernd
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +2. Es ist jetzt 11:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf