Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TForm mit Owner nie Active? (https://www.delphipraxis.net/94672-tform-mit-owner-nie-active.html)

Phoenix 25. Jun 2007 12:48


TForm mit Owner nie Active?
 
Ich baue seit langem mal wieder Komponenten.

Folgendes Problem: Komponente auf TForm, dieses TForm liegt auf einem Panel und dieses wiederum auf dem Mainform. Ich hab also so eine Art eingebette Form auf der meine Komponente arbeitet.

Frage ich von meiner Komponente nun ab: TCustomForm(owner).Active (also mein testform), dann bekomme ich immer false. TCustomForm(owner.owner.owner) (also das MainForm) liefert jedoch true.

Ich will aber, dass die Komponente ein Timerereignis nur auslöst, wenn das Parentform wirklich aktiv (= sichtbar) ist. Gibts da ausser Active noch ne andere Methode das rauszufinden?

Edit: Visible ist keine Option. Denn das property wird nie geändert. Wenn ein anderes Formular angezeigt wird, so wird der owner auf ein nicht sichtbares panel umgebogen. Ist eine etwas gewöhnungsbedürftige Architektur, aber da muss ich leider mit leben.

marabu 25. Jun 2007 13:38

Re: TForm mit Owner nie Active?
 
Hallo Sebastian,

ich habe das unbestimmte Gefühl, dass dieser Thread für dich interessant sein könnte: tastatureingabe an formularen

Freundliche Grüße

Phoenix 25. Jun 2007 14:45

Re: TForm mit Owner nie Active?
 
Ich habe das unbestimmte Gefühl, Du meinst diesen Beitrag von Dir hier. Nur leider hilft mir das nicht weiter.

Mit diesem Konstrukt auf meiner Komponente erhalte ich trotzdem immer das eigene Parent-Form, welches bei Active ein false zurückliefert.

Passe ich die Methode an dass sie in der Hierarchie weiter aufsteigt bekomme ich zwangsläufig immer das Mainform, und das liefert auch immer active, auch wenn das ursprüngliche Form nur irgendwo im Speicher rumliegt und nicht angezeigt wird.

Ich will einfach verhindern, dass das Control eine aufwändige Datenbankabfrage losschickt um Daten zu holen und auf andere Controls zu verteilen, die sich eh keiner angucken kann weil das Form nicht im Vordergrund ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:07 Uhr.

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