Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi ampel programmieren (https://www.delphipraxis.net/66389-ampel-programmieren.html)

nastytrouble 29. Mär 2006 06:47


ampel programmieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
kann mal jemand bei der ampel hier helfen?

Delphi-Quellcode:
unit ampel;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Shape1: TShape;
    sh_red: TShape;
    sh_yellow: TShape;
    sh_green: TShape;
    switch: TButton;
    procedure switchClick(Sender: TObject);
  private
    { Private-Deklarationen}
  public
    { Public-Deklarationen}
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

Procedure wait(Time:Integer);
  Var x:Dword;
Begin
  Time := Time * 20;
  x := GetTickCount ;
  While x - time < GetTickCount do    Application.ProcessMessages;
End;

procedure TForm1.switchClick(Sender: TObject);
begin
  wait(3);
    sh_green.Visible := false;
    sh_yellow.Visible := true;
  wait(3);
    sh_yellow.Visible := false;
    sh_red.Visible := true;
  wait(3);
    sh_yellow.Visible := true;
  wait(3);
    sh_red.Visible := false;
    sh_yellow.Visible := false;
    sh_green.Visible := true;
end;
end.

Nicodius 29. Mär 2006 06:54

Re: ampel programmieren
 
Delphi-Quellcode:
  wait(3);
    sh_green.Visible := false;
    sh_yellow.Visible := true;
  wait(3);
    sh_yellow.Visible := false;
    sh_red.Visible := true;
  wait(3);
    sh_yellow.Visible := true;
  wait(3);
    sh_red.Visible := false;
    sh_yellow.Visible := false;
    sh_green.Visible := true;
application.progessApplication (schlagt mich ich bin zu müede und kan ndas wort application nicht mehr schreiben ^^) fehlt da immer nach den schaltungen hischreiben und wuppi ;)

nastytrouble 29. Mär 2006 07:18

Re: ampel programmieren
 
mhh irgentwas funzt da nicht. gibts noch andere wege?

Sharky 29. Mär 2006 07:21

Re: ampel programmieren
 
Zitat:

Zitat von nastytrouble
kann mal jemand bei der ampel hier helfen?...

Zitat:

Zitat von nastytrouble
mhh irgentwas funzt da nicht. gibts noch andere wege?

Hai nastytrouble,

es wäre sehr hilfreich wenn Du uns sagen würdest wo das Problem liegt bzw. was denn nicht funktioniert.

nastytrouble 29. Mär 2006 07:30

Re: ampel programmieren
 
:wall: :wall: :wall: :wall: :wall: die ampel schaltet garnet erst um. das ist das problem. :wall:

Klaus01 29. Mär 2006 07:30

Re: ampel programmieren
 
Delphi-Quellcode:
Procedure wait(Time:Integer);
  Var x:Dword;
Begin
  Time := Time * 20;
  x := GetTickCount ;
  While x - time < GetTickCount do    Application.ProcessMessages;
End;
nur mal so zu darübernachdenken,
GetTickCount gibt Dir die Anzahl der Millisekunden seit
dem Start des Computers aus.
(Aus der Hilfe: GetTickCount is a Cardinal function used
to retrieve the number of milliseconds since the computer was started.)

Die ziehst von dieser Zahl x*20 Millisekunden ab, was eine sehr
kurze Zeitdauer ist.

Deine switch Methode wird in 240ms durchlaufen, da brauchst Du ein schnelles
Auge.

Grüße
Klaus

Kroko1999 29. Mär 2006 07:31

Re: ampel programmieren
 
Delphi-Quellcode:
Procedure wait(const Time:Integer);
var
  x: Cardinal;
Begin
  x := GetTickCount+Time*400 ;
  while GetTickCount<X do    
    Application.ProcessMessages;
End;

procedure TForm1.Zustand(const AMode: Word);
  procedure _Set (AC1,AC2,AC3: TColor);
  begin
    sh_red.Brush.Color := AC1;
    sh_Yellow.Brush.Color := AC2;
    sh_Green.Brush.Color := AC3;
  end;
begin
  case AMode of
    0: _Set (clRed,$408080,clGreen); // ROT
    1: _Set (clRed,clYellow,clGreen); // Rot-Gelb
    2: _Set (clMaroon,$408080,clLime); // Grün
    3: _Set (clMaroon,clYellow,clGreen); // Gelb
  end;
end;

procedure TForm1.switchClick(Sender: TObject);
begin
    Zustand (0);
  wait(3);
    Zustand (1);
  wait(3);
    Zustand (2);
  wait(3);
    Zustand (3);
  wait(3);
    Zustand (0);
end;
//EDIT: GELB richtig!

nastytrouble 29. Mär 2006 07:49

Re: ampel programmieren
 
wo soll der zustand definiert werden?

[Warnung] ampel.pas(34): Vorzeichenbehaftete und -lose Typen werden kombiniert - beide Operanden werden erweitert
[Fehler] ampel.pas(39): Undefinierter Bezeichner: 'Zustand'
[Fehler] ampel.pas(39): '=' erwartet, aber ')' gefunden
[Fehler] ampel.pas(42): Undefinierter Bezeichner: 'sh_red'
[Fehler] ampel.pas(43): Undefinierter Bezeichner: 'sh_Yellow'
[Fehler] ampel.pas(44): Undefinierter Bezeichner: 'sh_Green'
[Fehler] ampel.pas(57): Undefinierter Bezeichner: 'Zustand'
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'ampel.pas' kann nicht compiliert werden

Kroko1999 29. Mär 2006 07:52

Re: ampel programmieren
 
in Tform1


Grundlagen wären nicht schlecht! :wink:

nastytrouble 29. Mär 2006 07:56

Re: ampel programmieren
 
also als variable. oder wie??? das geht nämlich nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:06 Uhr.
Seite 1 von 4  1 23     Letzte »    

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