Einzelnen Beitrag anzeigen

Chucky_88

Registriert seit: 23. Okt 2004
Ort: Dinslaken
21 Beiträge
 
Delphi 7 Enterprise
 
#1

Sound bei ablauf des Timers

  Alt 23. Okt 2004, 16:24
Hallo,
ich wolte mir mal ein kleines Proggi basteln das mich aufweckt wenn ich am Pennen bin ^^ DIe Programme gibt es zwar wie Sand am Meer aber es sollte mir auch dazu dienen ein bsichen weiter in Delphi ein zu steigen. Bin demnach totaler Newbie. Das Problem ist nunr das irgendwie ein Bug in dem Code ist. Immer wenn der Timer auf 0 ist kommt eine Fehlermeldung. Ich poste unter dem Text mal den Code vielleicht kann mir ja einer helfen.

MfG Chucky

Delphi-Quellcode:
unit mCounter;

interface

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

type
  TCounter1 = class(TForm)

    EdStunden: TEdit;
    Button1: TButton;
    LbAufgabe: TLabel;
    EdMinuten: TEdit;
    TiCounter: TTimer;
    LbStundenMinuten: TLabel;
    LbCounterSt: TLabel;
    LbCounterMin: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure TiCounterTimer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Counter1: TCounter1;
  Minuten, Stunden, Counter: real;

implementation

{$R *.dfm}

procedure TCounter1.Button1Click(Sender: TObject);
begin
  Stunden := StrToFloat(EdStunden.Text);
  Minuten := StrToFloat(EdMinuten.Text);
  EdStunden.Color := clMedGray;
  EdMinuten.color := clMedGray;
  LbCounterSt.Visible := true;
  LbCounterMin.Visible := true;
  TiCounter.Enabled := true;
  EdStunden.ReadOnly := true;
  EdStunden.ReadOnly := true;

end;

procedure TCounter1.TiCounterTimer(Sender: TObject);
begin

  If EdStunden.Text = ' '
    then EdStunden.Text := '0';

  If (Minuten = 0) and (Stunden > 0)
    then begin
      Minuten := 60;
      Stunden := Stunden -1;
    end;

  If (Stunden = 0) and (Minuten = 0)
    then begin
      TiCounter.enabled := false;
      sndPlaySound(PChar('C:\WINDOWS\Media\SystemStart.wav'),SND_ASYNC)
    end
    else Minuten := Minuten -1;

  LbCounterSt.Caption := FloatToStr (Stunden);
  LbCounterMin.Caption := FloatToStr (Minuten);
end;

end.
Ps: Ich bin für Kritik vollkommen offen, genauso für Verbesserungsvorschläge

[edit=MrSpock]Zitat durch Delphi Tags ersetzt und Schriftgröße erhöht. Mfg, MrSpock[/edit]
Sebastian
,,Ich kann nicht sagen ob es besser wird, wenn es anders wird. Aber eins kann ich freilich sagen, es muss anders werden damit es gut wird."
  Mit Zitat antworten Zitat