bei :resize werden ja die Parameter aOldSize und aNewSize übergeben.
nun kann man zum :resize mit "absolut %" oder mit einem "Faktor %" arbeiten
Code: Alles auswählen
// volle Grösse "aussen
aDraw := oDlg:CurrentSize()
oDraw := oDlg:drawingArea
aChild := oDraw:Childlist()
iMax := LEN(aChild)
oDraw:LockUpdate(.T.)
i := 1
FOR i := 1 TO iMax
aSize := aChild[i]:currentsize()
aPos := aChild[i]:currentPos()
aSize[1] := CalcSize(aSize[1],aOldSize[1],aNewSize[1])
aSize[2] := CalcSize(aSize[2],aOldSize[2],aNewSize[2])
aPos[1] := CalcPos(aPos[1],aOldSize[1],aNewSize[1])
aPos[2] := CalcPos(aPos[2],aOldSize[2],aNewSize[2])
aChild[i]:setposandSize(aPos,aSize)
DO CASE
Code: Alles auswählen
FUNCTION CalcSize(nSize,nOldSize,nNewSize)
LOCAL nNum
nNum := ROUND(nNewSize/nOldSize*nSize,0)
RETURN nNum
FUNCTION CalcPos(nPos,nOldSize,nNewSize)
LOCAL nNum
nNum := ROUND(nNewSize/nOldSize*nPos,0)
RETURN nNum
jemand eine Idee wie man das "ausgleichen" könnte ?