AGB  ·  Datenschutz  ·  Impressum  







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

Uhr ohne Hilfe vom "Ttimer" erstellen

Offene Frage von "poloroyd"
Ein Thema von poloroyd · begonnen am 27. Apr 2010 · letzter Beitrag vom 30. Apr 2010
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
poloroyd

Registriert seit: 27. Apr 2010
1 Beiträge
 
#1

Uhr ohne Hilfe vom "Ttimer" erstellen

  Alt 27. Apr 2010, 19:31
moin moin,

ich hab da eine kurze Frage an euch, ihr lieben. Und zwar haben wir als 12KlasseKurs eine schwierige Hausaufgabe gekriegt:

Wir sollen eine analoge und eine digitale Uhr erstellen (mit Sekundenzeiger) ohne Hilfe vom "Ttimer"...wie bitte ???

weiss echt nicht wie das gehen soll...hat einer von euch eine idee ?? wäre echt nett wenn ihr mir helfen würdet. mfg Jessica.
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Uhr ohne Hilfe vom "Ttimer" erstellen

  Alt 27. Apr 2010, 19:44
Schaue einmal

hier
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#3

Re: Uhr ohne Hilfe vom "Ttimer" erstellen

  Alt 27. Apr 2010, 19:46
Hallo und Willkommen in der DP ,
mir fällt da spontan eine gewollte Endlosschleife ein (am Besten in einem Thread), die laufend die Uhrzeit abfragt und die Uhr ggf. zeichnet.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Uhr ohne Hilfe vom "Ttimer" erstellen

  Alt 27. Apr 2010, 19:49
Wie genau lautet die Aufgabenstellung? Wenn wirklich nur TTimer verboten ist würde ich einfach die Api-Funktion verwenden um einen Timer zu erstellen. Dort kann man dann auch noch unterscheiden zwischen der Möglichkeit das ganze per Callback oder per Message zu bewerkstelligen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
David Martens

Registriert seit: 29. Sep 2003
205 Beiträge
 
Delphi XE Enterprise
 
#5

Re: Uhr ohne Hilfe vom "Ttimer" erstellen

  Alt 27. Apr 2010, 23:21
Das ist nicht so schwer.

Delphi-Quellcode:

procedure Uhr_starten;
var
  tick : extended;
begin
  tick := Now + // Now ist eine Funktion zum Holen der Systemzeit
          1 / 3600; // eine Sekunde draufrechnen

  // hier die Uhr starten

  repeat

    while (Now - tick) < 0 do sleep(10); // in 10 Millisekundenschritten warten bis eine Sekunde um ist

    tick := tick + 1 / 3600; // wieder eine Sekunde weiter gehen

    // Uhr neu zeichnen

    Application.ProcessMessages;

  until SpeedButton1.Down;
Zur Erläuterung:
- tick beinhaltet die Zeit der nächsten Sekunde
- Application.ProcessMessages; arbeitet Ereignisse ab, die (für hier) den StopButton abfragen lässt, Oberfläche neu zeichnet ... das kann etwas dauern, daher die Konstruktion mit der Zeit in der Zukunft
- jetzt der StopButton: hier SpeedButton1 mit folgenden wichtigen Eigenschaften allowallup := true und groupindex > 0

Ich hab den Code nicht getestet, aber es soll ja auch noch was übrig bleiben .

Gruß David
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#6

Re: Uhr ohne Hilfe vom "Ttimer" erstellen

  Alt 27. Apr 2010, 23:24
Oder man programmiert sich einen eigenen Timer, der asynchron zum MainThread läuft: Thread der eine Message an den MainThread schickt und in der Execute-Methode ein SleepEx(1000, True) hat

// edit

Für diese Art der Aufgabenstellung wäre es aber etwas übertrieben
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#7

Re: Uhr ohne Hilfe vom "Ttimer" erstellen

  Alt 28. Apr 2010, 23:07
Der Vorschlag in #5 ist unbrauchbar - da kann man die CPU als Heizung benutzen.

Die Funktion MsgWaitForMultipleObjects ist die Lösung:

Delphi-Quellcode:
function GetTickCount64: Int64; // vermeidet das 49.7-Tage-Problem
var
  QFreq, QCount: Int64;
begin
   Result := GetTickCount;
   if QueryPerformanceFrequency(QFreq) then
   begin
     QueryPerformanceCounter(QCount);
     if QFreq <> 0 then
       Result := (QCount div QFreq) * 1000;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Tick, ms: Int64;
  Event: THandle;
Label go;
begin
go:
  ms:=1000; //millisec
  Event := CreateEvent(nil, False, False, nil);
  try
    Tick := GetTickcount64 + ms;
    while (ms > 0) and
         (MsgWaitForMultipleObjects(1, Event, False, ms, QS_ALLINPUT) <> WAIT_TIMEOUT) do
    begin
      if Application.Terminated then Exit;
      ms := Tick - GetTickcount64;
      Application.ProcessMessages;
    end;
  finally
    CloseHandle(Event);
  end;
Label1.Caption:= TimeToStr(now);
//Uhr zeichnen
Goto go;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Uhr ohne Hilfe vom "Ttimer" erstellen

  Alt 29. Apr 2010, 01:16
Warum das überflüssige Goto?
Delphi-Quellcode:
finish := not finish;
while not finish do
begin
  // Dein Code
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Alaitoc

Registriert seit: 24. Okt 2008
263 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Uhr ohne Hilfe vom "Ttimer" erstellen

  Alt 29. Apr 2010, 08:24
[OFF-Topic]
Ah GOTO!
[/OFF-Topic]

MfG Alaitoc
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Uhr ohne Hilfe vom "Ttimer" erstellen

  Alt 29. Apr 2010, 08:28
Moin Jessica,

es wäre aber dennoch nicht schlecht, wenn du mal die gesamte Aufgabenstellung genauer auflisten/beschreiben würdest.

Für eine Aufgabe an Welche, die wohl nicht allzuviel Ahnung von der Matherie haben (Schüler), finde ich die aktuell verstandene Aufgabenstellung etwas schwer/übertrieben/unmöglich.
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 12:40 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