FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Acci贸n en un bitmap
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Acci贸n en un bitmap
Posted: Mon Jan 12, 2015 04:00 PM
Compa帽eros, tengo un bitmap en un dialogo, lo implement茅 de la siguiente manera,

Code (fw): Select all Collapse
hBitmap := LoadBitmap( GetResources(), 'cerrar' )
DrawBitmap( hDc, hBitmap, 8, aRect[ 4 ] - 45, 37, 20 )


Me gustar铆a que se pudiera ejecutar una acci贸n al hacer click en 茅l. Existe alguna manera ? Much铆simas gracias.

Saludos
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Acci贸n en un bitmap
Posted: Mon Jan 12, 2015 05:07 PM

Horacio,

Lo id贸neo es que uses un control TBitmap. Si lo est谩s mostrando sobre una ventana puedes hacer:

@ <nFila>, <nColumna> BITMAP oBmp OF oWnd RESOURCE "cerrar" ;
ON CLICK MsgInfo( "Mi acci贸n" )

Para un di谩logo definido desde recursos:

REDEFINE BITMAP oBmp ID <nId> OF oDlg RESOURCE "cerrar" ;
ON CLICK MsgInfo( "Mi acci贸n" )

Y en el fichero RC lo defines como un control definido por el usuario de clase "TBitmap"

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Re: Acci贸n en un bitmap
Posted: Mon Jan 12, 2015 05:24 PM

Antonio, esta rutina la utilizo en el m茅todo Paint del dialogo, si utilizo la clase me da errores cada tanto. Por eso decid铆 implementarlo de esta manera. Capaz que se pueda usar la clase pero no he podido dilucidar el porque de los gpf. Gracias

Saludos

Posts: 498
Joined: Thu May 10, 2007 08:30 PM
Re: Acci贸n en un bitmap
Posted: Tue Jan 13, 2015 11:41 AM

Horacio, te estoy contestando desde una tableta, por lo que no tengo el FWH a mano, pero con oDlg:blButtonDown o como se llame, puedes llamar a una funci贸n pas谩ndole nRow y nCol, para saber si has pinchado sobre el Bmp o no. Eso lo hago algunas veces y va muy bien.

Un saludo.

Peaaaaaso de foro...

FWH 2007 - xHarbour - BCC55
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Re: Acci贸n en un bitmap
Posted: Tue Jan 13, 2015 05:03 PM

Antol铆n, gracias por tu respuesta. Si pudieras postear un ejemplo te lo agradecer铆a.

Saludos

Posts: 498
Joined: Thu May 10, 2007 08:30 PM
Re: Acci贸n en un bitmap
Posted: Tue Jan 13, 2015 05:45 PM
Algo como esto::
Code (fw): Select all Collapse
DEFINE DIALOG ....
聽 聽DEFINE GET ....
聽 聽...
聽 聽oDlg:bPainted 聽:= { |hDc| ( PalbmpLoad(hDc,10,10,hBmp,hPal), .... ) }
聽 聽oDlg:bLClicked := { |nRow,nCol| AccionBmp(nRow,nCol,hBmp) }
ACTIVATE DIALOG ...

Suoponiendo que el Bitmap esta en las coordenadas 10,10 y mide 200X300 (AnchoXAlto)

FUNCTION AccionBmp(nRow,nCol,hBmp)
聽 聽IF nRow > 9 .AND. nRow < 311 .AND. nCol > 9 .AND. nCol < 211
聽 聽 聽 ...
聽 聽 聽 HE PINCHADO SOBRE EL BITMAP
聽 聽 聽 Y REALIZO LA ACCION PREVISTA
聽 聽 聽 ...
聽 聽ENDIF
聽 聽...
RETURN NIL
Peaaaaaso de foro...

FWH 2007 - xHarbour - BCC55
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Re: Acci贸n en un bitmap
Posted: Tue Jan 13, 2015 09:20 PM

Muchas gracias Antol铆n por tu sugerencia, pruebo y comento.

Saludos

Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Re: Acci贸n en un bitmap
Posted: Wed Jan 14, 2015 02:02 PM

Funcion贸 perfectamente. Muchas gracias Antol铆n.

Saludos

Continue the discussion