AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Button gibt sich selbst bei klick frei
Thema durchsuchen
Ansicht
Themen-Optionen

Button gibt sich selbst bei klick frei

Ein Thema von QuickAndDirty · begonnen am 20. Jan 2017 · letzter Beitrag vom 3. Feb 2017
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.993 Beiträge
 
Delphi 12 Athens
 
#11

AW: Button gibt sich selbst bei klick frei

  Alt 23. Jan 2017, 18:04
Wegoptimieren wird er das nicht. Sooooo schlau ist der nun auch nicht, daß er den Thread drumrum einfach weglässt.

Pssst: http://www.delphipraxis.net/179193-t...der-queue.html -> siehe Antwort #9 und hier nochmal die Kurzfassung davon:
Delphi-Quellcode:
TThread.CreateAnonymousThread(procedure
  begin
    Queue(AThread, procedure
      begin
        // mach hier irgendwas verzögert
      end);
  end).Start;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (23. Jan 2017 um 18:06 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.154 Beiträge
 
Delphi 10 Seattle Enterprise
 
#12

AW: Button gibt sich selbst bei klick frei

  Alt 23. Jan 2017, 18:07
Wahrscheinlich hat er in der Debug-Fassung keinen Haltepunkt da Inlining nicht deaktiviert wurde und der Compiler das inlined?
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.925 Beiträge
 
Delphi 12 Athens
 
#13

AW: Button gibt sich selbst bei klick frei

  Alt 24. Jan 2017, 09:11
Wahrscheinlich hat er in der Debug-Fassung keinen Haltepunkt da Inlining nicht deaktiviert wurde und der Compiler das inlined?
hm Der halte punkt war halt beim kompilieren weg(grün) .
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.925 Beiträge
 
Delphi 12 Athens
 
#14

AW: Button gibt sich selbst bei klick frei

  Alt 24. Jan 2017, 09:24
Wegoptimieren wird er das nicht. Sooooo schlau ist der nun auch nicht, daß er den Thread drumrum einfach weglässt.

Pssst: http://www.delphipraxis.net/179193-t...der-queue.html -> siehe Antwort #9 und hier nochmal die Kurzfassung davon:
Delphi-Quellcode:
TThread.CreateAnonymousThread(procedure
  begin
    Queue(AThread, procedure
      begin
        // mach hier irgendwas verzögert
      end);
  end).Start;
Ich mache wirklich alles im Hauptthread.... hab erst recht spät erkannt das es da noch an anderen Stellen Probleme gibt...wenn Sachen länger dauern...da steht noch ein größerer Umbau an. Ich wollte es halt möglichst leicht zu debuggen haben...

Queue funktioniert also bei mir bis her wie erwartet. Danke!
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.142 Beiträge
 
Delphi 10.3 Rio
 
#15

AW: Button gibt sich selbst bei klick frei

  Alt 24. Jan 2017, 10:30
Die Lösung hierfür heißt OnIdle...

Ich habe mir hierfür eine eigene FreeAndNIL -> ArcFreeAndNil -> KillLater geschrieben....
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.925 Beiträge
 
Delphi 12 Athens
 
#16

AW: Button gibt sich selbst bei klick frei

  Alt 24. Jan 2017, 11:21
Theoretisch wäre wohl sowas wie ein JobScheduler das richtige, welcher dann alles was man Queued in Application.OnIdle ausführt.Aber ich hab jetzt erstmal die Thread Geschichte.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.142 Beiträge
 
Delphi 10.3 Rio
 
#17

AW: Button gibt sich selbst bei klick frei

  Alt 24. Jan 2017, 12:04
Theoretisch wäre wohl sowas wie ein JobScheduler das richtige, welcher dann alles was man Queued in Application.OnIdle ausführt.Aber ich hab jetzt erstmal die Thread Geschichte.
Ja TIdleWorker... Von Sir Rufo
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.925 Beiträge
 
Delphi 12 Athens
 
#18

AW: Button gibt sich selbst bei klick frei

  Alt 24. Jan 2017, 17:13
Das mit TThread.Queue hatte zwar auf Windows geklappt und auch auf Android in allen Fällen außer in einem....

Nach dem Create eines Formulars wird der Style einer Componente nicht korrekt gerändert.
TThread.Queue(Liste.ApplyStyleLookup) löst das problem auf Windows
Aber in Android bleibt es falsch gerändert...

Hab dann nen JobScheduler für arme geschrieben...(hab deinen Post nicht gleich gesehen)
Damit funktioniert es wenn man

TJobScheduler.Queue(Liste.ApplyStyleLookup);
TJobScheduler.Queue(Application.ProcessMessages);

ausführt.

Es kann auch sein das nicht alles davon notwendig ist. Leider ist es ja unmöglich Erkenntnis darüber zu bekommen warum ein Style unvollständig gerändert wird.
Der JobScheduler arbeitet im Application.Idle Ereignis wenn die Liste mehr als null Jobs hat.

Warum sind so einfache Dinge, so schwierig zu lösen?
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.993 Beiträge
 
Delphi 12 Athens
 
#19

AW: Button gibt sich selbst bei klick frei

  Alt 24. Jan 2017, 18:03
Zitat:
TJobScheduler.Queue(Application.ProcessMessages);
In ProcessMessages werden die OnIdle-Ereignisse aufgerufen. (zumindestens im Windows)
Macht das hier dann einen Kreisaufruf? (eine Endlosschleife wäre auch cool ... je nachdem, wann man den Job aus der Queue entfernt)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.529 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Button gibt sich selbst bei klick frei

  Alt 24. Jan 2017, 21:06
Wir hatten doch schon mal so ein ähnliches Problem, wo ich eine Lösung mit TTask.Run vorgeschlagen hatte, funktioniert die hier nicht?

Siehe hier:
http://www.delphipraxis.net/1358288-post7.html
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz