wie das :resize() an-und-für-sich funktioniert ist mir schon klar, aber manchmal ...
angenommen ich habe 12 Pushbutton in einer Groupbox, alle schön in der Reihenfolge F1-F12.
nun führe ich irgendwo ein ::oPBF09:configure() aus und die Reihenfolgen in der :Childlist() "stimmt" dann nicht mehr weil "F9" nun am Ende ...
Frage : wie bekomme ich beim :resize trotzdem die "richtige" Reihenfolge wieder hin ?
***
Bei XbpStatic kann ich per :Caption jedes Element in der :Childlist "identifizieren", aber wie stelle ich fest welche XbpSLE in der :Childlist() gerade "dran" ist ?
***
Wenn ich nun :SetSize() oder :SetPosAndSize() verwende wird dadurch nun "automatisch" auch ein xbeP_Resize Event für das entsprechende Object erzeugt,
oder muss ich noch ein PostAppEvent(xbeP_Resize,{1,1},aNewSize,aChild) losschicken ?
... und wenn ich die ganzen PostAppEvent() schicken müsste ... wann kommen die "an" ? (bin ja noch in der FOR/NEXT :Childlist() )
***
angenommen ich habe 5 Tabpage auf einem XbpDialog den ich :resize()
Frage : werden dann alle 5 Tabpages "bearbeitet" oder nur die "aktive" Tabpage die ich "sehe" ?
... und wenn ich dann auf die "nächste" Tabpage clicke erst dann "die" :resize() ?
***
mittels GraQueryBox() kann ich ja die "Breite" berechnen die ich benötige, aber was ist mit der "Höhe" ?
ich möchte also den "maximal" grössten Font benutzen den das :resize() zulässt, aber ich will nicht "probieren" was passt
Code: Alles auswählen
aListSize := oaMid[2]:CurrentSize() // current Size
// add Diff
oaMid[2]:setSize({aListSize[1]+xDiff1,aListSize[2]+yDiff1}, lPaint)
IF oaMid[2]:numItems() = 0
oaMid[2]:addItem("this is a Test String")
ENDIF
DO CASE
CASE (aListSize[2]+yDiff1) > 0 .AND. (aListSize[2]+yDiff1) <= 100
oaMid[2]:setPresParam(XBP_PP_COMPOUNDNAME,"8.Arial")
CASE (aListSize[2]+yDiff1) > 100 .AND. (aListSize[2]+yDiff1) <= 200
oaMid[2]:setPresParam(XBP_PP_COMPOUNDNAME,"10.Arial")
CASE (aListSize[2]+yDiff1) > 200 .AND. (aListSize[2]+yDiff1) <= 300
oaMid[2]:setPresParam(XBP_PP_COMPOUNDNAME,"12.Arial")
CASE (aListSize[2]+yDiff1) > 300 .AND. (aListSize[2]+yDiff1) <= 400
oaMid[2]:setPresParam(XBP_PP_COMPOUNDNAME,"14.Arial")
CASE (aListSize[2]+yDiff1) > 400 .AND. (aListSize[2]+yDiff1) <= 500
oaMid[2]:setPresParam(XBP_PP_COMPOUNDNAME,"16.Arial")
CASE (aListSize[2]+yDiff1) > 500 .AND. (aListSize[2]+yDiff1) <= 600
oaMid[2]:setPresParam(XBP_PP_COMPOUNDNAME,"18.Arial")
CASE (aListSize[2]+yDiff1) > 600 .AND. (aListSize[2]+yDiff1) <= 700
oaMid[2]:setPresParam(XBP_PP_COMPOUNDNAME,"20.Arial")
CASE (aListSize[2]+yDiff1) > 700 .AND. (aListSize[2]+yDiff1) <= 800
oaMid[2]:setPresParam(XBP_PP_COMPOUNDNAME,"22.Arial")
CASE (aListSize[2]+yDiff1) > 800 .AND. (aListSize[2]+yDiff1) <= 900
oaMid[2]:setPresParam(XBP_PP_COMPOUNDNAME,"24.Arial")
CASE (aListSize[2]+yDiff1) > 900 .AND. (aListSize[2]+yDiff1) <= 1000
oaMid[2]:setPresParam(XBP_PP_COMPOUNDNAME,"26.Arial")
CASE (aListSize[2]+yDiff1) > 1000 .AND. (aListSize[2]+yDiff1) <= 2000
oaMid[2]:setPresParam(XBP_PP_COMPOUNDNAME,"28.Arial")
ENDCASE
***
... und dann wäre da noch die Frage nach dem "flickern" ... könnte man nicht den ganzen "Inhalt" (:drawingArea) ausblenden und nur einen Frame anzeigen
während man :resize()d UND man die (linke) Maustaste noch nicht "losgelassen" hat ?