Resize von tdModal()-Window

Moderator: Moderatoren

Resize von tdModal()-Window

Beitragvon Christof » Do, 04. Dez 2008 14:40

Hallo,

vielleicht kann mir jemand einen Tipp geben.

Ich erzeuge ein Fenster über die tdModal()-Funktion. Wenn ich dieses Fenster jetzt vergrößere oder verkleinere sollen einfach nur alle Childs() neu positioniert und in der Größe proporional angepasst werden. Eigentlich war ich davon ausgegangen, dass Clayton dieses Verhalten eingebaut hat Das scheint aber nicht so zu sein. Das Fenster ändert zwar seine Größe, alle Childs (das sind 2 Browser und ein paar Schaltflächen) bleiben aber gleich groß und sitzen dann irgendwo links unten.

Kann ich die tdcDLG.PRG irgendwie einfach anpassen, dass dies dann bei "meinen" Fenstern funktioniert?

Danke und Gruß

Christof
Benutzeravatar
Christof
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 240
Registriert: Mo, 01. Okt 2007 16:14
Wohnort: Bedburg

Re: Resize von tdModal()-Window

Beitragvon Christof » Do, 04. Dez 2008 15:33

Vielleicht hilft hier noch der Code der Resize-Methode aus tdcDlg.PRG.

Code: Alles auswählen
******************************************************************************
*                     METHOD tdcDlg:resize()
******************************************************************************
METHOD tdcDlg:resize(aOld,aNew)
LOCAL oDa,nDaHt
LOCAL i,nLen

******* If using Top or Bottom Bars
IF ! empty(::oTopBar)
   ::oTopBar:resize()
ENDIF
IF ! empty(::oBottomBar)
   ::oBottomBar:resize()
ENDIF

******* If using Left or Right Bars
IF ! empty(::oLeftBar)
   ::oLeftBar:resize()
ENDIF
IF ! empty(::oRightBar)
   ::oRightBar:resize()
ENDIF

******* If using a scrolling window
IF valtype(::oBase) == "O"

   ******* resize
   ::oBase:setSize({::oBase:currentsize()[1]+(aNew[1]-aOld[1]),;
                    ::oBase:currentsize()[2]+(aNew[2]-aOld[2])})

   ******* repaint
   ::oBase:invalidaterect()

ENDIF


******* If using aRegit
IF ::aRegit != nil .AND. ! empty(::aRegit)
   oDa   := ::drawingarea
   nDaHt := oDa:currentSize()[2]
   nLen  := len(::aRegit)
   oDa:lockUpdate(.T.)
   IF nLen > 0
      FOR i := 1 TO nLen
         IF ::aRegit[i,1] != nil .AND. ::aRegit[i,1]:status() == XBP_STAT_CREATE
            ::aRegit[i,1]:setPos({::aRegit[i,2],nDaHt-::aRegit[i,3] })
         ENDIF
      NEXT
   ENDIF
   oDa:lockUpdate(.F.)
   oDa:invalidateRect()
ENDIF

RETURN self
*                End of METHOD tdcDlg:resize()
******************************************************************************
Benutzeravatar
Christof
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 240
Registriert: Mo, 01. Okt 2007 16:14
Wohnort: Bedburg


Zurück zu TopDown

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast