![]() |
Button gibt sich selbst bei klick frei
Hallo,
Folgender Kontext: ich habe nen eine Listbox mit Listboxitems und auf den Listboxitems sind Speedbuttons welche beim antippen dafür sorgen das ein das entsprechende Listenelement gelöscht wird. Es wird freigegeben. Das hat lustigerweise in Delphi XE8 funktioniert. In Delphi Berlin kommt nun aber nach dem "Click Ereignis" noch ein Code für "TriggerTouchanimation", Das führt dann wohl zu einer Zugriffsverletzung da der Button schon mit dem Listenelement freigegeben ist. Der Button kommt durch einen Style auf das ListenItem. Kann es sein das Delphi XE8 die Controlls aus Styles hat länger leben lassen? Wie auch immer ich wollte das Problem lösen in dem ich eine WindowsMessage an einen Messagelistener im Formular schicke, in der Hoffnung das die Message erst abgearbeitet wird wenn die touchanimation beendet ist. Nun mal die Frage. Funktionieren Wondowsmessages in Android und IOS? Wie teile ich Einer multiplattform App mit , das sie was machen soll nach dem alles andere was gerade auf dem stack liegt erledigt ist? |
AW: Button gibt sich selbst bei klick frei
Entweder verzögert löschen.
Timer oder siehe TForm.Release Oder den nachfolgenden Code überspringen. Abort |
AW: Button gibt sich selbst bei klick frei
:(
Also es gibt keine MessageQueue mehr? Abort hört sich gut an. Das funktioniert bei Datenbanken ja auch. Gibt es sowas wie Release für alle GUI objekte? Weil ein ListItem ist ja nun keine TForm. Edit: Jo es gibt ein Release für TListitem, gleich mal testen Edit2: Release scheint zu funktionieren. Vielen Dank! Edit3: Realease scheint wohl nur unter Windows zufunktionieren. |
AW: Button gibt sich selbst bei klick frei
Zitat:
|
AW: Button gibt sich selbst bei klick frei
Zitat:
Edit: Thread.Queue bringt auch den Segmentationfault(11) nach dem Freigeben. Edit: Was ist ein PresentationProxy? Ich muss irgendwie die Nachricht PM_START_TRIGGER_ANIMATION and den PresentationProxy verhindern :( versuche jetzt den Ansatz mit "abort" |
AW: Button gibt sich selbst bei klick frei
Zitat:
Das "Freigeben" passiert in einer Refresh Methode die halt erst alles abräumt und dann alles neu lädt...die selbe Methode benutze ich beim erstellen des Formulars. Ich wünschte es gäbe einen offiziellen weg sowas anzuschieben ohne Abort. |
AW: Button gibt sich selbst bei klick frei
TThread-Queue führt nichts verzögert aus, wenn es im Hauptthread aufgerufen wird ... man müsste erst einen anderen Thread starten ud dann darin das Queue aufrufen :stupid:
|
AW: Button gibt sich selbst bei klick frei
Zitat:
Wäre die Methode zu bevorzugen? 1.Thread erzeugebn der dazu bestimmt ist die Oberfläche(Zwei TlistViews) neuzuladen. 2.Thread ausführen. 3.Im Thread Synchronisation mit Hauptthread auslösen durch Übergabe der Reload methode an TThread.Queue(nil,Reload); Wieso hat das alles unter Delphi XE8 geklappt? Gab es da die Touch-Animationen noch nicht? |
AW: Button gibt sich selbst bei klick frei
Hab in meiner "commonfunctions" unit folgendes gebaut
Delphi-Quellcode:
Rufe das wie folgt auf
TQThread = Class(TThread)
private Public ThreadMethod:TThreadMethod; Procedure Execute;Override; end; Procedure QueueMethod(aThreadMethod:TThreadMethod); implementation Procedure QueueMethod(aThreadMethod:TThreadMethod); var aThread:TQThread; Begin aThread := TQThread.Create(true); aThread.FreeOnTerminate := True; aThread.ThreadMethod := aThreadMethod; aThread.Resume; End; { TQThread } procedure TQThread.Execute; var i,j :integer; begin For i := 0 to 10 do j := j+1;// Damit der Kompiler die Zeile darunter nicht wegoptimiert. TThread.Queue(nil,ThreadMethod); end;
Delphi-Quellcode:
Funktioniert erschreckend gut. Bis jetzt. Werde es mal auf weitere bereiche ausdehnen und testen.Vielleicht funktioniert dann wieder alles wie es soll.
procedure TAuswahlView.Reload;
begin QueueMethod(self.InternalReload); end; |
AW: Button gibt sich selbst bei klick frei
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz