Seite 1 von 1

Parent vs. Owner

Verfasst: Sa, 29. Apr 2017 10:19
von Manfred
wo liegt eigentlich der genaue Unterschied zwischen den beiden? Wenn ich über new() ein Objekt erzeuge können die beiden ja unterschiedlich sein. Aber was bringt mir das?

Re: Parent vs. Owner

Verfasst: Sa, 29. Apr 2017 10:55
von georg
Hallo, Manfred -


und dafür habe ich mir die Finger wundgetippt: http://wiki.xbaseentwickler.de/index.ph ... #Parameter Wir sprechen uns in Willingen!

Re: Parent vs. Owner

Verfasst: Sa, 29. Apr 2017 10:57
von Manfred
Au Georg,
mea culpa. An das Wiki habe ich gerade gar nicht gedacht. Hau meine eine rein, ich habe es verdient. :banghead:

Re: Parent vs. Owner

Verfasst: Sa, 29. Apr 2017 10:59
von Manfred
ok, dann stelle ich andersherum die Frage, was bringt es, wenn die verschieden sind?

Re: Parent vs. Owner

Verfasst: Sa, 29. Apr 2017 19:17
von AUGE_OHR
Manfred hat geschrieben:ok, dann stelle ich andersherum die Frage, was bringt es, wenn die verschieden sind?
ich verwende es mit o:moveWithOwner

Re: Parent vs. Owner

Verfasst: Sa, 29. Apr 2017 20:13
von georg
Hallo, Manfred -


mache doch ein kleines Experiment: Ein Programm mit einem XbpDialog() (und weise ihn der Variablen oRoot zu) und einem weiteren XbpDialog().

Wir gehen davon aus, dass oRoot ca. 80 % der Desktopgrösse hat und zentriert angezeigt wird. aPos für den zweiten XbpDialog() hat den Wert {10, 10}.

Erstelle den zweiten XbpDialog() zuerst einmal so:

Code: Alles auswählen

oXbp := XbpDialog():new(oRoot, oRoot, aPos, aSize)
Das zweite Fenster befindet sich innerhalb des ersten Fensters und kann nur innerhalb dieses Fensters bewegt werden.

Zweiter Versuch:

Code: Alles auswählen

oXbp := XbpDialog():new(oRoot, AppDesktop(), aPos, aSize)
Keine Veränderung (zumindest nicht auf Anhieb sichtbar).

Dritter Versuch:

Code: Alles auswählen

oXbp := XbpDialog():new(AppDesktop(), oRoot, aPos, aSize)
Der zweite XbpDialog() befindet sich nur teilweise ausserhalb von oRoot, und seine Positionierung bezieht nun auf AppDesktop() und nicht auf oRoot (sonst wäre der zweite XbpDialog() ja auch innerhalb von oRoot).

Parent und Owner bezeichnen verschiedene, logische Abhängigkeiten. Normalerweise (das sieht auch der Sprachstandard vor) ist der Owner identisch mit dem Parent, wenn kein Owner vorgegeben wird.

In meinen Anwendungen habe ich (soweit ich mich erinnern kann, und Du erinnerst Dich ja noch an mein fortgeschrittenes Alter) bisher immer oParent == oOwner verwendet.

Re: Parent vs. Owner

Verfasst: So, 30. Apr 2017 0:18
von AUGE_OHR
georg hat geschrieben:Dritter Versuch:

Code: Alles auswählen

oXbp := XbpDialog():new(AppDesktop(), oRoot, aPos, aSize)
das sind dann "freie" Fenster.

ein MDI Fenster hätte ja o:DrawingArea als Parent und wäre damit "im" Hauptfenster. damit ist es möglich Events weiterzuleiten.
bei meinem WMplayer gibt es zusätzliche Fenster z.b. Playlist. um die "magnetisch anzuheften" verwende ich das o:moveWithOwner.

bei den "freien" Fenster nützt es aber nichts was an den Parent, AppDeskTop(), zu schicken ... aber an den Owner.

Re: Parent vs. Owner

Verfasst: So, 30. Apr 2017 8:43
von brandelh
GUI Grundlagen in der Hilfe könnten nicht schaden ;-)

vereinfacht ausgedrückt...

oParent, worauf "liege" ich ... einfach die Positionierung relativ zu oParents Koordinaten
oOwner, wem gehöre ich ... welches Fenster (Control) muss gesperrt werden, wenn ich einen modalen Dialog aufmache.

Re: Parent vs. Owner

Verfasst: So, 30. Apr 2017 8:53
von Manfred
Hubert,
erwischt. Aber sage mal kurz, was ich Deiner Meinung nach durchlesen sollte. Vielleicht kapiere ich das ja dann...