IMAGEN ALEATORIA
- Jairo Barbosa
- Posts: 194
- Joined: Fri Jan 23, 2009 2:50 am
- Location: Cali Valle Colombia
- Contact:
IMAGEN ALEATORIA
Antonio, Daniel, y demás integrantes del foro:
Necesito presentar una imagen escogida aleatoriamente, alguien me puede explicar un arreglo de cómo podría hacerlo?
De antemano agradecido por la enseñanza
Jairo Barbosa
Necesito presentar una imagen escogida aleatoriamente, alguien me puede explicar un arreglo de cómo podría hacerlo?
De antemano agradecido por la enseñanza
Jairo Barbosa
- RodolfoRBG
- Posts: 257
- Joined: Tue May 16, 2006 4:46 pm
- Location: San Luis Potosi, SLP, Mexico
- Contact:
Re: IMAGEN ALEATORIA
Se me ocurre:
X:=Directory("*.BMP")
y:=nRandom(len(x)+1)+1
ImagenAleatoria:=X[Y,1]
X:=Directory("*.BMP")
y:=nRandom(len(x)+1)+1
ImagenAleatoria:=X[Y,1]
-
- Posts: 497
- Joined: Sun Oct 16, 2005 3:32 am
- Location: Quito - Ecuador
- Has thanked: 1 time
- Been thanked: 1 time
- Contact:
Re: IMAGEN ALEATORIA
Jairo,
Te preparé hace dos días un ejemplo y he intentado enviártelo muchas veces a tu email pero rebota.
Tienes otra cuenta de email ?
Saludos,
Carlos Gallego
Te preparé hace dos días un ejemplo y he intentado enviártelo muchas veces a tu email pero rebota.
Tienes otra cuenta de email ?
Saludos,
Carlos Gallego
Saludos,
Carlos Gallego
*** FWH-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
Carlos Gallego
*** FWH-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
- Jairo Barbosa
- Posts: 194
- Joined: Fri Jan 23, 2009 2:50 am
- Location: Cali Valle Colombia
- Contact:
Re: IMAGEN ALEATORIA
Rodolfo Muy agradecido por tu sugerencia
Carlos Gracias de antemano mira mis correos hk3dqc@yahoo.es hk3dqc@gmail.con fundacion@genesisoft.co.cc
Dios les Bendiga
Carlos Gracias de antemano mira mis correos hk3dqc@yahoo.es hk3dqc@gmail.con fundacion@genesisoft.co.cc
Dios les Bendiga
-
- Posts: 497
- Joined: Sun Oct 16, 2005 3:32 am
- Location: Quito - Ecuador
- Has thanked: 1 time
- Been thanked: 1 time
- Contact:
Re: IMAGEN ALEATORIA
Saludos,
Carlos Gallego
*** FWH-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
Carlos Gallego
*** FWH-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
- cuatecatl82
- Posts: 625
- Joined: Wed Mar 14, 2007 6:49 pm
- Location: San Cristobal de las Casas, Chiapas México
- Contact:
Re: IMAGEN ALEATORIA
Hola Jairo:
Ayer conteste a tu petición via correo y aqui tengo lo que me solicitaste:
De antemano pido disculpas por no contestar a tiempo tu correo.
Para cambiar la Imagen de Fondo haz click derecho en el escritorio para que salga el menú de selección, puedes avanzar, regresar o mostrar aleatoriamente una imagen de 5 que contiene el ejemplo, puedes poner las que quieras y necesites, solo haz el cambio de cuentas imagenes quieras mostrar en tu sistema y listo.
![Image](http://img692.imageshack.us/img692/2481/dibujomkhw.jpg)
Te dejo el ejemplo construido y el codigo fuente para quienes lo necesiten y si por si acaso con el tiempo no pueden bajar el ejemplo, las imagenes son en formato JPG, uso freeimage.dll para mostrarlas, puedes usar BMP y PNG, pero JPG es mejor por tamaño de cada imagen, las tengo guardadas en la carpeta "FONDOS", puedes poner más si gustas.
Aqui te dejo el ejemplo construido:
http://www.megaupload.com/?d=E0DTZTZV
Ojala sea de utilidad y sea lo que necesites... si algo más necesitas no dudes en preguntarme.. Saludos..
Ayer conteste a tu petición via correo y aqui tengo lo que me solicitaste:
De antemano pido disculpas por no contestar a tiempo tu correo.
Para cambiar la Imagen de Fondo haz click derecho en el escritorio para que salga el menú de selección, puedes avanzar, regresar o mostrar aleatoriamente una imagen de 5 que contiene el ejemplo, puedes poner las que quieras y necesites, solo haz el cambio de cuentas imagenes quieras mostrar en tu sistema y listo.
![Image](http://img692.imageshack.us/img692/2481/dibujomkhw.jpg)
Te dejo el ejemplo construido y el codigo fuente para quienes lo necesiten y si por si acaso con el tiempo no pueden bajar el ejemplo, las imagenes son en formato JPG, uso freeimage.dll para mostrarlas, puedes usar BMP y PNG, pero JPG es mejor por tamaño de cada imagen, las tengo guardadas en la carpeta "FONDOS", puedes poner más si gustas.
Code: Select all | Expand
#Include "FIVEWIN.CH"
STATIC oWnd,nBrush
//-----------------------------------------------------------------------------------------------------------------//
FUNCTION Main()
LOCAL oIco,oBru
nBrush:= Random(5) // 5 Imagenes para este ejemplo
DEFINE Icon oIco RESOURCE "01"
DEFINE Brush oBru FILE ".\FONDOS\FONDO"+ALLTRIM(STRZERO(nBrush,2))+ ".JPG"
DEFINE Window oWnd TITLE "La Cultura Maya de Chiapas México." ICON oIco BRUSH oBru
ACTIVATE Window oWnd MAXIMIZED ON RIGHT CLICK ShowPopup(nRow, nCol)
RETURN nil
//-----------------------------------------------------------------------------------------------------------------//
STATIC FUNCTION ShowPopup( nRow, nCol )
LOCAL oPop
MENU oPop POPUP
MENUITEM "Avanzar Imágen del Escritorio" RESOURCE "BMP1" ACTION CambiaFondo(">")
SEPARATOR
MENUITEM "Regresar Imágen del Escritorio" RESOURCE "BMP2" ACTION CambiaFondo("<")
SEPARATOR
MENUITEM "Imágen Aleatoria del Escritorio" RESOURCE "BMP3" ACTION CambiaFondo("*")
SEPARATOR
MENUITEM "Terminar Paseo por la Cultura Maya" RESOURCE "BMP4" ACTION oWnd:END()
ENDMENU
ACTIVATE POPUP oPop AT nRow, nCol OF oWnd
RETURN nil
//-----------------------------------------------------------------------------------------------------------------//
STATIC FUNCTION CambiaFondo(cTipo)
LOCAL oBru
IF cTipo == ">"
nBrush:= IF( nBrush > 04, 01, ++nBrush )
oWnd:oBrush:RELEASE()
oWnd:REFRESH()
ELSEIF cTipo == "<"
nBrush:= IF( nBrush < 02, 05, --nBrush )
oWnd:oBrush:RELEASE()
oWnd:REFRESH()
ELSEIF cTipo == "*"
nBrush:= Random(5)
oWnd:oBrush:RELEASE()
oWnd:REFRESH()
ENDIF
MSGInfo("Cambiando Imagen de Fondo por:"+CRLF+;
".\FONDOS\FONDO"+ALLTRIM(STRZERO(nBrush,2))+ ".JPG","Imagen de Escritorio")
DEFINE BRUSH oBrush FILE ".\FONDOS\FONDO"+ALLTRIM(STRZERO(nBrush,2))+ ".JPG"
SET BRUSH OF oWnd TO oBrush
SysRefresh()
oWnd:REFRESH()
SysRefresh()
RETURN nil
//-----------------------------------------------------------------------------------------------------------------//
STATIC FUNCTION Random(nLimite)
STATIC nGuarda:= 1
LOCAL I
LOCAL nResult
IF VALTYPE( nLimite ) # [N]
nLimite:= 100
ENDIF
I:= SECONDS()
WHILE nLimite > I
I:= I * 100 +SECONDS()
ENDDO
nGuarda:= (nGuarda +I) / (nResult:= nGuarda * I % nLimite +1)
nResult:= INT( nResult )
RETURN nResult
Aqui te dejo el ejemplo construido:
http://www.megaupload.com/?d=E0DTZTZV
Ojala sea de utilidad y sea lo que necesites... si algo más necesitas no dudes en preguntarme.. Saludos..
Soluciones y Diseño de Software
Damos Soluciones...
I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos
http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
Damos Soluciones...
I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos
http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
- Jairo Barbosa
- Posts: 194
- Joined: Fri Jan 23, 2009 2:50 am
- Location: Cali Valle Colombia
- Contact:
Re: IMAGEN ALEATORIA
Víctor Gracias por tu aporte
Te había enviado la respuesta a tu correo, un genial "sample" para entenderlo
Cordialmente
Jairo Barbosa
Te había enviado la respuesta a tu correo, un genial "sample" para entenderlo
Cordialmente
Jairo Barbosa
- cuatecatl82
- Posts: 625
- Joined: Wed Mar 14, 2007 6:49 pm
- Location: San Cristobal de las Casas, Chiapas México
- Contact:
Re: IMAGEN ALEATORIA
Jairo:
Me alegro que te haya servido mi pequeño ejemplo, acabo de recibir por correo tu msg. estamos para servirte...
Saludos..
![Laughing :lol:](./images/smilies/icon_lol.gif)
Me alegro que te haya servido mi pequeño ejemplo, acabo de recibir por correo tu msg. estamos para servirte...
Saludos..
![Wink :wink:](./images/smilies/icon_wink.gif)
![Laughing :lol:](./images/smilies/icon_lol.gif)
![Laughing :lol:](./images/smilies/icon_lol.gif)
Soluciones y Diseño de Software
Damos Soluciones...
I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos
http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
Damos Soluciones...
I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos
http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
- cuatecatl82
- Posts: 625
- Joined: Wed Mar 14, 2007 6:49 pm
- Location: San Cristobal de las Casas, Chiapas México
- Contact:
Re: IMAGEN ALEATORIA
Saludos:
Aquí esta el aporte para poder aplicarlo en ambientes MDI, Contribución de mi colega Jairo Barbosa, de Cali Colombia.
Binario con Imagenes de Demostración:
http://www.megaupload.com/?d=P75R94NY
![Image](http://img842.imageshack.us/img842/9605/dibujopcr.jpg)
Saludos...
Aquí esta el aporte para poder aplicarlo en ambientes MDI, Contribución de mi colega Jairo Barbosa, de Cali Colombia.
Code: Select all | Expand
// FWH Class TOutLook2003
// Ejemplo elaborado y modificado por Jairo Barbosa
// Con las asesoráis de Carlos Gallego
// Carlitos gracias por tus consejos
#include "FiveWin.ch"
#include "Splitter.ch"
#include "Outlook.ch"
#include "image.ch"
STATIC lExit := .F.
//----------------------------------------------------------------------------//
FUNCTION Main()
LOCAL oWnd, oStatusBar, oSplit
LOCAL oFont, oExBar, oPanel1, oPanel2
LOCAL bClick := {|o| MSGInfo("En construccion")}
*------------------------------------------------------------------------------*
nResoAncho := GetSysMetrics(0)//800
nResoAlto := GetSysMetrics(1)//600
*------------------------------------------------------------------------------*
cRandom:= Random()
DEFINE WINDOW oWnd TITLE "FWH new Class TOutLook2003" PIXEL MDI ;
MENU BuildMenu() COLORS RGB(0,0,0),RGB(255,255,255)
@ 1,1 SAY oSay VAR cRandom OF oWnd:oWndClient SIZE 100,15;
PIXEL UPDATE TRANSPARENT
@ 1,1 image oBmp OF oWnd:oWndClient size nResoAncho, nResoAlto ;
FILE ".\" + ALLTRIM(STRZERO(cRandom,2))+".JPG" PIXEL NOBORDER adjust
DEFINE OUTLOOK2003 oOutLook2003 OF oWnd ;
PROMPTS "Kardex" BITMAPS "C:\FWH\bitmaps\mail.bmp"
oWnd:oLeft = nil // Because the splitter is going to control the resize
@ 5, 5 EXPLORERBAR oExBar OF oOutLook2003:aDialogs[ 1 ] ;
SIZE oOutLook2003:aDialogs[1]:nWidth, oOutLook2003:aDialogs[1]:nHeight
oPanel1 = oExBar:AddPanel( "One", "C:\FWH\bitmaps\32x32\people.bmp" )
oPanel1:lSpecial = .T.
oPanel1:AddLink( "Entradas", bClick,;
"C:\FWH\bitmaps\16x16\additem.bmp" );
oPanel1:AddLink( "Consulta de Saldos", bClick,;
"C:\FWH\bitmaps\16x16\copy.bmp" )
oPanel1:AddLink( "Tercer item", bClick, "C:\FWH\bitmaps\16x16\copy.bmp" )
oPanel2 = oExBar:AddPanel( "Dos", "C:\FWH\bitmaps\32x32\people.bmp" )
oPanel2:lSpecial = .T.
oPanel2:AddLink( "Hacer copia de seguridad", bClick,;
"C:\FWH\bitmaps\16x16\additem.bmp" )
oPanel2:AddLink( "Recuperar copia", bClick,"C:\FWH\bitmaps\16x16\copy.bmp")
oPanel2:AddLink( "Idexar Bases", bClick, "C:\FWH\bitmaps\16x16\copy.bmp" )
oPanel3 = oExBar:AddPanel( "Tres", "C:\FWH\bitmaps\32x32\people.bmp" )
oPanel3:lSpecial = .T.
oPanel3:AddLink( "Cambiar fondo", {||CambioFondo()},;
"C:\FWH\bitmaps\16x16\copy.bmp" )
DEFINE STATUSBAR oStatusBar PROMPT " FWH Class TOutLook2003" OF oWnd
SetParent( oOutLook2003:hWnd, oWnd:hWnd )
oWnd:oClient = nil
@ 1, 192 SPLITTER oSplit ;
VERTICAL _3DLOOK ;
PREVIOUS CONTROLS oOutLook2003 ;
HINDS CONTROLS oWnd:oWndClient ;
SIZE 4, oWnd:nHeight - 170 PIXEL ;
OF oWnd
SetParent( oSplit:hWnd, oWnd:hWnd )
ACTIVATE WINDOW oWnd maximized;
ON INIT ( cRandom := STRZERO(hb_RandomInt(1,14),4),;
oBmp:ReLoad( , "JPG"+cRandom+".JPG" ) , oBmp:Refresh(),;
oSay:VarPut( "JPG: JPG"+cRandom+".JPG" ) , oSay:Refresh() );
ON RESIZE ( oSplit:Adjust(),;
WndLeft( oWnd:oWndClient:hWnd, oSplit:nRight + 1 ),;
WndWidth( oWnd:oWndClient:hWnd,;
oWnd:nWidth - oOutLook2003:nWidth - 23)) VALID lExit := .T.
RETURN nil
*----------------------------------------------------------------------------//
STATIC FUNCTION CambioFondo()
(cRandom := STRZERO(hb_RandomInt(1,14),4) ,;
oBmp:ReLoad( , "JPG"+cRandom+".JPG" ) , oBmp:Refresh(), ;
oSay:VarPut( "JPG: JPG"+cRandom+".JPG" ) , oSay:Refresh())
RETURN nil
//--------------------------------------------------------------------------
FUNCTION BuildMenu()
LOCAL oMenu
MENU oMenu
MENUITEM "&One"
MENUITEM "&Two"
MENUITEM "&Three"
ENDMENU
RETURN oMenu
*-----------------------------------------------------------------------------*
#pragma BEGINDUMP
#include <windows.h>
#include <hbapi.h>
BOOL SysRefresh( VOID );
HB_FUNC( NOGPF )
{
__try
{
hb_retl( SysRefresh() );
}
__except ( ( hb_retl( TRUE ), TRUE ) )
{}
}
#pragma ENDDUMP
*----------------------------Fin del codigo-----------------------------------*
Binario con Imagenes de Demostración:
http://www.megaupload.com/?d=P75R94NY
![Image](http://img842.imageshack.us/img842/9605/dibujopcr.jpg)
Saludos...
Soluciones y Diseño de Software
Damos Soluciones...
I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos
http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
Damos Soluciones...
I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos
http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon