AGB  ·  Datenschutz  ·  Impressum  







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

Graphisch Digitale/Analoge Uhr

Ein Thema von n00b_on_knees · begonnen am 21. Jan 2004 · letzter Beitrag vom 29. Jan 2004
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von n00b_on_knees
n00b_on_knees

Registriert seit: 5. Apr 2003
128 Beiträge
 
#11

Re: Graphisch Digitale/Analoge Uhr

  Alt 28. Jan 2004, 18:04
weiß wohl leider nichtmal was eine TInage ist..lol.
Das mit der Paintbox war mir sowieso klar, danke ..hmm ja das mit den Linienzeichnen ist auch klar..nur wie passe ich der aktuellen Uhrzeit die Zeiger an, bezüglich dem Winkel, und wie manage ich das bewegen? Immer beim Winkel dazuzählen? Nur wie?
Against TCPA & And I think we should live our dreams
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Graphisch Digitale/Analoge Uhr

  Alt 28. Jan 2004, 18:07
Sollte TImage heißen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#13

Re: Graphisch Digitale/Analoge Uhr

  Alt 28. Jan 2004, 18:07
Zitat von n00b_on_knees:
...Irgendwie habe ich Angst vor dem Lehrer, wenn ich nichts wirklich passendes habe. Ich glaube wenn ich ihm meinen mickrigen Quellcode abgebe, schickt er mich noch zurück in die Grundschule
Der soll herkommen Die DP steht hinter dir

Aber zu deinem Problem: Die Digitale Uhr dürfte kein Problem sein: Du nimmst ein TLabel (Register "Standard" auf der Komponentenleiste) und einen TTimer (Register "System") und ziehst dir beide auf dein Form. Dann klickst du doppelt auf den Timer und schreibst:

Label1.Caption := TimeToStr(Time); Die Eigenschaft "Interval" des Timers setzt du im Objektinspektor auf 1000 (Zeit in Millisekunden, nach denen das "onTimer" Ereignis wiederholt ausgeführt wird. Allerdings sollte der Standardwert schon 1000 sein. Ein, bzw. ausschalten kannst du deine Uhr dann indem du

Delphi-Quellcode:
//entweder
Timer1.Enabled := false; //Zum Ausschalten

//oder
Timer1.Enabled := true; //Zum Einschalten
schreibst.

Bei der Analogen Uhr kann ich dir leider wenig weiterhelfen. (Muss wohl irgendwas mit Winkeln zu tun haben )

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
Benutzerbild von n00b_on_knees
n00b_on_knees

Registriert seit: 5. Apr 2003
128 Beiträge
 
#14

Re: Graphisch Digitale/Analoge Uhr

  Alt 28. Jan 2004, 18:33
hmm, ich denke dass ist leider etwas zu einfach
das ganze soll hier so ähnlich geschehen, nur mit Zeichnen:

Code:
   __
||    ||
||    ||
   __
||    ||
||    ||
   __
das wäre ein teil der anzeige, nur mit strichen, kanns leider nicht anders hier mit zeichen machen

Edit: Okey die Formatierung hier macht das ganze zunichte..jedenfalls soll es so gezeichnet werden wie in einer normalen Digitalanzeige einer Uhr, mit diesen Strichen.

[edit=Luckie]Dann nehmen wir doch mal die Code-Tags. Mfg, Luckie[/edit]
Against TCPA & And I think we should live our dreams
  Mit Zitat antworten Zitat
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Graphisch Digitale/Analoge Uhr

  Alt 28. Jan 2004, 18:56
Zur Analogen Uhr:
Da hilft dir die Unit "math" und ein bisschen Mathe. Ich hab sowas auch mal gemacht. Ich häng das Prog einfach mal an.

MfG
Christian
Angehängte Dateien
Dateityp: rar analoguhr.rar (192,6 KB, 65x aufgerufen)
Es gibt nur 10 Typen von Menschen auf der Welt:
Die, die Binärcode verstehen und die, die es nicht tun . . .
  Mit Zitat antworten Zitat
Benutzerbild von n00b_on_knees
n00b_on_knees

Registriert seit: 5. Apr 2003
128 Beiträge
 
#16

Re: Graphisch Digitale/Analoge Uhr

  Alt 28. Jan 2004, 19:11
dankesehr, werd mir dass mal durchsehen. hast du etwas dagegen wenn ich teile deines codes verwende?
Damit bin ich schon mal mit einem Teil des Programms bestimmt weiter.
Against TCPA & And I think we should live our dreams
  Mit Zitat antworten Zitat
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Graphisch Digitale/Analoge Uhr

  Alt 28. Jan 2004, 19:14
Den Code kannst du ruhig benutzen. Aber wie gesagt: Das ist Mathe der 9. Klasse. Wenn du das deinem Lehrer vorstellen willst, dann solltest du den Code verstehen.

MfG
Christian
Es gibt nur 10 Typen von Menschen auf der Welt:
Die, die Binärcode verstehen und die, die es nicht tun . . .
  Mit Zitat antworten Zitat
Benutzerbild von Spezi1980
Spezi1980

Registriert seit: 11. Aug 2003
Ort: Dresden OT Cossebaude
71 Beiträge
 
Delphi 2005 Personal
 
#18

Re: Graphisch Digitale/Analoge Uhr

  Alt 28. Jan 2004, 19:48
Hallo,

Wenn du die Uhr direkt malen willst, so kann ich dir ein Beispiel zeigen:

analoge Uhr:
also, du nimmst ein leeres Fenster, haust eine Paintbox und einen Timer drauf. Den Interval der Uhr setzt du auf 1000 (ms = 1s).

In das Ereigniss "OnTimer" des Timers gibst du folgendes ein:

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
 Procedure DrawDigit(Digit:Char; XPos,YPos, Size:Integer; Canvas : TCanvas);
 Var I:Integer; X,Y, Breite,Hoehe:Integer;
 begin
   Breite := Size div 2; {Breite einer Zahl berechnen}
   Hoehe := Size; {Hoehe einer Zahl berechnen}
   Canvas.MoveTo(XPos,YPos);
   case Digit of
     ':' : begin
               X := Breite div 2;
               Y := Hoehe div 3;
               Canvas.Ellipse(XPos +X -1, YPos + y -1,XPos +X +1,YPos +Y +1);
               Canvas.Ellipse(XPos +X -1, YPos + y*2 -1,XPos +X +1,YPos +Y*2 +1);
           end;
     '.' : begin
               X := XPos + Breite div 2;
               Y := XPos + Hoehe;
               Canvas.Ellipse(X - 1,y-2, X + 1,y);
           end;
     '0' : begin
               Canvas.LineTo(XPos,YPos + Size);
               Canvas.LineTo(XPos + Breite,YPos + Hoehe);
               Canvas.LineTo(XPos + Breite,YPos);
               Canvas.LineTo(XPos,YPos);
           end;
     '1' : begin
               Canvas.MoveTo(XPos,YPos + Size div 3);
               Canvas.LineTo(XPos + Breite,YPos);
               Canvas.LineTo(XPos + Breite,YPos + Hoehe);
           end;
     '2' : begin {...}
               Canvas.MoveTo(XPos ,YPos + Hoehe div 5);
               Canvas.LineTo(XPos ,YPos);
               Canvas.LineTo(XPos + Breite ,YPos);
               Canvas.LineTo(XPos + Breite ,YPos + Hoehe div 2);
               Canvas.LineTo(XPos ,YPos + Hoehe div 2);
               Canvas.LineTo(XPos ,YPos + Hoehe);
               Canvas.LineTo(XPos + Breite ,YPos + Hoehe);
               Canvas.LineTo(XPos + Breite ,YPos + Hoehe - Hoehe div 5);
           end;
     '3' : begin {...
                   Hier musst du nun selbst aktiv werden und die anderen Zahlen wie oben malen...}

           end;
   end;
 end;
Var I:Integer; Zeit:String;
begin
  Zeit := timetoStr(now); //aktuelle Uhrzeit ermitteln
  Canvas.Rectangle(0,0,PaintBox1.Width,PaintBox1.Height); //Inhalt der Paintbox löschen
  for I:=1 to length(Zeit) do begin
    DrawDigit( Zeit[I] , //Die übergebene Ziffer
              (5 + abs(PaintBox1.Canvas.Font.Height) div 2) * I, //die X Koordinate der Ziffer (die 5 ist der Abstand)
              10, //die Y Koordinate des Textes
              abs(PaintBox1.Canvas.Font.Height), //Die Schriftgröße
              PaintBox1.Canvas); //wohin gezeichnet werden soll
  end;
end;
Ich hoffe mal das dir das weiterhilft.

Gruß
Robs

[Edit]mann sollte sich das auch nochmal durchlesen was man postet [/Edit]
grrrrrrrr
Robert
Codito, ergo sum.
>>I code, therefore I am<<
  Mit Zitat antworten Zitat
Benutzerbild von n00b_on_knees
n00b_on_knees

Registriert seit: 5. Apr 2003
128 Beiträge
 
#19

Re: Graphisch Digitale/Analoge Uhr

  Alt 28. Jan 2004, 20:16
@Spezi
Danke auch, werd mich nur vorher mal mit dem andrem Code beschäftigen!
Ich glaube da muss brauch ich noch mehr Durchblick *g*
Against TCPA & And I think we should live our dreams
  Mit Zitat antworten Zitat
Benutzerbild von n00b_on_knees
n00b_on_knees

Registriert seit: 5. Apr 2003
128 Beiträge
 
#20

Re: Graphisch Digitale/Analoge Uhr

  Alt 28. Jan 2004, 21:06
@Chris

Bin ja gerade dabei deinen Code durchzustudieren..was genau bezeugst du mit

sin(DegToRad(h*30)) ?

ich weiß, dass der ganze Teil der Anweisung mit

x:= sin(DegToRad(h*30))*(pb.width/2-70); zu tun hat, macht das ganze einfach nur den Winkel auszurechnen? (den Teil nach * verstehe ich..)
Against TCPA & And I think we should live our dreams
  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 03:19 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