Autor |
Beitrag |
chriss1988
      
Beiträge: 389
windows xp prof,home,windows98
delphi5
|
Verfasst: Do 08.12.05 10:32
als erstes ma guten morgen an ale
wie ihr aus der überschrift bestimmt schon gelesen habt möchte ich es hinbekommen das mein panel blink  ,da er immoment nur nach links läuft und mir das ziemlich öde ist  .
ich hab mal ein teil meines codes kopiert könnt ihr mir bei der sache ma bitte helfen, da in der hilfe von delphi5 leider net mehr drin steht.
Delphi-Quelltext 1: 2: 3: 4: 5:
| procedure TForm2.Timer1Timer(Sender: TObject); begin Timer1.Interval := 100; if panel1<> nil then panel1.Left := panel1.Left + 1; |
naturlich soll der panel nur ne bestimmte zeit blinken und dan aufhörn z.B (5 ma blinken)
also brauch ich da auch en bissl hilfe
schon ma danke für jede antwort
mfg.
diddi
Moderiert von Gausi: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Do 08.12.2005 um 10:29
|
|
azubi_20
      
Beiträge: 593
WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
|
Verfasst: Do 08.12.05 10:47
Rezept zum blinken lassen :
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| - variable zähler mit 0 initialisieren - in den timer einbauen : - zähler = zähler +1 - in den timer ne bedingung : - wenn panel.farbe = rot dann panel.farbe = grün sonst panel.farbe = rot - und noch ne bedingung : - wenn zähler = 10 dann timer = aus |
und dann musst du nor noch den timer starten und dein panel blinkt lustig in rot und grün
|
|
chriss1988 
      
Beiträge: 389
windows xp prof,home,windows98
delphi5
|
Verfasst: Do 08.12.05 10:52
aha und nun bitte auf deutsch ich bin neu im programmieren
|
|
azubi_20
      
Beiträge: 593
WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
|
Verfasst: Do 08.12.05 11:00
chriss1988 hat folgendes geschrieben: | aha und nun bitte auf deutsch ich bin neu im programmieren |
meiner Meinung ist mein Beitrag in Deutsch
was verstehst du denn nicht ?
|
|
chriss1988 
      
Beiträge: 389
windows xp prof,home,windows98
delphi5
|
Verfasst: Do 08.12.05 11:04
wenn ich ehrlich bin ich versteh nur bahnhof
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Do 08.12.05 11:04
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| var Form1: TForm1; Zaehler:Integer; implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin Timer1.Enabled:=True; end;
procedure TForm1.Timer1Timer(Sender: TObject); begin Inc(Zaehler); Timer1.Interval:=1000; if Zaehler=1 then Label1.Color:=clGreen; if Zaehler=2 then Label1.Color:=clYellow; if Zaehler=3 then Label1.Color:=clRed; if Zaehler=4 then Label1.Color:=clBtnFace; if Zaehler=5 then Zaehler:=0; if Zaehler=5 then Timer1.Enabled:=False; end;
procedure TForm1.FormCreate(Sender: TObject); begin Timer1.Enabled:=False; end;
end. |
Zuletzt bearbeitet von Blackheart666 am Do 08.12.05 11:23, insgesamt 1-mal bearbeitet
|
|
chriss1988 
      
Beiträge: 389
windows xp prof,home,windows98
delphi5
|
Verfasst: Do 08.12.05 11:08
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Do 08.12.05 11:13
Den Timer Interval und das False im Create hab Ich jetzt nur der Übersicht halber gesetzt, das kannst Du auch über den OB tun.
|
|
chriss1988 
      
Beiträge: 389
windows xp prof,home,windows98
delphi5
|
Verfasst: Do 08.12.05 12:17
ok danke das hab ich jetzt nun öchte ich das das nur kommt wenn ich
kein radiobutton anklick
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46:
| procedure TForm2.BitBtn1Click(Sender: TObject); begin
Tauschgeld:=strtofloat(edit1.text);
If radiobutton1.checked then Betrag:=Tauschgeld/Dollar;
If radiobutton2.checked then Betrag:=Tauschgeld/Kronen;
If radiobutton3.checked then Betrag:=Tauschgeld/1000;
if (not radioButton1.checked) and (not radioButton2.checked) and (not radioButton3.checked) then betrag:=0; panel1.caption:='error'; panel1.visible:=true; Timer1.Enabled:=True;
edit2.text:=floattostrf(Betrag,fffixed,9,2);
end;
procedure TForm2.Timer1Timer(Sender: TObject); begin Inc(Zaehler); Timer1.Interval:=1000; if Zaehler=1 then panel1.Color:=clGreen; if Zaehler=2 then panel1.Color:=clYellow; if Zaehler=3 then panel1.Color:=clRed; if Zaehler=4 then panel1.Color:=clBlue; if Zaehler=5 then panel1.Color:=clBtnFace; if Zaehler=6 then Timer1.Enabled:=False;
end;
procedure TForm2.FormCreate(Sender: TObject); begin Timer1.Enabled:=False; end; |
also wie mach das nun weil immoment bringt er mir immer die fehlermeldung.
|
|
petergensfeld
      
Beiträge: 46
Windows Vista 32-Bit
Delphi XE Professional
|
Verfasst: Do 08.12.05 15:12
Hallo,
ich würde Blackhearts Code noch dahin ändern, dass die Laufvariable nicht global, sondern statisch innerhalb der Routine definiert wird. Das Interval braucht nur einmal im FormCreate gesetzt zu werden (oder eben im OI). Die Timer-Routine könnte dann so aussehen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TForm1.Timer1Timer(Sender: TObject); const Zaehler: Integer=0; begin inc(Zaehler); case Zaehler of 1: Label1.Color:=clGreen; 2: Label1.Color:=clYellow; 3: Label1.Color:=clRed; 4: Label1.Color:=clBtnFace; else begin Timer1.Enabled:=False; Zaehler:=0; end; end; end; |
Du solltest mal ein begin...end um Dein If setzen!
Gruß Dirk
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Do 08.12.05 15:39
Ich Denke mal man sollte zu seinem Problem, immer dazu sagen was habe Ich denn überhaupt vor ! (Die Idee wird schon keiner Klauen)
"Weil" - aus dem einem Problem ergibt sich das andere, und wenn man weiss worauf der Fragesteller hinauswill (was manchmal nicht so einfach ist) lässt sich das eigentliche Problem doch schon ziehmlich genau eingrenzen und eventuell auch ziehmlich einfach beantworten.
(Sonst ist meistens alles geraten, der Thread wird lang und das Ergebnis ist naja...)
Ich muss dazu sagen das es mir auch schon öfter so ging, das Ich zwar mein Problem kannte aber es mir ziehmlich schwer gefallen ist es auch irgendwie rüberzubringen.
Die ganze Sache mit Case usw. ist alles richtig, aber man weiss eben nie genau wie weit ist der Fragesteller !
Ich denke drei Codezeilen zum Anfang sind nicht viel mehr Arbeit, aber eben zum Anfang besser zu verstehen.
|
|
Ivo@CoMRoK
      
Beiträge: 258
Win XP
D3 Prof., D7 Pe.
|
Verfasst: Fr 09.12.05 22:05
Also ich finde das ist jetzt irgendwie nicht eindeutig:
Willst su dass das Panel immerwieder mal blinkt und dann wieder nicht?
Dann würd ich das so machen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| procedure Timer1.Timer(Sender: TObject) begin Timer1.Interval := 100; Label1.Color:= clGreen; sleep(10); ... end; |
Oder willst du auf eine Aktion etwas ausführen?
Dann so:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| procedure Button1.Click(Sender: TObject) begin Label1.Color := clGreen; sleep(10); ... end; |
mfg Ivo
_________________ Fällt der Bauer tot vom Traktor, stand am Waldrand ein Reaktor.
Ein altes indianisches Sprichwort besagt:Es kann gefährlich sein gelben Schnee zu essen.
|
|