Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Interne Zahlendarstellung (https://www.delphipraxis.net/91281-interne-zahlendarstellung.html)

g0dlike87 4. Mai 2007 18:05

Re: Interne Zahlendarstellung
 
Oha danke für die Tipps ;)
Habe das Timerprogramm zwar immernoch nicht zum laufen bekommen aber naja, irgendwann wird es schon klappen.
Bin gerade erstmal dabei die Grundlagen mithilfe eines Buches zu lernen ;)

Hat jmd mal meine Ausgangsprogramm, welches ich als .rar Datei hochgeladen hab angeguckt und kann mir sagen wie man das Umrechnen soll ohne IntToHex etc?

g0dlike87 4. Mai 2007 22:06

Re: Interne Zahlendarstellung
 
Habe mein Timer nochmals überarbeitet, wollte ja so machen das man im Eingabefeld etwas eingibt und die Zahl zählt er dann runter und fährt PC runter wenn es bei 0 ist.
Das hab ich erstmal alles weggelassen und nur eine Variable deklariert, die sich jede Sek um eins verringern soll und dann per Startkopf anfangen soll und in das Label schreiben.
Er kompiliert das Programm auch ohne Fehler, jedoch ist das keine Anwendung oder Quelltext zu sehen, es ist dann plötzlich alles weg, weiß einer die Ursache und kann mir ein Tipp geben wie ich das mit dem Eingabefeld hinbekomme, das er daraus die Zahl einließt?

Delphi-Quellcode:
unit time;

interface

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

type
  TTIMER = class(TForm)
    TIMER: TLabel;
    Zeit: TLabel;
    Edit: TEdit;
    Restzeit: TLabel;
    Label1: TLabel;
    Start: TButton;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure StartClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  TIMER: TTIMER;

implementation

{$R *.DFM}

    VAR x : INTEGER;

procedure TTIMER.Timer1Timer(Sender: TObject);


  begin

      x := 5400;
      x := x - 1;

  end;

procedure TTIMER.StartClick(Sender: TObject);
  begin

      Label1.Caption := IntToStr(x);

  end;

end.

Apollonius 5. Mai 2007 09:34

Re: Interne Zahlendarstellung
 
NENN NIEMALS EINE FORMULARKLASSE WIE EINE BEREITS VORHANDENE!!!
Nenn die Formularklasse, die momentan TTimer heißt, einfach mal um (Standard ist ja TForm1). Dann sollte es klappen.

3_of_8 5. Mai 2007 09:37

Re: Interne Zahlendarstellung
 
Und warum schreibst du immer INTEGER? Nach den Code-Conventions dürfte das eher Integer heißen. Sieht auch viel augenfreundlicher aus.

inherited 5. Mai 2007 10:42

Re: Interne Zahlendarstellung
 
Delphi-Quellcode:
procedure TTIMER.Timer1Timer(Sender: TObject);


  begin

      x := 5400;
      x := x - 1;

  end;
Du setzt bei jedem Durchlauf X wiedr auf 5400 um ihm danach eins abzuziehen... deine Variable kommt nie unter 5399

g0dlike87 5. Mai 2007 18:17

Re: Interne Zahlendarstellung
 
Habe den Timer nun nochmal überarbeitet, nun bekomme ich auch eine Ausgabe nur leider noch nicht so ganz richtig :D
Zudem habe ich noch ein Problem, das wenn ich Delphi einmal zu hatte, das Programm dann neustarte und z.B. den Timer weiterbearbeiten möchte und auf Play drücke und davor alles funktionierte immmer Form1 kommt, also eine leere Anwendung wie kommt das?

Kann mir jmd sagen wie ich das mit dem Timer nun hinbekomme, das er nicht wenn ich auf Start drücke eine 0 hinschreiben und nicht weitermacht?
Zudem wollte ich noch eine Abfrage mit IF einbauen wenn die Zeit unter 1 geht, soll PC herunterfahrne geht das?

Delphi-Quellcode:
unit mstimer;

interface

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

type
  TMS = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Zeit: TEdit;
    Restzeit: TLabel;
    Start: TButton;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure StartClick(Sender: TObject);
  private

    { Private-Deklarationen }
  public
   x : Integer;

    { Public-Deklarationen }
  end;

var
  MS: TMS;

implementation

{$R *.DFM}

procedure TMS.Timer1Timer(Sender: TObject);

begin

     x := StrToInt(Zeit.Text);
     x := x - 1;


end;

procedure TMS.StartClick(Sender: TObject);

begin

     Restzeit.Caption := IntToStr(x);

end;

end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:14 Uhr.
Seite 3 von 3     123   

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