Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   brauche bishen hilfe damit die zeit im Edit runter leuft (https://www.delphipraxis.net/44660-brauche-bishen-hilfe-damit-die-zeit-im-edit-runter-leuft.html)

MisterX 22. Apr 2005 12:22


brauche bishen hilfe damit die zeit im Edit runter leuft
 
brauche bishen hilfe damit die zeit im Edit runter leuft
zb ich stele 20min ein und dan nach einer min steht da 19min

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Interval:=StrtoInt(Edit2.text)*60000;
ShellExecute(Application.MainForm.Handle, nil, PChar( Edit1.Text),nil,nil, SW_SHOWMAXIMIZED);

end;

Wuaegner 22. Apr 2005 12:28

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
sowas nach der art:
Delphi-Quellcode:
 if (sek > 0) then dec(sek)
  else
    if (sek<= 0) then
     begin
      if (min > 0)then
       begin
       dec(min);
       sek:= 59;
       end;
halt mit min. und sekunden bei meinem Beispiel. du bräuchtest dann nur die minuten.

MisterX 22. Apr 2005 12:29

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
ja habe nur mit min gemacht das ganze funkst aber die zeit die ich einstele bleibt so wie sie ist und dan weis ich nicht wiefihle noch ferbleiben

ReDoX 22. Apr 2005 12:30

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Du Gibts dem Timer ein Interval von 1 Minute und OnTimer guckst du ob im dem Edit eine 1 steht wenn nicht geht die Zeit im edit weiter runter.
Mfg ReDoX

Luckie 22. Apr 2005 12:31

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    StartTime: Cardinal;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Dec(StartTime);
  Edit1.Text := IntToStr(StartTime);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  StartTime := 20;
  Timer1.Interval := 6000;
end;
Und könntest du uns allen mal einen Gefallen tun und etwas mehr auf deine Rechtschreibung achten? das ist ja absolut grausam, was du da fabrizierst.

MisterX 22. Apr 2005 12:32

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
mom muss in c++ umschreiben damit das geht ich fersuche mich zu beeilen

alcaeus 22. Apr 2005 12:34

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Bitte, bitte, bitte, tu uns allen einen Gefallen: schreib endlich in korrektem Deutsch (das heisst richtige Rechtschreibung, korrekte Zeichensetzung). Das schaffe sogar ich als Italiener. Da ist es egal ob du bei der Arbeit bist und dich beeilen musst damit dich der Chef nicht erwischt.

Zum Problem: Timer auf die Form, Edit auf die Form. Interval vom Timer auf 60000 setzen, Text vom Edit auf 20.
Im OnTimer schreibst du folgenden Code:
Delphi-Quellcode:
Timer1.Enabled := False;
Edit1.Text := IntToStr(StrToInt(Edit1.Text)-1);
Timer1.Enabled := Edit1.Text > '0';
Sobald im Edit '0' steht, macht der Timer nicht mehr weiter, und du musst dann eben eine andere Aktion ausfuehren lassen.

Greetz
alcaeus

PS: Warum fragst du in einem Delphi-Forum wenn du es dann doch in C++ umschreiben musst? :gruebel:

MisterX 22. Apr 2005 12:36

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Nein nein es mis weiter machen es sol nur runter zählen und dann fon forne anfangen
gut so^^

MisterX 22. Apr 2005 12:37

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Interval:=StrtoInt(Edit2.text)*60000;
ShellExecute(Application.MainForm.Handle, nil, PChar( Edit1.Text),nil,nil, SW_SHOWMAXIMIZED);

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:=True;
Timer2.Enabled:=True;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Timer1.Enabled:=False;
Timer2.Enabled:=False;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
winexec('shutdown.exe -s' ,1);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if Sender = Button1 then            
     AboutBox.Caption := 'Info über ' + Application.Title         
else AboutBox.Caption := '';            
AboutBox.ShowModal;

end;

end.

alcaeus 22. Apr 2005 12:40

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Erstens: guck mal ueber deine Posts: da siehst du diesen Button http://www.delphipraxis.net/template.../icon_edit.gif
Klick den an und du musst nicht immer pushen.

Zitat:

Zitat von MisterX
Nein nein es mis weiter machen es sol nur runter zählen und dann fon forne anfangen
gut so^^

es muss also von vorne anfangen sobald es fertig gezaehlt hat? In dem Fall setz den Text des Edits einfach auf 20 sobald du bei 0 ankommst, it's as easy as that.

Greetz
alcaeus

MisterX 22. Apr 2005 12:40

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Ich hasse C++ ist der reinste mist habe nicht geschafft um zuschreiben

MisterX 22. Apr 2005 12:42

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Ich tun Bahnhof verstehen

alcaeus 22. Apr 2005 12:42

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Zitat:

Zitat von MisterX
Ich hasse C++ ist der reinste mist habe nicht geschafft um zuschreiben

Willst du uns hier verarschen? Jetzt sag mal: brauchst du Delphi-Code oder C++? Wenn du C++ willst, dann geh mal zu den Jungs von www.c-plusplus.de/forum und lass dir dort helfen. "We're not the salvation army, boy..."

Greetz
alcaeus

MisterX 22. Apr 2005 12:43

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Nein ich bin bei der Arbeit, und die haben nur C++, und ich benutze Delphi.

leddl 22. Apr 2005 12:55

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Leute, warum fallt ihr eigentlich immer wieder auf diesen Troll rein? :gruebel:
Laßt ihn doch einfach mal hängen, bis ers schafft seine Anliegen klipp und klar - und vor allem auf DEUTSCH - zu formulieren.

Waldteufel 22. Apr 2005 13:00

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Hi.

Zitat:

Zitat von leddl
Leute, warum fallt ihr eigentlich immer wieder auf diesen Troll rein? :gruebel:
Laßt ihn doch einfach mal hängen, bis ers schafft seine Anliegen klipp und klar - und vor allem auf DEUTSCH - zu formulieren.

Es ist gemein, ihn deshalb nicht zu beachten! :?

@MisterX: Wenn du auf der Arbeit ständig Gefahr läufst, von deinem Chef bei deinen privaten Aktivitäten im Forum erwischt zu werden [edit] und deshalb immer so schnell tippen musst und dir Flüchtigkeitsfehler passieren [/edit], dann verschiebe das Schreiben im Forum besser auf die Zeit nach Feierabend... :zwinker:

SubData 22. Apr 2005 13:02

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Erstens das und zweitens kann dein Chef wohl schlecht meckern, wenn du etwas für den Betrieb machst...
Dafür ist das Kommunikationsmedium Internet ja wohl da ^^

MisterX 22. Apr 2005 13:02

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Tu ich doch jetzt und ich sagte doch was ich will ok ich will das meine zeit runter läuft

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Interval:=StrtoInt(Edit2.text)*60000;
ShellExecute(Application.MainForm.Handle, nil, PChar( Edit1.Text),nil,nil, SW_SHOWMAXIMIZED);

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:=True;
Timer2.Enabled:=True;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Timer1.Enabled:=False;
Timer2.Enabled:=False;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
winexec('shutdown.exe -s' ,1);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if Sender = Button1 then            
     AboutBox.Caption := 'Info über ' + Application.Title         
else AboutBox.Caption := '';            
AboutBox.ShowModal;

end;

end.

alcaeus 22. Apr 2005 13:04

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Hast du dir meine Loesung ueberhaupt mal angesehn, geschweige denn sie ausprobiert?
Ich weiss ja nicht...aber die scheint mir das zu tun was du willst :roll:

Greetz
alcaeus

MisterX 22. Apr 2005 13:08

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Ist ja nicht für die Arbeit und ich habe kein internet zu hause und ich probiere deine lösun ich melde mich wen es nicht funkst

freak4fun 22. Apr 2005 13:20

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Zitat:

Zitat von MisterX
Nein ich bin bei der Arbeit, und die haben nur C++, und ich benutze Delphi.


:mrgreen:

MfG
freak

Sharky 22. Apr 2005 13:41

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Ich bitte alle darum die nichts zu der Frage zu sagen haben es auch zu unterlassen in dem Thread zu posten.
Wenn ihr jemandem etwas persönlich sagen wollt macht dies bitte via PN. :warn:

MisterX 24. Apr 2005 07:28

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
hmmm... ja der code funkst nicht

Die Muhkuh 24. Apr 2005 07:28

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Was geht nich?

MisterX 24. Apr 2005 07:29

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
[delphi]Timer1.Enabled := False;
Edit1.Text := IntToStr(StrToInt(Edit1.Text)-1);
Timer1.Enabled := Edit1.Text > '0';

der geht nicht

MisterX 24. Apr 2005 07:31

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Interval:=StrtoInt(Edit2.text)*60000;
ShellExecute(Application.MainForm.Handle, nil, PChar( Edit1.Text),nil,nil, SW_SHOWMAXIMIZED);

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:=True;
Timer2.Enabled:=True;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Timer1.Enabled:=False;
Timer2.Enabled:=False;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
winexec('shutdown.exe -s' ,1);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if Sender = Button1 then            
     AboutBox.Caption := 'Info über ' + Application.Title        
else AboutBox.Caption := '';            
AboutBox.ShowModal;

end;

end.
und das ist meiner

Die Muhkuh 24. Apr 2005 07:33

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Meine Glaskugel streikt noch immer. WAS geht denn nicht? Wird nicht runtergezählt? Passiert den gar nichts? Was hast du überhaupt vor?

MisterX 24. Apr 2005 07:36

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
also ich habe ein edit dort will ich die zet einstelen und die sol jede min weniger werden z.B.
ich mache 20 min dan nach einer min soll da 19 mi stehen

MisterX 24. Apr 2005 07:36

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Interval:=StrtoInt(Edit2.text)*60000;
ShellExecute(Application.MainForm.Handle, nil, PChar( Edit1.Text),nil,nil, SW_SHOWMAXIMIZED);

alcaeus 24. Apr 2005 07:38

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
MisterX,

tut mir Leid, aber du stellst dich etwas zu dumm an. Den Code den ich dir gegeben habe, musst du in eines der Timer-Ereignisse kopieren. Das habe ich dir auch schon gesagt.
Weiters darfst du mal erklaeren was genau du machen willst, der Code sieht etwas zu konfus aus :gruebel:
Warum will man in einem Timer das shutdown.exe Dienstprogramm ausfuehren?

Greetz
alcaeus

Die Muhkuh 24. Apr 2005 07:41

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Erstmal es gibt einen Edit-Knopf.

Zweitens: Schreib deutsch.


Setz den Intervall vom Timer auf 60000 (im ObjectInspector).
Delphi-Quellcode:
TForm1 = class(TForm) // Sowas in der Art sollte ziemlich weit oben stehen
private
  Counter: Integer;
public

end;

...

implementation

// Erzeuge ein Form.Create (im ObjectInspector die Form auswählen auf Ereignisse und doppel auf OnCreate dann sollte das da stehen:
procedure TForm1.Create(Sender: TObject);
begin
  Counter := 20;
end;

procedure Timer1.Timer(Sender: TObject);
begin
  Dec(Counter);

  if Counter = 0 then
  begin
    // Nach zwanzig Minuten
  end;
end;

MisterX 24. Apr 2005 07:43

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
es soll ein skill bot werden ür online games und bei manchen spielen mus man nach 24 StD
raus deswegen das auschalten das prog fuks ja nur es ist schlech wen die zeit die ich einstelle
immer so bleibt dan weis man nicht wifiel man noch zu warten hat und den queltext habe ich auch in einem teimer eingefügt un es geht ihrgen wie nicht :wall:

MisterX 24. Apr 2005 07:43

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
und ich will die zeit immer ferstelen

PierreB 24. Apr 2005 07:45

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Spiders Code etwas verbessert:
Delphi-Quellcode:
TForm1 = class(TForm) // Sowas in der Art sollte ziemlich weit oben stehen
private
  Counter: Integer;
public

end;

...

implementation

// Erzeuge ein Form.Create (im ObjectInspector die Form auswählen auf Ereignisse und doppel auf OnCreate dann sollte das da stehen:
procedure TForm1.Create(Sender: TObject);
begin
  Counter := 20;
end;

procedure Timer1.Timer(Sender: TObject);
begin
  Dec(Counter);
  edit1.text := IntToStr(Counter);

  if Counter = 0 then
  begin
    // Nach zwanzig Minuten
    ShowMessage('Zeit abgelaufen !');
  end;
end;

MisterX 24. Apr 2005 07:47

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
und er soll weiter machen er soll wieder fon forne machen keine masseg oder so die zeit soll einfach immer runter laufen

jfheins 24. Apr 2005 07:48

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Delphi-Quellcode:
if Counter = 0 then
  begin
    // Nach zwanzig Minuten
    Counter := 20;
  end;
:?:

alcaeus 24. Apr 2005 07:48

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Delphi-Timer fuer Anfaenger...Mann hast du Glueck dass ich letzte Nacht geschlafen habe.
  1. Neues Projekt in Delphi erstellen (ja, neu = leer).
  2. Timer, Edit, 2 Buttons auf die Form.
  3. Timer-Intervall auf 60000 einstellen.
  4. Caption von Button1 auf "Starten" setzen.
  5. Caption von Button2 auf "Stoppen" setzen.
  6. Doppelclick auf die Form um das OnCreate-Ereignis zu bekommen. Dort schreibst du:
    Delphi-Quellcode:
    Timer1.Enabled := False;
    Edit1.Text := '20';
  7. Doppelclick auf den Timer um das OnTimer-Event zu bekommen. Dort schreibst du:
    Delphi-Quellcode:
    Edit1.Text := IntToStr(StrToInt(Edit1.Text)-1);
    if Edit1.Text = '0' then
      Edit1.Text := '20';
  8. Doppelclick auf Button1 um das OnClick-Event fuer Button1 zu bekommen. Dort schreibst du:
    Delphi-Quellcode:
    Timer1.Enabled := True;
  9. Doppelclick auf Button2 um das OnClick-Event fuer Button2 zu bekommen. Dort schreibst du:
    Delphi-Quellcode:
    Timer1.Enabled := False;
  10. Testen.
So, nachdem du das hoffentlich geschafft hast, kannst du dir ueberlegen wie du den Code in deine Anwendung bekommst. Viel Spass

Greetz
alcaeus

MisterX 24. Apr 2005 07:49

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Delphi-Quellcode:
Edit1.Text := IntToStr(StrToInt(Edit1.Text)-1);
der ist schon richtig nur er will nicht funksen

Sharky 24. Apr 2005 07:51

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Hier eine ganz einfache Lösung. In diesem Beispiel wird davon ausgegangen das im Edit-Feld Sekunden angegeben wurden.
Delphi-Quellcode:
var
  Counter : Integer;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit1.Clear;
  Timer1.Enabled := False;
  Timer1.Interval := 1000; // = 1 Sekunde
end;

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  Timer1.Enabled := False; // Wenn eine Taste gedrückt den Timer anhalten
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in ['0'..'9',#8,#13]) then // Nur Zahlen, Del und Enter zulassen
  begin
    Key := #0;
  end;
  if (Key = #13) then // Wenn Enter gedrückt wurde
  begin
    Counter := StrToInt (Edit1.Text); // Countdown aus dem Edit nehmen
    Timer1.Enabled := True; // Timer wieder starten
  end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  DEC (Counter); // Die Counter runterzählen
  if (Counter = 0) then // Zeit ist abgelaufen
  begin
    Edit1.Clear;
    Timer1.Enabled := False;
    ShowMessage ('blubb');
  end
  else
  begin
    Edit1.Text := IntToStr (Counter); // Den aktuellen Countdown ins Edit
  end;
end;

alcaeus 24. Apr 2005 07:54

Re: brauche bishen hilfe damit die zeit im Edit runter leuft
 
Zitat:

Zitat von MisterX
der ist schon richtig nur er will nicht funksen

Koenntest du auch bitte mal sagen was nicht funktioniert? Wenn du mit "nicht funksen" meinst dass die Zeit nicht sofort runtergehst, das passt schon so, erstmal auf Starten klicken und eine Minute warten.
Ich habs soeben probiert, das Beispielprojekt das du vorhin zusammengeklickt hast funktioniert einwandfrei (wie erwartet).

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:00 Uhr.
Seite 1 von 2  1 2      

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