Seite 2 von 2

Re: Parentangabe

Verfasst: Di, 13. Feb 2018 13:02
von Tom
Hantierst Du nach dem Erzeugen des (Teil)Dialogs noch irgendwo mit SetParent()?

Re: Parentangabe

Verfasst: Di, 13. Feb 2018 13:05
von brandelh
oder mit einem configure() ohne Parameter ;-)

Re: Parentangabe

Verfasst: Di, 13. Feb 2018 13:19
von Manfred
weder noch. Aber auch hier liegt die betonung bei: "Ich bin mir wenn dessen nicht bewußt."
Das einzige was ich mache, ist das ich einen Dialog aufbaue, in dem ich arbeite. Von dort rufe ich wieder einen Dialog auf und dann wieder. Aber jedesmal alles Local, so wie das Beispiel aussieht. Ob es da zu irgendwelchen Irritationen kommt? Ich habe keine Ahnung. Aber irgendwas blödes muß es ja sein.

Re: Parentangabe

Verfasst: Di, 13. Feb 2018 13:48
von Jan
Manfred,

viel konstruktives kann ich natürlich nicht dazu sagen, ich kenen halt von eXpress++ nicht viel mehr als den Namen und den Hauptzweck. Aber es sieht eben halt doch so aus, als ob Du die verschiedenen GUI-Elemente auf unterschiedliche Parents legst. Vermutlich einerseits auf den Dialog direkt und andererseits auf die :drawingArea. Kannst Du das steuern?

Ansonsten kannst Du natürlich als Workearound ein Static erzeugen in der Größe der :drawingArea, und Deine GUI-Elemente darauf als Parent legen. Etwas umständlich, und löst das eigentliche Problem nicht. Aber repariert zumindest das Anzeigeproblem.

Jan

Re: Parentangabe

Verfasst: Di, 13. Feb 2018 15:48
von Tom
Nee, Jan, er macht da schon alles richtig. Beim Erzeugen eines Dialogs über eXpress++ gibt man als Parent nur dann etwas an, wenn ein Objekt auf einem anderen liegt; der dahinterliegende Dialog ist das Default und dieser Dialog wird dann als erstes erzeugt. Ein Parent muss also nur angegeben werden, wenn es NICHT der Dialog ist. Da ist auch kein Fehler in Rogers Code. Das ist direktes, sauberes eXpress++. Und Manfred kann dort eigentlich auch nicht die DrawingArea des Dialogs ansteuern, weil die noch nicht existiert. Er tut's auch nicht. Aber er schubst irgendwo - in seinem Custom-Handler, in irgendeiner Funktion - versehentlich die Parents herum. In diesem Code hier aber nicht. Der ist sauber und gut aufgebaut. Würde man ihn - und nur ihn - in ein kompilierbares Beispiel überführen, gäbe es sicher auch keinen Fehler. Der steckt anderswo.

Re: Parentangabe

Verfasst: Di, 13. Feb 2018 16:15
von Jan
Tom,

hatte ich ja gesagt - zu eXpress++ selber kann ich halt wenig konstruktives sagen. Deswegen war das ja auch nur eine Vermutung - in pur Xbase++ (ja, ich weiß, auch eXpress++ ist Xbase++) hätte ich auf dieses Problem getippt.

Jan

Re: Parentangabe

Verfasst: Di, 13. Feb 2018 19:52
von Manfred
Hi Tom,
Tom hat geschrieben: Mo, 12. Feb 2018 10:31 Du musst überhaupt keinen Parent angeben, solange der Parent nicht etwas anderes als der Dialog ist, den Du sowieso gerade erzeugst (DCREAD ... PARENT @oDialog). Wenn Du Bereiche hast, die in einen anderen Parent laufen, etwa Elemente auf einer Groupbox, dann vereinfachen DCSETPARENT TO oGroup vor dem ersten Element und DCSETPARENT TO nach dem letzten den Code etwas.
das habe ich wohl irgendwie falsch verstanden. Ich habe gerade mal einen versuch gestartet. Ich habe ein Eval in DCREAD GUI eingebaut, mit dem ich eine routine aufrufe, die nur Altd() beinhaltet und den Dialog übergeben bekommt. Wenn ich den beiden DCGROUP den parent oDialog als parent angebe, dann kann ich in der Routine über dialog:childlist() alles sehen. Wenn ich den parent nicht angebe, dann wird auch nichts in der Childlist angezeigt. Von XbpIWindow mal abgesehen. Deinem Text entnehme ich aber, das es automatisch dem oDialog als Parent zugeordnet wird!?

Re: Parentangabe

Verfasst: Di, 13. Feb 2018 20:09
von Tom
Was passiert, wenn Du die objektrelativen Positionen DCGUI_PARENTWIDTH/HEIGHT mal gegen konkrete (1,2 oder so) austauschst?