oParent, oOwner [ERLEDIGT]
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
oParent, oOwner [ERLEDIGT]
Hi,
ich hoffe das es hier rein kann.
Wofür bei den XbaseParts der Parameter oParent ist, ist mir schon klar. Da wird der neue Part reingelegt. Aber wozu ist eigentlich oOwner gut? Das kann ich irgendwie nicht verstehen, was man damit macht.
ich hoffe das es hier rein kann.
Wofür bei den XbaseParts der Parameter oParent ist, ist mir schon klar. Da wird der neue Part reingelegt. Aber wozu ist eigentlich oOwner gut? Das kann ich irgendwie nicht verstehen, was man damit macht.
Zuletzt geändert von Manfred am Mo, 24. Nov 2008 14:33, insgesamt 1-mal geändert.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: oParent, oOwner
hi,
gibt als Owner dein MainDialog an. so und nun "beweg" mal den Main-
Dialog. Das gilt nun für alle Ownerdraw Beispiele.
Ein ganz gutes Beispiel ist auch die OWTabPage die ich letztens im Forum
veröffentlicht habe. Wie unter XP Manifest hat der aktive TAB eine orange
Markierung, welcher in wirklichkeit ein owned Dialog ist (3 Pixel high).
Ich hab da noch extra eine Methode raw gemacht um den "richtigen"
Owner des owned Dialog anzugeben den sonst bleiben die "orangen"
Markierungen beim verschieben auf dem AppDeskTop() liegen.
gruss by OHR
Jimmy
angenommen du hast eine XbpDialog. Nun öffnest du ein "Fenster" undManfred hat geschrieben: Wofür bei den XbaseParts der Parameter oParent ist, ist mir schon klar. Da wird der neue Part reingelegt. Aber wozu ist eigentlich oOwner gut? Das kann ich irgendwie nicht verstehen, was man damit macht.
gibt als Owner dein MainDialog an. so und nun "beweg" mal den Main-
Dialog. Das gilt nun für alle Ownerdraw Beispiele.
Ein ganz gutes Beispiel ist auch die OWTabPage die ich letztens im Forum
veröffentlicht habe. Wie unter XP Manifest hat der aktive TAB eine orange
Markierung, welcher in wirklichkeit ein owned Dialog ist (3 Pixel high).
Ich hab da noch extra eine Methode raw gemacht um den "richtigen"
Owner des owned Dialog anzugeben den sonst bleiben die "orangen"
Markierungen beim verschieben auf dem AppDeskTop() liegen.
gruss by OHR
Jimmy
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hiho,
da merke ich wieder wo mein Horizont endet. Ich habe kein Wort verstanden.
da merke ich wieder wo mein Horizont endet. Ich habe kein Wort verstanden.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
hi,
ok ich versuche es mal so rum: normalerweise nimmt man die
:drawingArea, aber z.B. auf dem TAB der TabPage kann man ja
normalerweise nicht weiter plazieren.
also nehme ich nun ein ownerdraw XbPart, hier ein XbpDialog,
und "male" das über die Stelle die ich als aktive markieren will.
wenn du den ::oDraw rausnimmst und den Maindialog bewegst, dann
weist du was ich meine.
gruss by OHR
Jimmy
ok ich versuche es mal so rum: normalerweise nimmt man die
:drawingArea, aber z.B. auf dem TAB der TabPage kann man ja
normalerweise nicht weiter plazieren.
also nehme ich nun ein ownerdraw XbPart, hier ein XbpDialog,
und "male" das über die Stelle die ich als aktive markieren will.
Code: Alles auswählen
...
::XbpTabpage:create( oParent, oOwner, aPos, aSize, aPP, lVisible )
...
// set ::XbpTabpage:setParent() ...
IF ::oDraw = NIL
::oDraw := ::XbpTabpage:setParent():setParent():setParent():setParent()
ENDIF
// does not work this way
aPP := ::XbpTabpage:setPresParam()
// now create a owned XbpDialog
::oBmp:= XbpDialog():new( Appdesktop(), ::oDraw, aNewPos, aNewSize, aPP, .F.)
::oBmp:border := XBPDLG_NO_BORDER
::oBmp:titleBar := .F.
::oBmp:moveWithOwner := .T. // ist default für owner
::oBmp:create()
weist du was ich meine.
gruss by OHR
Jimmy
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hi Manfred,
es gibt ein schönes Beispiel, wo man probieren kann was das eine und was das andere macht. D:\Alaska\ALASKA.190\XPPW32\SOURCE\samples\basics\WINDOWS
Wenn man nur den ersten Parameter bestimmt (Parent) sind beide gleich, das ist denke ich der normale Zustand.
Der Parent regelt die Zusammenhänge der Vererbung. Z.B. wird die Schriftart vererbt, wenn keine neue definiert wurde. Wir der Parent disabled, werden auch alles childs (XbParts oder Fenster mit diesem Parent) disabled.
Ein Modaler Child sperrt den Parent ...
Der Owner regelt hauptsächlich die Anzeigegröße. Ich will z.B. nicht, dass eine Listbox über eine bestimmte Größe angezeigt wird. Die Listbox selbst kann ich aber da schlecht beeinflussen. Nun kann ich aber ein unsichtbares Static einbauen, und die Listbox als child des statics eintragen. Der 0,0 Punkt wird auch in Bezug zum Owner bestimmt, was beim Positionieren helfen kann.
Am Besten das Beispiel probieren und mal experimentieren.
es gibt ein schönes Beispiel, wo man probieren kann was das eine und was das andere macht. D:\Alaska\ALASKA.190\XPPW32\SOURCE\samples\basics\WINDOWS
Wenn man nur den ersten Parameter bestimmt (Parent) sind beide gleich, das ist denke ich der normale Zustand.
Der Parent regelt die Zusammenhänge der Vererbung. Z.B. wird die Schriftart vererbt, wenn keine neue definiert wurde. Wir der Parent disabled, werden auch alles childs (XbParts oder Fenster mit diesem Parent) disabled.
Ein Modaler Child sperrt den Parent ...
Der Owner regelt hauptsächlich die Anzeigegröße. Ich will z.B. nicht, dass eine Listbox über eine bestimmte Größe angezeigt wird. Die Listbox selbst kann ich aber da schlecht beeinflussen. Nun kann ich aber ein unsichtbares Static einbauen, und die Listbox als child des statics eintragen. Der 0,0 Punkt wird auch in Bezug zum Owner bestimmt, was beim Positionieren helfen kann.
Am Besten das Beispiel probieren und mal experimentieren.
Gruß
Hubert
Hubert
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: oParent, oOwner
Priiima,
es sieht so aus, als wenn es das ist, was ich die ganze Zeit gesucht habe.
Ich habe eine Applikation laufen, über die ein GUI geblendet wird, in der z.B. eine Personalnummer eingegeben werden muß. Jetzt hat es mich die ganze Zeit geärgert, dass dieses Eingabefenster auch schon mal durch irgendwelche Klicks mit der Maus in den Hintergrund verschwinden kann und dann tut sich bei der eigentlichen Applikation nichts mehr.
Das überlagerte Fenster wird mit dem Parent AppDesktop() und ohne speziell angegebenen Owner erzeugt. Wenn ich jetzt den Owner SetAppWindow() nehme, dann habe ich das was ich will. Das Eingabefenster kann selbst bewegt werden, aber sobald ich die Applikation bewege, bewegt sich das Fenster mit. Und es erscheint auch nicht in der Taskleiste.
Nagut, ob das jetzt alles nur ein Nebeneffekt ist und das Problem an sich anders gelöst werden sollte/müßte, bleibt jetzt einmal dahingestellt. Auf jeden Fall gefällt mir das jetzt schon besser als vorher.
Sollte ich auf dem Holzweg sein.....
es sieht so aus, als wenn es das ist, was ich die ganze Zeit gesucht habe.
Ich habe eine Applikation laufen, über die ein GUI geblendet wird, in der z.B. eine Personalnummer eingegeben werden muß. Jetzt hat es mich die ganze Zeit geärgert, dass dieses Eingabefenster auch schon mal durch irgendwelche Klicks mit der Maus in den Hintergrund verschwinden kann und dann tut sich bei der eigentlichen Applikation nichts mehr.
Das überlagerte Fenster wird mit dem Parent AppDesktop() und ohne speziell angegebenen Owner erzeugt. Wenn ich jetzt den Owner SetAppWindow() nehme, dann habe ich das was ich will. Das Eingabefenster kann selbst bewegt werden, aber sobald ich die Applikation bewege, bewegt sich das Fenster mit. Und es erscheint auch nicht in der Taskleiste.
Nagut, ob das jetzt alles nur ein Nebeneffekt ist und das Problem an sich anders gelöst werden sollte/müßte, bleibt jetzt einmal dahingestellt. Auf jeden Fall gefällt mir das jetzt schon besser als vorher.
Sollte ich auf dem Holzweg sein.....
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
-
- Rekursionen-Architekt
- Beiträge: 417
- Registriert: Mo, 17. Sep 2007 18:20
- Wohnort: Senftenberg
- Kontaktdaten:
Re: oParent, oOwner
Dann hättest du das Fenster ja auch modal anzeigen können, dann ist der Rest des Programms ja sowieso deaktiviert (für User-Interaktionen).Manfred hat geschrieben:Ich habe eine Applikation laufen, über die ein GUI geblendet wird, in der z.B. eine Personalnummer eingegeben werden muß. Jetzt hat es mich die ganze Zeit geärgert, dass dieses Eingabefenster auch schon mal durch irgendwelche Klicks mit der Maus in den Hintergrund verschwinden kann und dann tut sich bei der eigentlichen Applikation nichts mehr.
Viele Grüße
Stevie
Stevie