Imagelist animee dans une tstatusbar

Contenu du snippet

Voici comment mettre une TImageList dans une TStatusbar et le tous annimé,
comme le fait le compilateur Visual Studio
Un grand merci a DelphiProg

Il suffit d'avoir :
un TTimer
TImageList
TStatusBar

Source / Exemple :


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ImgList, ComCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    StatusBar1: TStatusBar;
    ImageList1: TImageList;
    procedure StatusBar1DrawPanel(StatusBar: TStatusBar;
      Panel: TStatusPanel; const Rect: TRect);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
   Form1: TForm1;
   ImgIndex: integer = 0;
implementation

{$R *.dfm}

procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
  Panel: TStatusPanel; const Rect: TRect);
begin
  ImageList1.Draw(StatusBar1.Canvas, Rect.Left + 2, Rect.Top, ImgIndex);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var Rect: TRect;
begin
  if ImgIndex < ImageList1.Count - 1 then
  begin
     ImageList1.Draw(StatusBar1.Canvas, Rect.Left + 2, Rect.Top, ImgIndex);
     inc(ImgIndex);
  end
  else
  begin
    ImageList1.Draw(StatusBar1.Canvas, Rect.Left + 2, Rect.Top, ImgIndex);
    ImgIndex := 0;
  end;
  StatusBar1.Panels[2].Text:=TimeToStr(Now);
end;

end.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.