Gracias, funciona perfecto.
Unos problemas mas. Intento pasar el ejemplo que está en un dialogo a ventana, para poderlo manejar en mis programas. Ver el siguiente código (Antonio buen ejemplo para acompañar al wwonders.dbf).
http://forums.fivetechsupport.com/viewtopic.php?f=6&t=22302&p=118743&hilit=loadfrommemory#p118743En mi caso cambio el campo Nombre por Image y de esta forma consigo tener un browse de las imagenes y el ampliado correspondiente de la imagen seleccionada.
Uploaded with
ImageShack.usLo que quiero conseguir es que el browse de las imágenes me las centre o me las ajuste a la celda. ¿Cómo? Me refiero al conjunto total de las imágenes que está en la parte izquierda, el control browse. Ahora si muevo el Splitter me deja siempre la imagen en la izquierda o si amplio el alto de la celda. Quiero conseguir que o bien se centre en la celda o se ajuste. Para ver un ejemplo pongan en la sección de samples ../fwh/samples/wwonders.prg y añadan el siguiente código.
- Code: Select all Expand view
// Testing FiveWin splitter controls
#include "FiveWin.ch"
#include "Splitter.ch"
#include 'xbrowse.ch'
static oWnd
static oBrw, oImage
static oSplit
REQUEST DBFCDX
//----------------------------------------------------------------------------//
function Main()
local cTitle := "Testing the Splitter controls with image and xBrowse"
local cBar
DEFINE WINDOW oWnd FROM 1, 1 TO 400, 600 PIXEL ;
MENU BuildMEnu();
TITLE cTitle
SELECT 1
USE WWONDERS VIA "DBFCDX"
DEFINE BUTTONBAR oBar SIZE 65,65 OF oWnd//_3d
oBar:l2007:=.t.
DEFINE BUTTON OF oBar FILE "..\Res\32x32\Open.bmp" ;
PROMPT "Abrir";
TOOLTIP "Abrir esistente";
ACTION MsgInfo( FWVERSION ) ;
MESSAGE "Abrir un fichero de imagen..."
DEFINE BUTTON OF oBar FILE "..\Res\32x32\Save.bmp" ;
PROMPT "Guardar";
ACTION MsgInfo( FWVERSION ) ;
MESSAGE "Abrir un fichero de imagen..."
MENU oPopup POPUP
MENUITEM "Test" WHEN .f.
MENUITEM "Test" ACTION MsgInfo( "Any action" )
MENU
MENUITEM "Another" WHEN .f.
MENUITEM "More..."
ENDMENU
ENDMENU
@ 65, 1 XBROWSE oBrw SIZE 140,oWnd:nHeight() PIXEL OF oWnd;
COLUMNS "IMAGE" COLSIZES 10 ;
ALIAS "WWONDERS" CELL LINES NOBORDER
@ 65,145 IMAGE oImage SIZE oWnd:nWidth(),oWnd:nHeight() PIXEL OF oWnd ADJUST
oImage:LoadFromMemory( WWONDERS->IMAGE )
WITH OBJECT oBrw
:aCols[ 1 ]:nDataBmpAlign := AL_CENTER //Centra la imagen (Thanks Mr. Rao)
:aCols[ 1 ]:nHeadStrAlign := AL_CENTER //Centra la cabecera (Thanks Mr. Rao)
:aCols[ 1 ]:lBmpStretch := .t. //Ajusta a la celda (Thanks Mr. Rao)
:lRecordSelector := .f.
:nStretchCol := 1
:lHScroll := .f.
:bChange := { || oImage:LoadFromMemory( WWONDERS->IMAGE ), oImage:Refresh() }
:CreateFromCode()
END
@ 65, 140 SPLITTER oSplit ;
VERTICAL ;
PREVIOUS CONTROLS oBrw ;
HINDS CONTROLS oImage ;
LEFT MARGIN 120 ;
RIGHT MARGIN 440 ;
SIZE 4, oWnd:nHeight() PIXEL ;
OF oWnd ;
_3DLOOK ;
UPDATE
ACTIVATE WINDOW oWnd MAXIMIZED;
ON RESIZE oSplit:AdjRight()
return nil
//----------------------------------------------------------------------------//
procedure AppSys // XBase++ requirement
return
//----------------------------------------------------------------------------//
function BuildMenu()
local oMenu
MENU oMenu 2007
MENUITEM "Archivo"
MENU
MENUITEM "Nuevo" + Chr(9)+ "Ctrl-N" MESSAGE "Nuevo fichero en blanco" ;
FILE "..\Res\16x16\New.bmp";
ACTION MsgInfo( "any action" ) ;
ACCELERATOR 0, VK_F2
MENUITEM "Abrir" + Chr(9) + "Ctrl-O" MESSAGE "Abrir fichero existente";
FILE "..\Res\16x16\Open.bmp"
MENUITEM "Guarda" + Chr(9) + "Ctrl-S" MESSAGE "Abrir fichero existente";
FILE "..\Res\16x16\Save.bmp"
MENUITEM "Guardar como" + Chr(9) + "Shift+Ctrl-S" MESSAGE "Abrir fichero existente";
FILE "..\Res\16x16\Saveas.bmp"
MENUITEM "Cerrar" MESSAGE "Abrir fichero existente"
ENDMENU
MENUITEM "&Salir" MESSAGE "Abandonar el programa" ACTION oWnd:End()
ENDMENU
return oMenu
¿A alguien se le ocurre como hacer zoom al control oImage? necesito poder ampliar y reducir la foto seleccionada.