Announcement

Collapse
No announcement yet.

4 bilder sollen nacheinander angezeigt werden....

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 4 bilder sollen nacheinander angezeigt werden....

    Guten Tag,
    ich bräuchte mal einen Tipp, wie man das hinkriegt, dass 4 Bilder an einer Stelle nacheinander angezeigt werden. Also mit einem timer.
    Also, wenn der Timer aktiviert ist, soll in dem angegeben Intervall immer das Bild gewechselt werden, wenn alle 4 durch sind soll's wieder von vorne anfangen.... und ich hab kein Plan wie das geht, bin absolut neu in Delphi.....
    Ich sag dann schonmal danke

  • #2
    hallo alexander,
    am besten mit einem array von TBitmap:

    var aBmp:Array[0..3]of TBitmap;

    procedure TForm1.FormCreate(Sender: TObject);
    var i:Integer;
    path:String;
    begin
    path:='.\';
    for i:=0 to high(aBmp) do begin
    aBmp[i]:=TBitmap.Create; //Bitmap-Objekt erzeugen
    aBmp[i].LoadFromFile(path+'pic'+IntToStr(i+1)+'.bmp');
    //Bilder einlesen: pic1.bmp, pic2.bmp, pic3.bmp, pic4.bmp
    end;

    end;

    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    var i:Integer;
    begin
    for i:=0 to high(aBmp) do aBmp[i].Free; //Speicher schön wieder freigeben
    end;

    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
    canvas.Draw(0,0,aBmp[Timer1.Tag]);
    Timer1.Tag:=(Timer1.Tag+1) mod (high(aBmp)+1);
    //Index erhöhen, durch modulo-Operation wird zirkuläre Randbedingung erzeugt
    end;

    Sicherlich gehts auch mit ImageList, vielleicht auch eleganter, aber damit habe ich noch nicht gearbeitet.

    Schöne Grüße!
    Marku

    Comment

    Working...
    X