Code: Alles auswählen
CLASS MyDialog FROM XbpDialog
EXPORTED:
INLINE METHOD init()
SUPER:init()
RETURN SELF
INLINE METHOD scrollTop()
SendMessageA(::drawingArea:getHWND(), WM_VSCROLL, SB_TOP, 0 )
RETURN
INLINE METHOD scrollBottom()
SendMessageA( ::drawingArea:getHWND(), WM_VSCROLL, SB_BOTTOM, 0 )
RETURN
Lasse ich es weg, ist das Verhalten wie erwartet.
Ohne der Methode sollte doch automatisch das super:init aufgerufen werden, mit der Methode auch? Oder wird sie dann 2x gerufen? Warum dann aber das geänderte Verhalten?
Mein Aufruf:
Code: Alles auswählen
aFensterbedarf := {1300, 1250}
oFenster := MyDialog():new(SetAppWindow():drawingArea,,,,{{XBP_PP_FGCLR, val(aSystem[INIFARBEFENSTERFG])}})
oFenster:title := "Projekt..."
oFenster:icon := 1
oFenster:resize := {||oFenster:scrollBottom(), sleep(5), oFenster:scrollTop()}
oFenster:drawingarea:scrollbars := XBP_SCROLLBAR_HORIZ + XBP_SCROLLBAR_VERT
oFenster:border := XBPDLG_NO_BORDER
oFenster:create(,,, aFensterbedarf,, .f.)
oFenster:close := {||speicher_projekt(aEditControls), projekte->(dbunlock()), oFenster:destroy()}
oFenster:clipChildren := .f. // Neuzeichen
centerControl(oFenster)