Cel :

Chcemy uzyskać efekt, aby po najechaniu myszą na obrazek(Image1a.bmp) został wyświetlony drugi obrazek (Image1b.bmp). Ma to przypominać prosty Rollover.


Końcowy efekt :


Potrzebne komponenty :


Metoda :

1) Wstawiamy komponenty, wypisane w powyższej tabeli i zmieniamy im właściwość name na taką jaka jest w kolumnie "Nazwa"

2) Klikamy podwójnie na obrazku i wybieramy rysunek początkowy.

3) Znajdujemy sekcję implementation i dodajemy deklarację zminnych, zapobiegnie ona mryganiu obrazka na niektórych komponentach:

var
Image : boolean;

4) Klikamy podwójnie w pustym miejscu formularza i dodajemy kod:

Image := false;

5) Klikamy raz na obrazku i z zakładki Events wybieramy zdarzenie OnMouseMove. Dodajemy poniższy kod:

if Image = False then Image1.Picture.LoadFromFile('Image1b.bmp');
Image := true;

6) Klikamy w pustym miejscu formularza i ponownie z zakładki Evants wybieramy zdarzenie OnMouseMove. Tym razem dodajemy kod:

if Image = True then Image1.Picture.LoadFromFile('Image1a.bmp');
Image := False;

7) Uruchamiamy program.


Kod źródłowy :

unit Unit1;

interface

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

type
TForm1 = class(TForm)
Image1: TImage;
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormCreate(Sender: TObject);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
var
Image : boolean;

{$R *.DFM}

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if Image = False then Image1.Picture.LoadFromFile('Image1b.bmp');
Image := true;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Image := false;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if Image = True then Image1.Picture.LoadFromFile('Image1a.bmp');
Image := False;
end;

end.