AGB  ·  Datenschutz  ·  Impressum  







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

einfaches lauflicht?

Ein Thema von Chriss · begonnen am 22. Mai 2003 · letzter Beitrag vom 24. Mai 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Chriss
Chriss

Registriert seit: 6. Aug 2002
Ort: Ahlen
124 Beiträge
 
Delphi 7 Enterprise
 
#1

einfaches lauflicht?

  Alt 22. Mai 2003, 07:51
hi @ all!!

ich hab ein einfaches lauflicht programmiert. es arbeitet mit 10 labels, wovon immer nur 3 "rot leuchten".
ich hab es schon hinbekommen, dass das lauflicht von links nach rechts und wieder zurück funktioniert, aber dann geht es nicht weiter... warum nicht!?

damit zähle ich ein label hoch, woran sich das lauflicht orientieren soll:

Code:
Label1.Caption := IntToStr(i+1);
i := i+1;
und mit diesem teil "leuchten" die label auf:

Code:
if label1.caption='20' then
begin
label12.color:=clblack;
label15.color:=clred;
end;
(da ist es bereits an der 4. "lampe")

der rückweg geht gleich:

Code:
if label1.caption='85' then
begin
label15.color:=clblack;
label12.color:=clred;
end;

alles schön und gut... aber wenn ich jetzt das label auf '0' setzte, geht es nicht weiter, aber er sollte doch eigentlich wieder hochzählen, oder?

thx

Chriss
I'll be right there - I'll never leave - All I ask of you is ~ Believe
(Christopher Michael Oliva ~ 1963-1993 [Savatage]
  Mit Zitat antworten Zitat
[Flox]Cauchy

Registriert seit: 25. Dez 2002
Ort: Wiesbaden
13 Beiträge
 
Delphi 5 Enterprise
 
#2
  Alt 22. Mai 2003, 07:55
Kannst Du bitte erst mal posten, wie diese 10 Labels angeordnet sind bzw. wie das mit dem Lauflicht aussehen soll? Irgendwie peile ich die Quelltextteile, die Du geschrieben hast, nämlich (noch) nicht. ;-)
  Mit Zitat antworten Zitat
Benutzerbild von Chriss
Chriss

Registriert seit: 6. Aug 2002
Ort: Ahlen
124 Beiträge
 
Delphi 7 Enterprise
 
#3
  Alt 22. Mai 2003, 08:01
also, die label sind horizontal angeordnet, also in einer reihe:



nach den quelltextausschnitten, leuchtet gerade (beide male einmal von links nach rechts und auf dem rückweg von rechts nach links):




ich hoffe, dass das die anordnung verdeutlicht...

der timer ist übrigends auf 0001 gestellt, damit ein laufender übergang erfolgen kann
I'll be right there - I'll never leave - All I ask of you is ~ Believe
(Christopher Michael Oliva ~ 1963-1993 [Savatage]
  Mit Zitat antworten Zitat
[Flox]Cauchy

Registriert seit: 25. Dez 2002
Ort: Wiesbaden
13 Beiträge
 
Delphi 5 Enterprise
 
#4
  Alt 22. Mai 2003, 08:09
Warum machst Du denn nicht so etwas?:
Delphi-Quellcode:
var
  Position: Byte;
  Labels: array[0..9] of TLabel;

procedure Initialize;
  var
    i: Byte;
  begin
    for i := 0 to 2 do
      Labels[i].Color := clRed;
    for i := 3 to 9 do
      Labels[i].Color := clBack;
    Position := 1;
  end;

procedure MoveRight;
  begin
    Labels[(Position+9) mod 10].Color := clBlack;
    Position := (Position+1) mod 10;
    Labels[(Position+1) mod 10].Color := clRed;
  end;

procedure MoveLeft;
  begin
    Labels[(Position+1) mod 10].Color := clBlack;
    Position := (Position+9) mod 10;
    Labels[(Position+9) mod 10].Color := clRed;
  end;
In "Position" steht gerade die Nummer des mittleren der drei Labels, die gerade leuchten.
  Mit Zitat antworten Zitat
Benutzerbild von Chriss
Chriss

Registriert seit: 6. Aug 2002
Ort: Ahlen
124 Beiträge
 
Delphi 7 Enterprise
 
#5
  Alt 22. Mai 2003, 14:02
ähm, sorry, aber dann tut sich gar nichts!
sicher, dass ich nicht noch was brauche?!
timer oder so?!
I'll be right there - I'll never leave - All I ask of you is ~ Believe
(Christopher Michael Oliva ~ 1963-1993 [Savatage]
  Mit Zitat antworten Zitat
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#6
  Alt 22. Mai 2003, 15:34
Du brauchst natürlich noch deinen Timer! Der muss ja die Prozeduren ausführen.
Die Labels bewegen sich ja nicht weil es ihnen Spaß macht sondern weil der Timer ihnen in den Ar*** tritt!

MfG Florian
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
Benutzerbild von Chriss
Chriss

Registriert seit: 6. Aug 2002
Ort: Ahlen
124 Beiträge
 
Delphi 7 Enterprise
 
#7
  Alt 22. Mai 2003, 17:29
entweder bin ich jetzt total durch den wind, oder ich bin zu blöd dazu!!!

ich muss die prozeduren da nehmen und sie mit dem timer starten, oder?!
wie mache ich das denn, wenn ich die in den timer setze, gibts nen fehler (wegen dem wort "prozedur" hinter "begin") *schäm*

I'll be right there - I'll never leave - All I ask of you is ~ Believe
(Christopher Michael Oliva ~ 1963-1993 [Savatage]
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#8
  Alt 22. Mai 2003, 17:59
das wort procedure is ja nur bei der eigentlichen Prozedur. Wenn du sie aufrufst musst du das nich mehr schreiben. wenn du z.B. ein Procedur

Delphi-Quellcode:
procedure TForm1.Hallosagen;
begin
ShowMessage('Hallo')
end;
hast, dann musst du beim aufrufen z.B. in einem ButtonClick nur noch schreiben:

Delphi-Quellcode:
begin
Hallosagen
end;
  Mit Zitat antworten Zitat
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#9
  Alt 23. Mai 2003, 15:15
Ich schließ mich da jetzt mal Satanly () an. Du nimmst einen Timer, doppelklickst auf ihn nachdem du alle Einstellungen gemacht hast und dann schreibst du hinter das begin der Prozedur:
Delphi-Quellcode:
Labels[(Position+9) mod 10].Color := clBlack;
    Position := (Position+1) mod 10;
    Labels[(Position+1) mod 10].Color := clRed;
Dann kommt schon das end; der Prozedur und gut is.

MfG Florian
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
Benutzerbild von Chriss
Chriss

Registriert seit: 6. Aug 2002
Ort: Ahlen
124 Beiträge
 
Delphi 7 Enterprise
 
#10
  Alt 23. Mai 2003, 16:12
Feherl: unkompatible typen...
denke, dass bezieht sich auf die labels!
I'll be right there - I'll never leave - All I ask of you is ~ Believe
(Christopher Michael Oliva ~ 1963-1993 [Savatage]
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 09:53 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