Einzelnen Beitrag anzeigen

CHackbart

Registriert seit: 22. Okt 2012
260 Beiträge
 
#294

AW: Delphi 10.3 Rio ist da!

  Alt 17. Dez 2018, 17:47
Der Stacktrace wäre einmal interessant.
Klar gerne,

allerdings muss ich mal gucken, wie ich das ganze so debuggen kann, dass mir die IDE nicht einfriert.

Code:
System._DbgExcNotify(-7275600,0xfda11448,0xe13ed807,0xfda11448,0xe13ed807)
System.NotifyReRaise(0xfda11448,0xe13ed807)
System._RaiseAtExcept(0xfda11448,0xe13ed807)
System.Sysutils.ErrorHandler(25,0xe13ed807)
System.ErrorAt(25,0xe13ed807)
System.Error(System.reMonitorNotLocked)
System.TMonitor.CheckOwningThread(0xf7fd8ee8)
System.TMonitor.Exit(0xf7fd8ee8)
System.TMonitor.Exit(0xf7a09fd0)
Fmx.Graphics.TCanvas.Unlock(0xe2731158)
Fmx.Graphics.TCanvas.EndScene(0xfd97c740)
Fmx.Forms.TCustomForm.PaintRects(0xf84d9208,@0xff90ffa8: {{ = { = {Left = 0, Top = 0, Right = 1280, Bottom = 728}, = {TopLeft = { = { = {V = {0, 0}}, = {X = 0, Y = 0}}}, BottomRight = { = { = {V = {1280, 728}}, = {X = 1280, Y = 728}}}}}}},0)
:E1AE6F46 __stub_in660v62__ZN3Fmx5Forms17TCommonCustomForm10PaintRectsEPKN6System5Types6TRectFEi
Fmx.Platform.Ui.Android.TFormRender.Render(0xf84a61a0)
Fmx.Platform.Ui.Android.TFormRender.run(0xf84a61a0)
:E1E7DA6A L1
:E1E7DA6A L1

Der Code den ich verwende und der dann zu der Exception führt ist der hier:

Code:
procedure TfrmMain.SetMenuVisible(Avalue: Boolean);
begin
  if Avalue then
  begin
    TAnimator.AnimateFloat(layMenu, 'Position.X', 0, 0.2, TAnimationType.In,
      TInterpolationType.Sinusoidal);
    TAnimator.AnimateFloat(tcMain, 'Position.X', layMenu.Width, 0.2,
      TAnimationType.In, TInterpolationType.Sinusoidal);
  end
  else
  begin
   TAnimator.AnimateFloat(layMenu, 'Position.X', -layMenu.Width, 0.2,
      TAnimationType.Out, TInterpolationType.Sinusoidal);
    TAnimator.AnimateFloat(tcMain, 'Position.X', 0, 0.2, TAnimationType.Out,
      TInterpolationType.Sinusoidal);
   end;
end;
ersetzt man die Animation wie folgt:

Code:
procedure TfrmMain.SetMenuVisible(Avalue: Boolean);
begin
  if Avalue then
  begin
    layMenu.Position.X := 0;
    tcMain.Position.X := layMenu.Width;
  end
  else
  begin
    layMenu.Position.X := -layMenu.Width;
    tcMain.Position.X := 0;
end;
stürzt das nicht mehr ab. Allerdings verlagert sich dann das Problem bzw. tritt halt später auf.

Christian

Geändert von CHackbart (17. Dez 2018 um 18:00 Uhr) Grund: Codeschnipsel hinzugefügt
  Mit Zitat antworten Zitat