Seite 1 von 1

Animate / CenterControl()

Verfasst: Do, 09. Okt 2014 9:11
von AUGE_OHR
hi,

die Datei c:\ALASKA\XPPW32\Source\samples\basics\DBBMP\Animate.prg kennt ihr wohl.
nun ist es, wie viele GUI Sample, NICHT auf XbpDialog aufgebaut ... :(

das umschreiben war weniger das Problem ... aber ich bekam kein Bild zu sehen :angry4:

nun kann ich reproduzieren woran es bei mir lag

Code: Alles auswählen

   oDlg := XBPDIALOG() :new( APPDESKTOP(),,,,,.F. )
   oDlg:close := { | mp1, mp2, obj | lExit := .T. }
   oDlg:create()
   //
   // warum MUSS hier ein CenterControl() stehen ?
   //
   CenterControl(oDlg)
   oDlg:show()
und das macht für mich keinen Sinn ??? was macht CenterControl() hier "extra" und wie komme ich ohne CenterControl() zu einem Bild ???

Re: Animate / CenterControl()

Verfasst: Do, 09. Okt 2014 9:14
von brandelh
CenterControl() zentriert ein Control in seinem Parent, hier sollte es also den oDlg auf dem Bildschirm zentrieren.

Re: Animate / CenterControl()

Verfasst: Do, 09. Okt 2014 9:21
von AUGE_OHR
moin,
brandelh hat geschrieben:CenterControl() zentriert ein Control in seinem Parent, hier sollte es also den oDlg auf dem Bildschirm zentrieren.
"was" CenterControl() machen soll ich mir durchaus klar aber siehe dir bitte mal das Demo an und probiere es mit/ohne CenterControl().

Re: Animate / CenterControl()

Verfasst: Do, 09. Okt 2014 9:28
von brandelh
Hallo Jimmy,

habe dazu aktuell keine Zeit, die Maschine raucht ;-)
aber wenn dir klar ist, was centercontrol macht, dann müsste dir klar sein, dass es mit der Anzeige selbst nichts zu tun hat.
Es ändert nur die Position. Wenn dein Bild nicht angezeigt wird, könnte die Größe oder der letzte Parameter damit zu tun haben ...

Re: Animate / CenterControl()

Verfasst: Do, 09. Okt 2014 9:36
von AUGE_OHR
brandelh hat geschrieben:Es ändert nur die Position. Wenn dein Bild nicht angezeigt wird, könnte die Größe oder der letzte Parameter damit zu tun haben ...
Hubert, ich würde es nicht in das Forum stellen wenn es nicht wirklich merkwürdig wäre was da passiert und ich eine Idee hätte was da komisches passiert.

Re: Animate / CenterControl()

Verfasst: Do, 09. Okt 2014 10:51
von brandelh
ok, das centercontrol() verschiebt das control in die Mitte.
Nur wenn das Dialogfenster in der Mitte steht, werden die ... etwas seltsamen Größenberechnungen der Bitmap richtig durchgeführt, sonst scheinen die negative Werte zu erhalten.
Wenn man nämlich das "leere" Fenster größer macht, sieht man die Zahlen auf dem Kopf unten stehen.
Vermutlich wird die Grafikausgabe um die Zahlen erweitert, was bei größeren Werten oben Grafik unten Text und alles normal sichtig darstellt.
Woran das nun genau im Code liegt, sorry dafür ist mir das zu verworren (ich denke das ist ein typisches Alaska Beispiel, viele Funktionen und Klassen machen die Übersichtlichkeit nicht besser ;-) )

PS: bei Xbase 2.0 und 1.90.355 sehe ich keinen Unterschied, nur die Dateien liegen wo anders (fixe Pfade ! :roll: )

Re: Animate / CenterControl()

Verfasst: Do, 09. Okt 2014 21:08
von AUGE_OHR
brandelh hat geschrieben:Nur wenn das Dialogfenster in der Mitte steht, werden die ... etwas seltsamen Größenberechnungen der Bitmap richtig durchgeführt, sonst scheinen die negative Werte zu erhalten.
Wenn man nämlich das "leere" Fenster größer macht, sieht man die Zahlen auf dem Kopf unten stehen.
Aha ... ja ... das ist doch schon mal ein Tip wo ich ansetzten kann, Danke.