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