AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Focus der Anwendung

Ein Thema von DieFliege · begonnen am 26. Sep 2016 · letzter Beitrag vom 26. Sep 2016
Antwort Antwort
DieFliege

Registriert seit: 6. Aug 2013
54 Beiträge
 
Delphi XE4 Professional
 
#1

Focus der Anwendung

  Alt 26. Sep 2016, 15:51
Hallo zusammen,

ich habe mal wieder eine (vermutlich) einfache Frage:

Ich habe mir ein kleines Programm gebastelt, was für mich in einem Browser einige Klicks durchführt. Dies onnte ich auch erfolgreich realisieren. Nun wollte ich mir dieses Programm etwas komfortabler gestalten und mir zwei Zähler einbauen. Die Zähler selbst funktionieren ebenfalls. Allerdings ist mir aufgefallen, dass diese Funktion beim Verlust des Focus meines Programms nicht weiter geführt wird. Hier einmal der Code:

Delphi-Quellcode:
procedure TForm1.btn_startClick(Sender: TObject);
begin
  //--
  btn_start.Visible := False;

  while runden > 0 do
  begin
    //------- hier die befehle aufführen, die je runde gemacht werden sollen
    //--------------- Klick hier und Klick da im Browser -------------------
    //----------------------------------------------------------------------
    lbl_runden.Caption := IntToStr(runden) + ' Runden';
    lbl_runden.Update;
    Sleep(5000);

    //-- ----- Restzeit Zähler -----
    for restzeit := restzeit downto 0 do
      begin
        //--
        lbl_restzeit.Caption := IntToStr(restzeit) + ' Sekunde(n)';
        lbl_restzeit.Update;
        Sleep(1000);
      end;
    //-- ----- beendet "while" -----
    runden := runden - 1;
    restzeit := 10;
  end;
end;
Wenn ich das Programm normal ausführe, ohne das ich im Browser rum klicke (also auch den Focus des Programms nicht verliere), funktioniert es problemlos. Starte ich das Programm und klicke irgendwo im Browser, werden die Zähler nicht mehr in Echtzeit fortgeführt, sondern nur am Ende angezeigt.

Meine Frage: Wie bekomme ich es hin, dass die Zähler trotzdem funktionieren, auch wenn das Programm gerade nicht den Focus hat?

Vorab schon mal vielen Dank für Tipps & Hinweise!

LG DieFliege
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: Focus der Anwendung

  Alt 26. Sep 2016, 17:44
Versuch statt lbl.Update mal Application.ProcessMessages oder noch besser: Lagere deinen Code in einen Thread aus, dann blockiert auch nicht die komplette GUI während du Sleep st.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
DieFliege

Registriert seit: 6. Aug 2013
54 Beiträge
 
Delphi XE4 Professional
 
#3

AW: Focus der Anwendung

  Alt 26. Sep 2016, 20:33
Hallo Zacherl,

vielen Dank für Deinen Hinweis - Dieser hat mir weiter geholfen. Auch werde ich mir die Tage einmal das Auslagern in einen Thread ansehen. Dir einen schicken Abend.

Grüßle - DieFliege
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Focus der Anwendung

  Alt 26. Sep 2016, 20:59
Oder statt einer Schlangencode und Sleep eine statusorientierten Code in einem/mehreren Timern.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:15 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