Autor Beitrag
onlinekay
Hält's aus hier
Beiträge: 10



BeitragVerfasst: So 22.02.09 20:35 
hallo, hab so ein thema in den foren noch nicht entdeckt deswegen kurz ne frage. wie kann ich bilder mittels timer kontrolliert anzeigen lassen? benutze derzeit den befehl random für zufällige wiedergabe. es muss doch auch ein pondon dazu geben. für random quasi ein anderes befehlwort.

hier der code zum besseren verständnis.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure TForm1.Timer4Timer(Sender: TObject);
var b:integer;
begin
 randomize;
 b:=random(9)
 case b of
  0: image1.Picture.LoadFromFile('.\Bilder\me1.jpg');
  1: image1.Picture.LoadFromFile('.\Bilder\me2.jpg');
  2: image1.Picture.LoadFromFile('.\Bilder\me3.jpg');
  3: image1.Picture.LoadFromFile('.\Bilder\me4.jpg');
  4: image1.Picture.LoadFromFile('.\Bilder\me5.jpg');
  5: image1.Picture.LoadFromFile('.\Bilder\me6.jpg');
  6: image1.Picture.LoadFromFile('.\Bilder\me7.jpg');
  7: image1.Picture.LoadFromFile('.\Bilder\me8.jpg');
  8: image1.Picture.LoadFromFile('.\Bilder\me9.jpg');
 end;
end;
Dunkel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 682

Mac OS X Snow Leopard
Xcode 3.1
BeitragVerfasst: So 22.02.09 20:52 
Leg Dir eine Integer-Variable im Private-Abschnitt Deiner (Fenster-)Klasse an, initialisiere sie am Anfang mit dem Wert 0 und inkrementiere sie nach jedem Durchlauf der TTimer-Eventbehandlung (ggf. eine Überprüfung zwecks Überlauf der Variable, damit der Spaß wieder von vorne beginnen kann). That's it. :)

_________________
Ich streite einsam mich mit dieser Oberflächenwelt
Gutes sei ein löblich Brot von dem ich zehre - bis zum Tod [Das Ich - Im Ich]
onlinekay Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: So 22.02.09 21:07 
okay danke erstmal. was bedeutet inkrementieren?
Dunkel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 682

Mac OS X Snow Leopard
Xcode 3.1
BeitragVerfasst: So 22.02.09 21:13 
user profile icononlinekay hat folgendes geschrieben Zum zitierten Posting springen:
okay danke erstmal. was bedeutet inkrementieren?

Inc(myIntVar); macht das selbe wie myIntVar := myIntVar + 1;, die Variable um einen bestimmten Wert erhöhen.

Das Pendent wäre dekrementieren, Dec(myIntVar); respektive myIntVar := myIntVar - 1;

_________________
Ich streite einsam mich mit dieser Oberflächenwelt
Gutes sei ein löblich Brot von dem ich zehre - bis zum Tod [Das Ich - Im Ich]
onlinekay Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: So 22.02.09 21:24 
okay das mit dem inkrementieren hab ich herausgefunden. sorry für die doofe frage.

ich hab eine varible a im privat festgelegt und sie bei programmstart "Form.Activate" mit a:=0 initialisiert.

wie kann ich die variable nun in meinem timer einbauen. einfach nur a:=a+1 zu schreiben wäre doch zu einfach :)
onlinekay Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: So 22.02.09 21:29 
danke hat sich erledigt. ich hab herausgefunden wie es klappt. einfach für das random(9) schreiben random(a) und dann nur noch if a=0 then , if a=1 then etc..

danke.
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: So 22.02.09 21:29 
ungefähr so
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.Timer4Timer(Sender: TObject);
begin
  inc(a);
  if a = 10 then a:=1;
  image1.Picture.LoadFromFile('.\Bilder\me' +IntToStr(a)+ '.jpg'); 
end;


Zuletzt bearbeitet von Blackheart666 am So 22.02.09 22:05, insgesamt 1-mal bearbeitet
onlinekay Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: So 22.02.09 21:56 
vielen dank. deine version sieht etwas professioneller aus als meine. aber es klappt :)

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure TForm1.Timer4Timer(Sender: TObject);
var b:integer;
begin
 a:=a+1;
 randomize;
 b:=random(a);
 if a=0 then image1.Picture.LoadFromFile('.\Bilder\me1.jpg');
 if a=1 then image1.Picture.LoadFromFile('.\Bilder\me2.jpg');
 if a=2 then image1.Picture.LoadFromFile('.\Bilder\me3.jpg');
 if a=3 then image1.Picture.LoadFromFile('.\Bilder\me4.jpg');
 if a=4 then image1.Picture.LoadFromFile('.\Bilder\me5.jpg');
 if a=5 then image1.Picture.LoadFromFile('.\Bilder\me6.jpg');
 if a=6 then image1.Picture.LoadFromFile('.\Bilder\me7.jpg');
 if a=7 then image1.Picture.LoadFromFile('.\Bilder\me8.jpg');
 if a=8 then image1.Picture.LoadFromFile('.\Bilder\me9.jpg');
 if a=8 then a:=-1;
 end;
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19336
Erhaltene Danke: 1751

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 22.02.09 22:29 
Wobei du noch das Problem mit den Pfaden hast, so ist das falsch, weil du davon ausgehst, dass der aktuelle Pfad nie geändert wird. Das heißt aber, dass du zum Beispiel nie z.B. einen Öffnen-Dialog dem Benutzer anzeigen darfst...
www.delphi-library.d...ewtopic.php?p=499701