Défilement horizontal ou vertical

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 302 fois - Téléchargée 20 fois

Contenu du snippet

Réalise un défilement horizontal, en quelque clicks,
- Ses défauts:
Défile une image (Une parfaite fluidité).

- Laisse une traînée d'escargot,
- Je ne sais s'il épuise les ressources machines,
- Avantage
- Paramétrable,
- Une parfaite fluidité dans le défilement,
- Parait sans défaut...

J'aimerais bien que quelqu'un améliore cette source, pour Delphi, beacoups de langages possèdent des fonctions préddéfinies. (Merci)

Source / Exemple :


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  debute : boolean; bitmap : tbitmap;
  i : integer;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
debute := false;
i:=0;

debute:=false;
Bitmap:=Tbitmap.Create ;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 bitmap.Create;
 bitmap.LoadFromFile('c:\delphi.bmp');  // un Label avec copy écran, et suivre avec paint brush
 debute:=true;

form1.Repaint ;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin

while (debute) do
begin
Application.ProcessMessages ;
form1.Canvas.Draw(i,400,bitmap); // dimension de l'image...
i:=i+1;    if i>form1.width then i:=-150; // mieux qu'un timer
 Sleep(5);         // vitesse progression
Application.ProcessMessages ;    // permet de voir ce qui se passe ailleur
end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
bitmap.free
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
debute:=false;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
debute:=false; // Sinon on réalise uniquement un arrêt sur image
end;

end.

Conclusion :


Placer juste 02 boutons (button1 et button2), une image dans la racine (C),
Coller le code, cliquer sur les 02 Boutons
cliquer sur events de la form1
onPaint
OnDestroy
onClose.

A voir également

Ajouter un commentaire Commentaires
Messages postés
36
Date d'inscription
jeudi 27 mars 2008
Statut
Membre
Dernière intervention
27 janvier 2010

Vous avez dupliquez l'initialisation de la valeur 'debute' dans le message FormCreate. Merci quand même.
Messages postés
2106
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
Cantador doit avoir la voix douce car tu as aprécié son chant ^^
Même remarque que Cantador donc j' en rajoute pas ...
A+
Messages postés
120
Date d'inscription
mardi 8 juillet 2008
Statut
Membre
Dernière intervention
1 décembre 2010
1
Wa-hoo, C'est super votre programme, c'est ce que je voulais apprendre, n'empêche que mon essai (barbare), mérite quelques retouches... de la part du CANTADOR. merci

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.