Avatar billede fun22 Nybegynder
22. juni 2002 - 19:38 Der er 8 kommentarer og
1 løsning

On mouse over

Hvordan gør man sådan at når man flytter musen over et billede så afspiller den en lyd? Jeg har prøvet alle events muglighederne.

Nogen foreslag??
Avatar billede dkn Nybegynder
22. juni 2002 - 19:43 #1
OnMouseMove skulle kunne gøre det.

Du kan også lavet lidt snyd og bruge en labet som er sat til transperent over billedet. og så bruge dens OnMouse enter
Avatar billede fun22 Nybegynder
22. juni 2002 - 19:46 #2
Der er da ikke en der hedder on mouse over?
Avatar billede dkn Nybegynder
22. juni 2002 - 19:53 #3
MouseMove min fejl
Avatar billede fun22 Nybegynder
22. juni 2002 - 19:55 #4
Den har jeg prøvet. Men så afspiller den lyden mange gange, fordi at når man bevæger musen rundt på billedet så starter den forfra.
Avatar billede dkn Nybegynder
22. juni 2002 - 19:58 #5
ja men så brug label ideen Lav den transparent. Og sæt Den OnMouseEnter til at afspille lyden.

//
Label1.Transparent := true;

******
eller

Lave en boolean værdi som er sat til false på formen OnMouseMove, og på billeded noget som:

if Mousefirsttime then
begin
  Mousefirsttime := false;
  play sound
end;
Avatar billede eht Nybegynder
23. juni 2002 - 23:41 #6
Du laver et nyt component der bygger på TImage hvor der er tilføjet følgende events: OnMouseEnter og OnMouseLeave.

Du laver en unit med følgende indhold:

//******************************************************
unit MyImageunit;

interface

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

type
  TEntrarEvent = procedure(Sender: TObject) of object;
  TSalirEvent = procedure(Sender: TObject) of object;
  TMyImage = class(TImage)
  private
    { Private declarations }
    FOnEnter: TEntrarEvent;
    FOnExit: TSalirEvent;
    procedure CMMouseEnter(var msg: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var msg: TMessage); message CM_MOUSELEAVE;
  protected
    { Protected declarations }
  public
    { Public declarations }
  published
    { Published declarations }
    property OnMouseEnter: TEntrarEvent read FOnEnter write FOnEnter;
    property OnMouseLeave: TSalirEvent read FOnExit write FOnExit;

  end;

procedure Register;

implementation

procedure TMyImage.CMMouseEnter(var msg: TMessage);
begin
  inherited;
 
  if Assigned(FOnEnter) then FOnEnter(Self);
end;

procedure TMyImage.CMMouseLeave(var msg: TMessage);
begin
  inherited;
  if Assigned(FOnExit) then FOnExit(self);
end;

procedure Register;
begin
  RegisterComponents('Additional', [TMyImage]);
end;

end.
//******************************************************
Denne unit gemmer du og registrerer som et nyt component.
Når det er installeret har du et component der hedder TMyImage som findes under Additional, Det fungerer fuldstændigt som TImage bortset fra de 2 nye events

//Erik
Avatar billede eht Nybegynder
28. juni 2002 - 20:22 #7
Hallo fun22

Kan du ikke bruge mit svar.
Kom lige med en kommentar.

///eht
Avatar billede fun22 Nybegynder
28. juni 2002 - 20:33 #8
jeg har ikke testet det endnu. Jeg er ikke hjemme hved min computer lige nu. Jeg kommer først hjem igen den 30/6
Avatar billede flawless Nybegynder
08. juli 2002 - 02:44 #9
Det virker altså! :-)
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