Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Könnt ihr mir sagen was an diesem Code falsch sein kann? (https://www.delphipraxis.net/187567-koennt-ihr-mir-sagen-diesem-code-falsch-sein-kann.html)

Robiksch 9. Dez 2015 19:26


Könnt ihr mir sagen was an diesem Code falsch sein kann?
 
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    XPManifest1: TXPManifest;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Label1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1; min, sec: Integer; mins, secs: string;

implementation

{$R *.dfm}






procedure TForm1.Button1Click(Sender: TObject);
begin
 min:=0;
 sec:=0;
 Timer1.Enabled:=True;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 Button1.Enabled:=False;
sec:= sec+1;
if sec=60 then begin min:=min+1; sec:=0; end;
if sec<10 then secs:='0'+ IntToStr(sec);
if sec>9 then secs:=IntToStr(sec);
if min<10 then mins:='0'+ IntToStr(min);
if min>9 then mins:=IntToStr(min);
 Label1.Caption:= mins ':' secs;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 if Button2.Caption='Pause' then
 begin Timer1.Enabled:=False; Button2.Caption:='Restart';end
 else begin Timer1.Enabled:=True; Button2.Caption:= 'Pause'; end;
 end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Timer1.Enabled:= False; Label1.Caption:='00:00';
end;
end.

Der schöne Günther 9. Dez 2015 19:35

AW: Könnt ihr mir sagen was an diesem Code falsch sein kann?
 
Er wurde nicht in die (DELPHI)-Tags gepackt?

Ohne:
procedure TForm1.Button1Click(Sender: TObject);
begin
min:=0;
sec:=0;
Timer1.Enabled:=True;
end;

Mit:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
   min:=0;
   sec:=0;
   Timer1.Enabled:=True;
end;

Nein, Spaß beiseite, herzlich willkommen in den Heiligen Hallen des Wissens und des Wahnsinns :love:


In deinem "Delphi 2002" hast du irgendwo ein "Meldungen"-Fenster wo steht was falsch ist. Bei mir habe ich den Fehler "[dcc32 Fehler] Unit3.pas(56): E2029 'END' erwartet, aber String-Konstante gefunden". Die Meldungen sind zwar leider oft ziemlich kryptisch, aber du kannst darauf doppelklicken und die entsprechende Zeile wird markiert. Es geht um die Zeile

Delphi-Quellcode:
Label1.Caption:= mins ':' secs;
. Diese Zeile ist falsch.

Strings werden in Delphi mit dem +-Operator konkateniert. Richtig heißt es
Delphi-Quellcode:
Label1.Caption:= mins + ':' + secs;

DeddyH 9. Dez 2015 19:36

AW: Könnt ihr mir sagen was an diesem Code falsch sein kann?
 
Benutz doch bitte die Delphi-Tags (die Schaltfläche mit dem Helm im Beitrags-Editor), und teile uns die Fehlermeldung mit. Auf den ersten Blick würde ich sagen, dass Du Deine Strings falsch verknüpfst.
Zitat:

Delphi-Quellcode:
Label1.Caption:= mins ':' secs;

-->
Delphi-Quellcode:
Label1.Caption:= mins + ':' + secs;
Mehr ist mir im unformatierten Code auf die Schnelle nicht aufgefallen (wie gesagt, die Meldung wäre hilfreich).

Robiksch 9. Dez 2015 19:43

AW: Könnt ihr mir sagen was an diesem Code falsch sein kann?
 
Bei mir wird in der Zeile 17 und 19 auch ein Fehler gezeigt und zwar: Unsatisfied forward or external decleration

DeddyH 9. Dez 2015 19:46

AW: Könnt ihr mir sagen was an diesem Code falsch sein kann?
 
Die Methoden FormCreate und Label1Click sind zwar in der Formularklasse deklariert, aber unter implementation nicht implementiert worden (heißt: es gibt keinen Code dazu).

Robiksch 9. Dez 2015 19:54

AW: Könnt ihr mir sagen was an diesem Code falsch sein kann?
 
Was kann ich da machen bzw. Was muss ich da ergänzen?

DeddyH 9. Dez 2015 20:04

AW: Könnt ihr mir sagen was an diesem Code falsch sein kann?
 
Lösch sie doch einfach aus der Formularklasse raus, Delphi sollte Dich dann fragen, ob es auch die Verweise löschen soll. Das bejast Du, und das Thema sollte durch sein.

Puke 9. Dez 2015 20:06

AW: Könnt ihr mir sagen was an diesem Code falsch sein kann?
 
Delphi-Quellcode:
type
    TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    XPManifest1: TXPManifest;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject); // <- löschen
    procedure Button3Click(Sender: TObject);
    procedure Label1Click(Sender: TObject); // <- löschen
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
end;

Robiksch 9. Dez 2015 20:10

AW: Könnt ihr mir sagen was an diesem Code falsch sein kann?
 
Vielen Dank euch. Hat sich nun endlich gelöst.

Robiksch 9. Dez 2015 20:37

AW: Könnt ihr mir sagen was an diesem Code falsch sein kann?
 
Nur noch eine Frage kann ich iwie ein 2. Label reinbringen, wo parallel das gleiche wie im 1. Label angezeigt wird wenn ich Start drücke?


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:57 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