Avatar billede neo2k Nybegynder
11. oktober 2003 - 18:27 Der er 10 kommentarer og
1 løsning

Rollover komponent

Er der nogle der kender et rollover-komponent til delphi, eller hvordan kan man lave et, det skal bruges til knapper, hvor der bare skal være 2 billeder, og når musen flyttes over billedet, ændre billedet sig, og når musen flyttes ud igen, skifter det tilbage, billed-filerne skal helst ligge i programmet, og ikke være filer ved siden af.
Avatar billede stone Forsker
12. oktober 2003 - 01:25 #1
prøv at smide 2 imagelist på din form, indlæs billedet som skal skifte når musen er over knappen.

I imagelist2 indlæser du billedet som skal vises når du forlader knappen.

følgende kode índsætter du i knappen's onmousemove
var
  Bitmap : TBitmap;
begin
  Bitmap := TBitmap.Create;
  ImageList1.GetBitmap(rx1.Tag, Bitmap);
  rx1.Glyph.Assign(Bitmap);
  Bitmap.Free;
  rx1.Tag := (rx1.Tag + 0) mod 1;

følgende kode indsætter du i onmousemove i din form:



var
  Bitmap : TBitmap;
begin
  Bitmap := TBitmap.Create;
  ImageList2.GetBitmap(rx1.Tag, Bitmap);
  rx1.Glyph.Assign(Bitmap);
  Bitmap.Free;
  rx1.Tag := (rx1.Tag + 0) mod 1;
Avatar billede stone Forsker
12. oktober 2003 - 01:25 #2
rx1 er navnet på din knap.
Avatar billede neo2k Nybegynder
12. oktober 2003 - 19:12 #3
Der er efter hvad jeg har fundet ud af, ingen onmouseover i Delphi 7, kan du hjælpe med det???
Avatar billede stone Forsker
12. oktober 2003 - 21:42 #4
næ... men der er en OnMouseMove, i Events for hver components...brug den.
Avatar billede neo2k Nybegynder
14. oktober 2003 - 22:35 #5
Aktiveres den når musen flyttes over komponenten, fordi hvad kan man så finde ud af hvornår musen flytter sig ud igen?
Avatar billede stone Forsker
14. oktober 2003 - 23:25 #6
hvis du har kigget på min kode, vil du se der er 2 eventer

når musen er over componentet //knappens OnMouseMove

og når musen forlader componentet// Formens OnMouseMove, når den forlader
componentet bliver en event udløst, som gør at billedet skiftes ud.

Her er en nemmere metode:


procedure TForm1.rx1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  Bitmap : TBitmap;
begin
  Bitmap := TBitmap.Create;
  ImageList1.GetBitmap(rx1.Tag, Bitmap);
  rx1.Glyph.Assign(Bitmap);
  Bitmap.Free;
  rx1.Tag := (rx1.Tag + 0) mod 1;
  end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
rx1.Glyph.LoadFromFile('bulboff.bmp');//henter bulboff i dit project bibliotek
end;

skulle du stadig have problemer med eksemplet kan jeg sende et til dig.
Avatar billede stone Forsker
14. oktober 2003 - 23:27 #7
den kræver kun 1 imagelist
Avatar billede stone Forsker
14. oktober 2003 - 23:59 #8
en anden mulighed er at installere det her component

kopier det til en editor og gem filen som imageEx.pas

http://www.swissdelphicenter.ch/en/showcode.php?id=1068

installer componentet og du kan se det i additional [imageEx]
I events for imageEx er der 2 eventer OnMouseLeave - OnMouseEnter
du kan lægge imageEx over en knap sæt den til center = true

procedure TForm1.ImageEx1MouseEnter(Sender: TObject);
begin
imageex1.Picture.LoadFromFile('bulbon.bmp');//mus over billede
end;

procedure TForm1.ImageEx1MouseLeave(Sender: TObject);
begin
imageex1.Picture.LoadFromFile('bulboff.bmp');//mus forlader billede
end;

Det giver også en pænere overgang når der skiftes billede, noget bedre end at bruge en Imagelist dvs det flimre ikke når musen bevæger sig på formen.
Avatar billede eht Nybegynder
17. oktober 2003 - 15:45 #9
Du har brug for et TImage der har fået tilføjet OnMouseLeave og OnMouseEnter.
Det kan du selv lave

Læs accepteret svar her:
http://www.eksperten.dk/spm/227666

Erik
Avatar billede stone Forsker
21. december 2003 - 22:11 #10
har du fået løst dit problem?
Avatar billede neo2k Nybegynder
22. december 2003 - 11:57 #11
1000 tak... det virker forneemt...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester