Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi case geht nich ?!? (https://www.delphipraxis.net/86193-case-geht-nich.html)

passsy 10. Feb 2007 18:20


case geht nich ?!?
 
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
 var i:integer;
 begin
 inc(i);
 case i of
 1:timer2.Enabled:=true;
 2:timer3.Enabled:=true;
 3:timer4.Enabled:=true;
 4:timer5.Enabled:=true;
 5:showmessage('test');
 6:timer1.Enabled:=false;
 end;
 
 end;
sieht ja ganz schön aus aber geht nich :( woran liegts?

MrKnogge 10. Feb 2007 18:21

Re: case geht nich ?!?
 
i hat am anfang einen unbestimmten Wert beispielsweise 767567576, du musst die variable initialisieren.

Gruß

Christian Seehase 10. Feb 2007 18:23

Re: case geht nich ?!?
 
Moin Pascal,

"geht nicht" hat ja nicht wirklich Aussagekraft, aber:

Du verwendest eine lokale Variable, die nicht einmal initialisiert wird, also einen Zufallswert enthält.
Initialsierung nutzt Dir aber auch nichts, da der Wert nach dem verlassen der Routine verworfen wird.
Du müsstest die also woanders unterbringen.

leddl 10. Feb 2007 18:26

Re: case geht nich ?!?
 
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
  var i:integer;
  begin
    inc(i);
    case i of
      1..4: timer5.Enabled:=true;
      5:   showmessage('test');
      6:   timer1.Enabled:=false;
    end;
  end;
end;
Hättest deinen Code etwas strukturiert, wäre dir das fehlende "end" sofort ins Auge gesprungen ;)

passsy 10. Feb 2007 18:28

Re: case geht nich ?!?
 
ah ok danke leute ich habs dann gelöst.

ich hab gedacht das n integer am anfang immer 0 is naja bin ja noch nich so lang dabei^^


das end hab ich nur vergessen rein zu kopieren^^

JasonDX 10. Feb 2007 18:30

Re: case geht nich ?!?
 
Zitat:

Zitat von leddl
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
  var i:integer;
  begin
    inc(i);
    case i of
      1..4: timer5.Enabled:=true;
      5:   showmessage('test');
      6:   timer1.Enabled:=false;
    end;
  end;
end;
Hättest deinen Code etwas strukturiert, wäre dir das fehlende "end" sofort ins Auge gesprungen ;)

Haettest du die Einrueckung nich so verplant, haettest du auch nicht solch *fieps* geschrieben :P :mrgreen:
:zwinker:

greetz
Mike

MrKnogge 10. Feb 2007 18:30

Re: case geht nich ?!?
 
leddl, schau dir deinen Code mal bitte genauer an, du hast ein end zuviel !

Gruß

leddl 10. Feb 2007 18:35

Re: case geht nich ?!?
 
:oops: Man sollte nach zuviel Java-Programmierung nich mal kurz zwischen Dusche und Essen ne Antwort zu ner Delphi-Frage schreiben :lol:

Christian Seehase 10. Feb 2007 22:28

Re: case geht nich ?!?
 
Moin Pascal,

Zitat:

Zitat von passsy
ich hab gedacht das n integer am anfang immer 0 is naja bin ja noch nich so lang dabei^^

das dem nicht so ist, weisst Du ja jetzt ;-)

Aber mit einer lokalen Variable kannst Du das Problem auch nicht lösen, wenn Du sie initialisierst...

xZise 10. Feb 2007 22:52

Re: case geht nich ?!?
 
Also passy, wenn du i zu anfang der Prozedur auf 0 setzt, dann kann ich dir für jeden Aufruf der Funktion vorraus sagen, dass er machen wird ... Und zwar immer "timer5.enabled := true"

@ leddl, aber was ist dann mit dem switch :P


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

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz