Hola DOS.
"Boton_Del_Memo" era un nombre arbitrario como para denotar que ese era el botón sobre el que se aplicaba el código...
De todos modos supongo que al ser los archivos de tipo .BMP, estaremos hablando de un
TImage, no de un
TMemo.
Si no interpreto mal la lógica de tu código, la intención es mostrar una imágen diferente cuando se pasa por los distintos
TBitBtn. Si es así creo que podrías hacer algo parecido a esto:
Código Delphi
[-]
...
type
TBitBtn = class(Buttons.TBitBtn)
private
procedure CMMouseEnter(var M: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var M: TMessage); message CM_MOUSELEAVE;
end;
TForm1 = class(TForm)
BitBtn1: TBitBtn;
Image1: TImage;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
BitBtn9: TBitBtn;
BitBtn10: TBitBtn;
BitBtn11: TBitBtn;
BitBtn12: TBitBtn;
procedure FormCreate(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
const
PATHTOIMAGES = 'C:\ITM\imagenes\BMP\';
IMAGENAME : array[1..12] of string = ('menu.bmp','mascota.bmp', 'propietario.bmp',
'turnosgeneral.bmp', 'enfermedades.bmp','serviciosgenerales.bmp', 'inventario.bmp',
'facturacion.bmp', 'ayuda.bmp','productosvarios.bmp','propietario.bmp','mascota.bmp');
procedure TBitBtn.CMMouseEnter(var M: TMessage);
begin
inherited;
Form1.Image1.Picture.LoadFromFile(PATHTOIMAGES+IMAGENAME[Tag]);
end;
procedure TBitBtn.CMMouseLeave(var M: TMessage);
begin
inherited;
Form1.Image1.Picture := nil;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
C: TComponent;
begin
for i := 0 to ComponentCount - 1 do
begin
C := FindComponent('BitBtn' + IntToStr(i + 1));
if Assigned(C) then
TBitBtn(C).Tag := i + 1;
end
end;
...
El código de asignación a la propiedad
Tag en el evento
OnCreate, servirá siempre que tus
TBitBtn se llamen BitBtn1, BitBtn2, ..., BitBtn12. De otro modo lo tendrás que asignar individualmente.
Saludos
