AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

case geht nich ?!?

Ein Thema von passsy · begonnen am 10. Feb 2007 · letzter Beitrag vom 11. Feb 2007
Antwort Antwort
Seite 2 von 3     12 3      
passsy

Registriert seit: 1. Jan 2007
124 Beiträge
 
#11

Re: case geht nich ?!?

  Alt 11. Feb 2007, 10:57
ich hba jetzt einfach ne lokale variable gemacht musste ich zwar hochscrollen (kraftanstrengung) und mir nen vernünftigen namen überlegen (kreatives arbeiten) aber mit viel liebe zum deteil hat es dann geklappt^^
Pascal
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#12

Re: case geht nich ?!?

  Alt 11. Feb 2007, 11:19
Zitat von passsy:
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?
"i" ist eine Lokale Variable die nur innerhalb der Procedure ober Funktion besteht.
Bei dem Aufruf der Procedure bzw einer Function ist/ wird der Inhalt der Variable gelöscht.
Setze die Variable "i" als Global.

Weiterhin wird dann bei jedem Aufruf "i" bis in das Uneldliche hochgezählt sodas dein Case bei
"i" grösser 6 keine Wirkung erzielt.

Delphi-Quellcode:
var
  MyCounter: Integer;

//oder mit Vorinitialisierung

var
  MyCounter: Integer = 0;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if MyCounter < 6 then inc(MyCounter) else MyCounter = 1;

  Case MyCounter of
    1: timer2.Enabled := TRUE;
    2: timer3.Enabled := TRUE;
    3: timer4.Enabled := TRUE;
    4: timer2.Enabled := FALSE;
    5: timer3.Enabled := FALSE;
    6: timer4.Enabled := FALSE;
  end; // End of Case
  
end; // End of Procedure Timer1
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: case geht nich ?!?

  Alt 11. Feb 2007, 11:28
Zitat von turboPASCAL:
Weiterhin wird dann bei jedem Aufruf "i" bis in das Uneldliche hochgezählt sodas dein Case bei
"i" grösser 6 keine Wirkung erzielt.
Falsch. Mit dem letzten switch wird Timer1.Enabled auf false gesetzt, somit wird eben diese Timerroutine nicht mehr aufgerufen.
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#14

Re: case geht nich ?!?

  Alt 11. Feb 2007, 11:52
Hi,

ein const i:integer = 0; anstelle von var i:integer; in der Timerroutine hätte es auch getan.

Gruss
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
SirTwist

Registriert seit: 28. Sep 2006
198 Beiträge
 
Delphi XE Professional
 
#15

Re: case geht nich ?!?

  Alt 11. Feb 2007, 12:05
Zitat von thkerkmann:
ein const i:integer = 0; in der Timerroutine hätte es auch getan.
Hast du schonmal versucht, eine Konstante zu erhöhen oder zu vermindern?

Mal ein Tip am Rande: So ein Timer hat ein Attribut "Tag", das man beliebig nutzen kann und vom Typ Integer ist... Na?

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.Tag := (Timer1.Tag + 1) mod 6;
  case Timer1.Tag of
    1: ...
    2: ...
    3: ...
    4: ...
    5: ...
    0: Timer1.Enabled := False; // Trotz 0 wird es als letztes aufgerufen
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#16

Re: case geht nich ?!?

  Alt 11. Feb 2007, 12:09
Zitat von SirTwist:
Hast du schonmal versucht, eine Konstante zu erhöhen oder zu vermindern?
Ja, hab ich - ich mach das öfter so. Anscheinend hast du es noch nicht versucht. Ab Delphi 5? gibt es beschreibbare Konstanten.

Gruss
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
passsy

Registriert seit: 1. Jan 2007
124 Beiträge
 
#17

Re: case geht nich ?!?

  Alt 11. Feb 2007, 12:28
leute ich weiß gar nich was ihr habt das problem is scho lang gelöst
Pascal
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#18

Re: case geht nich ?!?

  Alt 11. Feb 2007, 12:49
[oh]{$WRITEABLECONST ON}[/oh]

@thkerkmann: dem ist nicht unbedingt so.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#19

Re: case geht nich ?!?

  Alt 11. Feb 2007, 12:56
Widerspricht das nicht irgendwie dem Sinn einer Konstante?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#20

Re: case geht nich ?!?

  Alt 11. Feb 2007, 12:57
Zitat von 3_of_8:
Widerspricht das nicht irgendwie dem Sinn einer Konstante?
Ej wollt ich auch sagen

Amn hätte nur dem Vorteil, des direkten Setzens der Variable...
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:40 Uhr.
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