Delphi-PRAXiS
Seite 2 von 3     12 3      

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 Brauche Hilfe zu Threads (https://www.delphipraxis.net/105803-brauche-hilfe-zu-threads.html)

Apollonius 30. Dez 2007 15:45

Re: Brauche Hilfe zu Threads
 
Wann weist du denn Sec zu? Das steht nämlich nicht in dem, was du gepostet hast.

Oldjoe37 30. Dez 2007 15:57

Re: Brauche Hilfe zu Threads
 
procedure TForm1.Timer2Timer(Sender: TObject);
var hour,min,sec,msec:Word;
begin
// ######## Das Folgende ist nur ein vereinfachter Test ####
//Pendel
Canvas.Pen.Width := 6;
Canvas.Pen.Color := clBlack;
if sec mod 2 = 1 then
begin

Klaus01 30. Dez 2007 16:10

Re: Brauche Hilfe zu Threads
 
Hallo,

vielleicht solltest Du noch dies
Delphi-Quellcode:
DecodeTime(Now,hour,min,sec,msec);
in Deiner Timer Routine aufrufen.

Denn sec wird nie ein Wert zugewiesen (wie Phillip schon richtig angemerkt hat), er wird nur abgefragt.

Grüße
Klaus

Oldjoe37 30. Dez 2007 16:24

Re: Brauche Hilfe zu Threads
 
Hatte ich schon mal drin. Wieder eingefügt, kein Ergebnis.
Pendelscheiben-BMP durch Canvas.Ellipse(x1,y1,x2,y2); ersetzt, kein Ergebnis.
Nur Pendelstab als LineTo, kein Ergebnis.
Es bleibt dabei: Uhrzeiger und Pendel "beissen sich". Bin ziemlich verzweifelt, aber das gehört wohl dazu!

Oldjoe37 30. Dez 2007 16:33

Re: Brauche Hilfe zu Threads
 
Timer2 sieht jetzt so aus:

Delphi-Quellcode:
procedure TForm1.Timer2Timer(Sender: TObject);
var Now,hour,min,sec,msec: Word;
begin
// ######## Das Folgende ist nur ein vereinfachter Test mit 2 Zuständen####
 //Pendel
DecodeTime(Now,hour,min,sec,msec);
  Canvas.Pen.Width := 6;
  Canvas.Pen.Color := clBlack;
     if sec mod 2 = 1 then
        begin
              Canvas.Moveto(139, 215);
              Canvas.LineTo(157,348);
               Canvas.Ellipse(132,348,182,398);
        end
        else
        begin
                Canvas.Moveto(129, 215);
              Canvas.LineTo(112,348);
                Canvas.Ellipse(87,348,137,398);
        end;
end;

Klaus01 30. Dez 2007 17:09

Re: Brauche Hilfe zu Threads
 
Delphi-Quellcode:
procedure TForm1.Timer2Timer(Sender: TObject);
var Now,hour,min,sec,msec: Word;
begin
// ######## Das Folgende ist nur ein vereinfachter Test mit 2 Zuständen####
//Pendel
DecodeTime(Now,hour,min,sec,msec);
now ist eine Funktion in Delphi, ich weiß nicht was passiert wenn
Du den gleichen Namen nochmals als Variable benutzt.

Vielleicht ist es besser so:
Delphi-Quellcode:
procedure TForm1.Timer2Timer(Sender: TObject);
var hour,min,sec,msec: Word;
begin
// ######## Das Folgende ist nur ein vereinfachter Test mit 2 Zuständen####
//Pendel
DecodeTime(Now,hour,min,sec,msec);
Grüße
Klaus

Oldjoe37 30. Dez 2007 17:35

Re: Brauche Hilfe zu Threads
 
Ich habe es auch mal ohne Now versucht, denn in der Hilfe steht nur DecodeTime(hour, min, sec, msec),
aber dann kann wegen "[Fehler] Uhr1.pas(124): Nicht genügend wirkliche Parameter" nicht kompiliert werden.
Merkwürdig, aber mit "now" wird kompiliert.

Zwischendurch möchte ich mich für Eure Geduld bedanken!

Klaus01 30. Dez 2007 17:40

Re: Brauche Hilfe zu Threads
 
Nun, decodeTime benötige auch fünf Parameter,
das habe ich auch nicht kritisiert.

Du kannst now weiterhin in DecodeTime verwenden,
aber schmeiß es doch einmal aus der Variablendeklaration raus.
So wie ich es vorherigen Beitrag geschrieben habe.

Grüße
Klaus

Oldjoe37 30. Dez 2007 17:50

Re: Brauche Hilfe zu Threads
 
Habe ich gemacht, ändert aber nichts am Problem.

Klaus01 30. Dez 2007 17:56

Re: Brauche Hilfe zu Threads
 
Das folgende pendelt bei mir aber richtig gut.

Grüße
Klaus
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var hour,min,sec,msec: Word;
begin
// ######## Das Folgende ist nur ein vereinfachter Test mit 2 Zuständen####
//Pendel
DecodeTime(Now,hour,min,sec,msec);
  Canvas.Pen.Width := 6;
  Canvas.Pen.Color := clBlack;
     if sec mod 2 = 1 then
       begin
          Canvas.Moveto(139, 215);
          Canvas.LineTo(157,348);
          Canvas.Ellipse(132,348,182,398);
          Canvas.Pen.Color:= clWhite;
          Canvas.Moveto(129, 215);
          Canvas.LineTo(112,348);
          Canvas.Ellipse(87,348,137,398);

       end
     else
       begin
         Canvas.Moveto(129, 215);
         Canvas.LineTo(112,348);
         Canvas.Ellipse(87,348,137,398);
         Canvas.Pen.Color:= clWhite;
         Canvas.Moveto(139, 215);
         Canvas.LineTo(157,348);
         Canvas.Ellipse(132,348,182,398);

       end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:37 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz