Avatar billede oc_gork Nybegynder
25. august 2003 - 17:11 Der er 7 kommentarer og
1 løsning

Mouseover med .ico filer

Hej Eksperter.
Jeg skal have lavet en mouseovereffekt, som skifter et billede (.ico) til et andet. Jeg havde en komponent som gjorde det (BSMorphbutton), men med den kan man ikke lave gennemsigtige .ico billeder, de fungerer bare som alm. billeder!
  Så det jeg skal bruge er koden til at skifte billedet når musen er over det!

På forhånd tak!
Avatar billede kaper Nybegynder
25. august 2003 - 19:26 #1
Indsæt en ImageList og tilføj de to ønskede ikoner.
Tilføj en procedure:
    procedure WndProc(var Message : TMessage); override;

og som implementation:
procedure TForm1.WndProc(var Message : TMessage);
var
  Icon: TIcon;
begin
if Message.LParam = Longint(Image1) then
begin
  if (Message.Msg = CM_MOUSELEAVE) then
  begin
    Icon:=TIcon.Create;
    ImageList1.GetIcon(1,Icon);
    Image1.Picture.Icon := Icon;
    Icon.Free;
  end else if (Message.Msg = CM_MOUSEENTER) then
  begin
    Icon:=TIcon.Create;
    ImageList1.GetIcon(0,Icon);
    Image1.Picture.Icon := Icon;
    Icon.Free;
  end;
end;
inherited WndProc(Message);
end;

Virker fint for mig :D
Avatar billede oc_gork Nybegynder
25. august 2003 - 20:18 #2
Jeg kan ikke få det til at virke, den skriver:
[Error] Unit1.pas(23): Undeclared identifier: 'WndProc'
Avatar billede kaper Nybegynder
26. august 2003 - 02:29 #3
I såfald tror jeg ikke at du har tilføjet proceduren som jeg skrev... I koden vil du se følgende:
type
  TForm1 = class(TForm)
    ImageList1: TImageList;
    Image1: TImage;

Tilføj en ny linje efter "Image1: TImage;", hvor der står "procedure WndProc(var Message : TMessage); override;"... Herefter er WndProc 'declared'
Avatar billede oc_gork Nybegynder
26. august 2003 - 06:39 #4
Tak Kaper, du havde ret! Der er dog stadig et lille problem, billedet bliver meget mindre end det i virkeligheden er med din procedure!? Det kan jeg ikke lige forstå, ved du hvorfor?
Avatar billede kaper Nybegynder
26. august 2003 - 09:07 #5
Jeg tror, det er fordi det er ikoner, der skal passe ind i fx programmets titellinje - men det kan måske løses ved at konvertere dine ikon-filer til bitmaps og ændre koden en smule
Avatar billede oc_gork Nybegynder
26. august 2003 - 16:02 #6
Det skal være ikoner, fordi de SKAL være gennemsigtige! Jeg har sat image1 til at være et af ikonerne, men når jeg kører musen henover skifter den til det andet, som er for lille, og når musen fjernes skifter den til det første, som nu også er for lille! Håber du (eller en anden) kan hjælpe!
Avatar billede oc_gork Nybegynder
27. august 2003 - 20:30 #7
Jeg fik det til at virke! Imagelisten skulle bare laves om til samme størrelse som image1! Du får pointsne nu Kaper :)
Avatar billede kaper Nybegynder
28. august 2003 - 21:52 #8
Ah ok, smart - og tak
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