Autor Beitrag
itsme
Hält's aus hier
Beiträge: 9

Win XP Home
Delphi 5
BeitragVerfasst: Mi 09.03.05 20:53 
hallo,

ich habe ein problem mit einer programmierung. bin noch anfänger.
zur erklärung:

ein bild soll bis zum ende laufen und dann dort stehen bleiben, dann soll das nächste laufen. ich arbeite mit zwei timern.
es läuft aber beim wechsel zum zweiten bild, also wenn es loslaufen soll dann muss der hintergrund schwarz werden. beim ersten bild wird es weiss wie gewünscht. nur der farbwechsel zu schwarz funzt nicht. hat jemand ne idee?
vielen dank schonmal für die hilfe.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if image1.left<form1.width
then image1.left:=image1.left+90
else image2.left:=image2.left+90;
 form1.color:=clwhite;
 Timer1.enabled:=true

end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
if image1.left<form1.width
then image1.left:=image1.left+90
else image2.left:=image2.left+90;
 form1.color:=clblack;
 Timer2.enabled:=true
end;

end.


Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt.
wdbee
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 628
Erhaltene Danke: 1



BeitragVerfasst: Do 10.03.05 07:48 
Du hast in beiden Eventhandlern, also den beiden Routinen, die von je einem Timer aufgerufen werden, fast dasselbe stehen. Was hier nicht erkennbar ist: Wann wird welcher Timer zum ersten mal gestartet. So wie das hier aussieht, laufen bei gleichzeitig, und das ist falsch.

Kannst du damit etwas anfangen?
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Timer1Timer(Sender: TObject); 
begin 
  if image1.left < form1.width then 
  begin
    form1.color := clWhite; 
    image1.left := image1.left + 90 
  end
  else 
  begin
    form1.color := clBlack; 
    image2.left := image2.left + 90; 
  end
  Timer1.enabled := true // Das hier ist doch überflüssig, wenn er nie deaktiviert wird?
end;
itsme Threadstarter
Hält's aus hier
Beiträge: 9

Win XP Home
Delphi 5
BeitragVerfasst: Do 10.03.05 23:31 
Titel: war ne aufgabe in der schule /12.klasse info
also erstmal danke, es funktioniert.
also die aufgabe lautete, dass zwei timer vorhanden sein müssen.
timer1 soll bild eins steuern und timer 2 das zweite.
dabei sollte sich der hintergrund ändern beim wechsel wenn das zweite bild startet.

mal gucken ob er mir das abnimmt mit dem einen timer.
aber ich hätte schon gerne den code mit zwei timern.
aber ich hätte noch ne frage. wie krieg ich denn den timer dazu, dass er wenn das zweite bild den rand überschritten hat, das er stoppt?

danke nochmal und lieben gruss

anke
wdbee
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 628
Erhaltene Danke: 1



BeitragVerfasst: Fr 11.03.05 08:19 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TForm1.Timer1Timer(Sender: TObject);   
begin   
  if image1.left < form1.width then   
  begin  
    form1.color := clWhite;   
    image1.left := image1.left + 90   
  end  
  else   
  begin  
    form1.color := clBlack;   
    image2.left := image2.left + 90;   
  end  

  if image2.left > form1.width then   
    Timer1.enabled := False;
end;