Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Timer oder sleep? (https://www.delphipraxis.net/11691-timer-oder-sleep.html)

steppo 11. Nov 2003 23:23


Timer oder sleep?
 
Hi Leute,
Ich habe mal im Web gesurft und bin auf ein Programm gestoßen, welches als Motivationsprogramm deklariert ist. Hat mich interessiert und ich habe es mir heruntergeladen. Das Programm ist einfach aufgebaut. Es wird eine Nachricht in einem durchsichtigen Fenster im Vordergrund angezeigt. Man kann den Hintergrund und die Schriftfarbe ändern, ebenso wie den Zeitintervall und die Anzeigedauer.
Also wie oft die Nachricht angezeigt werden soll und wie lange.
Die Anzeigedauer liegt zwischen 1er millisekunde und 30 sekunden.

Nun, habe ich mir gedacht, dass ist doch ein gutes Übungsobjekt und habe versucht dieses Programm nachzubauen.

Nun kommen wir zu den Problemen die dabei entstehen!

Egal ob ich Timer oder Sleep verwende, die Dauer meiner Anzeige stimmt nicht mit der Dauer des Originalprogrammes überein!
Das heißt stelle ich im originalprogramm 750 millisekunden ein, so ist die Nachricht für das Auge nicht mehr auf dem Bildschirm sichtbar. Im Gegensatz zu meinem Programm, wo die Nachricht noch sehr wohl zu sehen ist und das für einen Zeitraum von 750 millisekunden(schwer zu messen), aber ich denke es kommt ungefähr hin.

Nun die Frage:
Wie kommt dieser Unterschied zu stande?

negaH 11. Nov 2003 23:32

Re: Timer oder sleep?
 
Wahrscheinlich weil das Program alle 750 ms das Bild nur 1 ms lang anzeigt und dann wieder sofort ausblendet.

Ich vermute mal das dieses Program versucht "unterschwellige" Informationen darzustellen. D.h. die Texte/Informationen werden so schnell angezeigt das sie zwar vom Auge und Unterbewusstsein noch wahrgenommen werden, aber vom Bewusstsein nicht mehr verarbeitet werden können.

Dies ist doch die Aufgabe des Programmes ??

Im allgemeinen gilt die Regel: Der bewusste Sehprozess durch das Hirn kann nur alle 50 ms ein Bild umsetzen. Das Auge und das Unterbewusstsein nehmen aber schnellere Bildfolgen wahr.
Ich denke da nur an das Expoeriment mit den Kinobesuchern. Denen hatte man mitten im Film periodisch extrem kurzzeitig saftige Hamburger in den Film reingeschnitten. Diese Bilder sind nicht wahrnehmbar da zu schnell. Denoch sind mehr als 50% nach dem Film zu MC gelatscht.

Gruß Hagen

steppo 11. Nov 2003 23:56

Re: Timer oder sleep?
 
Hi negH,

So habe ich das noch gar nicht gesehen, aber jetzt wo du es sagst. Stimmt
Es kann nur darauf hinauslaufen, das dieses Programm unterschwellige Botschaften implementiert, wie hätte es sonst eine motivierende Wirkung?

Werde also Vorsichtig damit umgehen.

Aber meine Frage ist noch nicht beantwortet. Die Standardprogrammeinstellung besagt, dass jede Minute ein Botschaft für 50 millisekunden angezeigt wird. Also für das Auge gar nicht mehr zu erfassen.

Display Time Length: 750 millisekunden
Display always and pause every: 1 minute

stelle ich diese Werte in meinem Programm ein, so sehe ich die Botschaft immer noch. Gut ich muß die Botschaft dreimal laufenlassen bis ich die gesamte Meldung gelesen habe, aber sie ist Sichtbar.
Und selbst wenn ich die Anzeigedauer auf eine millisekunde einstelle, sehe ich das Ein - und Ausblenden der Botschaft.


Wie kann es zu solchen Unterschieden kommen, oder deute ich die oben gemachten Angaben falsch?

negaH 12. Nov 2003 09:13

Re: Timer oder sleep?
 
Es muß an der Art und Weise liege wie du das Bild auf dem Desktop anzeigst. Leider muß man direkt auf den Desktop zeichnen wenn man die höchste Performance haben will.

Erkläre mal wie du die Infos anzeigst.

Gruß hagen

steppo 12. Nov 2003 20:30

Re: Timer oder sleep?
 
Ich benutze ein Formular auf dem ein Label platziert ist. Das Label ist transparent un ddie Schrift im Label nahc einer gewissen Zeit über sleep in dem Label eingeblendet. Nach einer bestimmten Zeit wird die caption des Labels wieder auf Emptystring gesetzt. Die Funktion wird nun von neuem aufgerufen.

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled := not Timer1.Enabled;

  case Timer1.Enabled of
    False:
      begin
        Label1.Caption:='Test erfolglos';
        sleep(5000);
      end;
    True:
      begin
        Label1.Caption:=EmptyStr;
       Sleep(750);
      end;
  end;
Application.ProcessMessages;
  Timer1Timer(Self);
end;
Timer1 ist auf True gesetzt, damit er beim Programmstart sofort startet.

steppo 13. Nov 2003 11:12

Re:Timer oder sleep?
 
Hallo alle zusammen, die Frage ist immer noch aktuell.
kann mir da jemand weiterhelfen.

moin339 13. Nov 2003 11:21

Re: Timer oder sleep?
 
wie heißt eigentlich das programm? würde ich gerne mal testen..

steppo 13. Nov 2003 12:06

Re: Timer oder sleep?
 
das Programm heißt "Mega Motivator".

OLLI_T 13. Nov 2003 12:51

Re: Timer oder sleep?
 
Also Deine Timer-Methode ist schon mit eines der krassesten Konstrukte, die ich je gesehen habe!!! :-D.

Gruss

OLLI

steppo 13. Nov 2003 22:45

Re: Timer oder sleep?
 
Wie darf ich diese Aussage werten?

Zitat:

Zitat von OLLI_T
Also Deine Timer-Methode ist schon mit eines der krassesten Konstrukte, die ich je gesehen habe!!! :-D.

Krass = gut
Krass = schlecht
Krass = ungewöhnlich


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:50 Uhr.
Seite 1 von 2  1 2      

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