Einzelnen Beitrag anzeigen

AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
245 Beiträge
 
Delphi 12 Athens
 
#1

Eine Action (TActionList) für mehrere dynamische Komponenten führt zu Problemen

  Alt 19. Feb 2019, 16:30
Moin,

ich habe folgendes Problem:

Ich baue eine Maske auf, auf der man eine beliebige Anzahl von Audiodateien abspielen kann, indem für jede vorhandene Audiodatei ein passendes dynamisch erzeugtes Layout (Start/Pause-Button, Stop-Button, ProgressBar) angezeigt wird, d.h. jede Audiodatei hat ein "Mediaplayer-Layout".

Die ProgressBars dieser Layouts betreibe ich mithilfe einer "MediaPlayerCurrentTime"-Action, sodass diese ganz normal AktuelleZeit / Gesamtlänge der laufenden Audiodatei animiert anzeigen.
Das funktioniert so, dass beim Start drücken der entsprechende ProgressBar "MediaPlayerCurrentTime" als Action zugewiesen bekommt und bei Stop die Action-Eigenschaft wieder auf Nil gesetzt bekommt.

Das Problem dabei ist nun folgendes: Bei der ersten Audiodatei, die abgespielt wird, sieht alles ganz normal aus, doch danach bleibt die "MediaPlayerCurrentTime"-Action anscheinend krampfhaft an die erste benutzte ProgressBar gekoppelt, d.h. nur diese wird animiert, ganz gleich, auf welches Layout eigentlich zugegriffen wird.
Ich habe per Log die Eigenschaft MediaPlayerCurrentTime.Target an den entsprechenden Stellen überprüft und es steht immer die richtige ProgressBar drin, dennoch wird immer nur die ProgressBar angesteuert, die als erstes die Action zugewiesen bekam.

Ich habe unter Anderem auch probiert, inaktiven ProgressBars eine Dummy-Action zuzuweisen, leider auch ohne Erfolg.

Meine Erfahrung mit der Nutzung von Actions in Firemonkey beschränkt sich leider im Wesentlichen auf Fotos machen und das Steuern EINES Mediaplayer-Layouts, von daher weiß ich leider nicht genau, ob die Art und Weise, wie ich hier mit der Action umgehe, überhaupt so gedacht ist, da so ein dynamisches Zuweisen vorher nie nötig war.
Ich wäre für jeden Tipp oder Erfahrungsbericht dankbar...
  Mit Zitat antworten Zitat