Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Delphi para la web
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-05-2012
Avatar de martini002
martini002 martini002 is offline
Miembro
 
Registrado: may 2012
Ubicación: Puerto Ordaz - Venezuela
Posts: 175
Poder: 12
martini002 Va por buen camino
Exclamation Crear un Boton funcional a partir de dos Imagenes

Saludos,

Desde la tarde de ayer he intentado
realizar un boton funcional, a partir de dos imagenes
un TImage con una imagen estatica
la cuestion es que desconozco el codigo
para lograr que cuando pase el mouse
entonces cambie a otra imagen obviamente
y cuando quite el mouse entonces coloque la imagen anterior
he intentado con BitBtn pero no hubo exito
realmente esta es una de las cosas que por el momento
me urge bastante, agradeceria mucho y apreciaria su apoyo

Best,
Martin
Responder Con Cita
  #2  
Antiguo 19-05-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola martini002.

Podés hacerlo de este modo:
Código Delphi [-]
...
type
  TImage=class(ExtCtrls.TImage)
    procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
  end;

  TForm1 = class(TForm)
    Image1: TImage;
  private
  public
  end;

var
  Form1: TForm1;

implementation 

uses jpeg;

(* Mouse sobre la Imágen *)
procedure TImage.CMMouseEnter(var Msg: TMessage);
begin
  Form1.Image1.Picture.LoadFromFile('C:\Tu_Ruta\Imagen1.jpg'); // o como asignes la imagen
end;

(* Mouse fuera de la Imágen *)
procedure TImage.CMMouseLeave(var Msg: TMessage);
begin
  Form1.Image1.Picture.LoadFromFile('C:\Tu_Ruta\Imagen2.jpg'); // o como asignes la imagen
end;
...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 19-05-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo.

Me quede pensando, ya que no estaba muy claro si hablabas de un TImage o de un TBitBtn.

Si la imágen que deseas que cambie es la que este en el TBitBtn, te convendría poner las dos imágenes en un TImageList y hacer:
Código Delphi [-]
type
  TBitBtn=class(Buttons.TBitBtn)
    procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
  end;

  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    ImageList1: TImageList;
  private
  public
  end;

var
  Form1: TForm1;

implementation 

procedure TBitBtn.CMMouseEnter(var Msg: TMessage);
begin
  with Form1 do
  begin
    BitBtn1.Glyph:= nil;
    ImageList1.GetBitmap(0, BitBtn1.Glyph)
  end;
end;

procedure TBitBtn.CMMouseLeave(var Msg: TMessage);
begin
  with Form1 do
  begin
    BitBtn1.Glyph:= nil;
    ImageList1.GetBitmap(1, BitBtn1.Glyph)
  end;
end;
...
Como verás el modo de detectar la entrada/salida del componente no difiere del anterior.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 20-05-2012
Avatar de martini002
martini002 martini002 is offline
Miembro
 
Registrado: may 2012
Ubicación: Puerto Ordaz - Venezuela
Posts: 175
Poder: 12
martini002 Va por buen camino
Ecfisa,

Gracias por tu respuesta, realmente me ayudo mucho

Código Delphi [-]
Form1.Image1.Picture.LoadFromFile('C:\Tu_Ruta\Imagen1.jpg');

Esto era lo que estaba buscando exactamente
como modificar esa propiedad directamente desde el codigo,
realmente como en el primer ejemplo es precisamente
lo que necesito, pero no me funciona,
el lenguaje no me reconoce esta propiedad

Código Delphi [-]
CMMouseEnter
CMMouseLeave

me tira estos errores

Código Delphi [-]
[Error] AreaRectangulo.pas(59): ';' expected but '.' found
[Error] AreaRectangulo.pas(59): ';' expected but ')' found

Código Delphi [-]
procedure BotonImg.CMMouseEnter(var Msg: TMessage); // Aqui el error
begin
  Acciones.
end;


Ese hover es lo que realmente he venido buscando
pero pude encontrar otra forma un poco menos atractiva
pero que al final funciono muy bien
como podria resolver lo del hover?

Tambien me interesaria bastante conocer donde
conseguiste conocer esta propiedad "LoadFromFile"
seguramente alli mismo deben haber otras que me ayudarian bastante
interesantes respuestas,
gracias por el apoyo

Best,
Martin

Código Delphi [-]
procedure TForm1.BotonImgMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Form1.BotonImg.Picture.LoadFromFile('F:\Borland\Delphi7\Projects\Area Rectangulo\BotonAbajo.jpg');
end;

procedure TForm1.BotonImgMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Form1.BotonImg.Picture.LoadFromFile('F:\Borland\Delphi7\Projects\Area Rectangulo\BotonArriba.jpg');
end;
Responder Con Cita
  #5  
Antiguo 20-05-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola martini002.

Cita:
Esto era lo que estaba buscando exactamente
como modificar esa propiedad directamente desde el codigo,
realmente como en el primer ejemplo es precisamente
lo que necesito, pero no me funciona,
el lenguaje no me reconoce esta propiedad
¿ Incluiste las siguientes líneas antes de la declaración de clase del form ?
Código Delphi [-]
type
  TBitBtn=class(Buttons.TBitBtn)
    procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
  end;
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 20-05-2012 a las 21:30:41.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
MySQL Completamente Funcional y OpenSource rcm861 Noticias 21 16-05-2008 20:40:34
crear un XML a partir de ClientDataSet jmlifi Internet 2 09-01-2006 00:18:28
Crear un pdf a partir de otros pdf barencibia Varios 0 13-06-2004 20:25:08
Crear tabla pdx a partir de dbf lbidi Tablas planas 7 30-03-2004 17:58:55
Crear un EXE a partir de un TXT o CPP aleidania Varios 1 25-10-2003 19:36:45


La franja horaria es GMT +2. Ahora son las 08:24:19.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi