Hallo Zusammen
Ich habe vor ca. 10 Jahre meine Zeit- und Auftragsbearbeitung-App geschrieben. Durch die vielen Android Änderungen und Updates ist meine App immer instabiler geworden. Ich habe versucht, die MsgBox und die DoEvents zu ersetzen, weil ich darin die Ursache der Abstürze vermutete. Leider kann ich nicht alle ersetzen, weil ich viele MsgBox-Anweisungen in statischen Modulen verwende und dort nicht funktioniert. Das zweite Problem ist momentan aber vor allem ein DoEvent in einer Prozedur eines statischen Moduls.
Mit diesem Code und der Höhe -2 füge ich dynamisch hohe Buttons in die Aktivität ein und erhalte immer die effektive Höhe der Buttons zurück. Ich benötige die effektive Höhe, damit ich weitere Elemente unter dem Button platzieren kann.
Wenn ich DoEvents durch Sleep(0) ersetze, werden alle Elemente übereinander eingefügt.
Hat jemand eine Idee wie ich meinen Code anpassen muss damit der Button eingefügt wird und ich die effektive Höhe zurück erhalte.
Ich habe vor ca. 10 Jahre meine Zeit- und Auftragsbearbeitung-App geschrieben. Durch die vielen Android Änderungen und Updates ist meine App immer instabiler geworden. Ich habe versucht, die MsgBox und die DoEvents zu ersetzen, weil ich darin die Ursache der Abstürze vermutete. Leider kann ich nicht alle ersetzen, weil ich viele MsgBox-Anweisungen in statischen Modulen verwende und dort nicht funktioniert. Das zweite Problem ist momentan aber vor allem ein DoEvent in einer Prozedur eines statischen Moduls.
Mit diesem Code und der Höhe -2 füge ich dynamisch hohe Buttons in die Aktivität ein und erhalte immer die effektive Höhe der Buttons zurück. Ich benötige die effektive Höhe, damit ich weitere Elemente unter dem Button platzieren kann.
Wenn ich DoEvents durch Sleep(0) ersetze, werden alle Elemente übereinander eingefügt.
Hat jemand eine Idee wie ich meinen Code anpassen muss damit der Button eingefügt wird und ich die effektive Höhe zurück erhalte.
B4X:
Sub AddImgButton (objActivity As Activity, objView As Panel, objButton As Button, objBitmap As Bitmap, intBmpHeihgt As Int, intLeft As Int, intTop As Int, intWidth As Int, intHeihgt As Int)
Dim imgImage As ImageView
Dim objReflector As Reflector
If objBitmap.IsInitialized Then
imgImage.Initialize("")
imgImage.Bitmap = objBitmap
End If
If intHeihgt = -2 Then
objActivity.AddView(objButton, objActivity.Width, objActivity.Top, intWidth, intHeihgt)
objButton.Padding = Array As Int (10dip, 10dip, intBmpHeihgt + 10dip, 10dip)
DoEvents
objReflector.Target = objButton
intHeihgt = objReflector.RunMethod("getHeight")
objButton.RemoveView
End If
objView.AddView(objButton, intLeft , intTop, intWidth, intHeihgt)
objButton.Height = intHeihgt
If Bit.And(objButton.Gravity, 0xf0) = Gravity.CENTER_VERTICAL Then
intTop = intTop + (intHeihgt/2) - (intBmpHeihgt/2) - 1dip
Else If Bit.And(objButton.Gravity, 0xf0) = Gravity.TOP Then
intTop = intTop -1dip
End If
If objBitmap.IsInitialized Then objView.AddView(imgImage, intLeft + intWidth - intBmpHeihgt - 10dip , intTop , intBmpHeihgt, intBmpHeihgt)
End Sub