:resize()

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12911
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

:resize()

Beitrag von AUGE_OHR »

hi,

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
kann man das nicht irgendwie besser "berechnen" ?

***

... 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 ?
gruss by OHR
Jimmy
Antworten