oParent, oOwner [ERLEDIGT]

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
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]

Beitrag von Manfred »

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.
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!!
Benutzeravatar
AUGE_OHR
Marvin
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

Beitrag von AUGE_OHR »

hi,
Manfred 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.
angenommen du hast eine XbpDialog. Nun öffnest du ein "Fenster" und
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 :Draw 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
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hiho,

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!!
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Beitrag von AUGE_OHR »

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.

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()
wenn du den ::oDraw rausnimmst und den Maindialog bewegst, dann
weist du was ich meine.

gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

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.
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
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

Beitrag von Manfred »

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.....
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!!
stevie
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 417
Registriert: Mo, 17. Sep 2007 18:20
Wohnort: Senftenberg
Kontaktdaten:

Re: oParent, oOwner

Beitrag von stevie »

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.
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).
Viele Grüße
Stevie
Antworten