Chcemy uzyskać efekt, aby po najechaniu myszą na obrazek(Image1a.bmp) został wyświetlony drugi obrazek (Image1b.bmp). Ma to przypominać prosty Rollover.
Nazwa |
Klasa |
Image1 |
TImage |
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.
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.