MediaCenter
Posted: Tue Mar 31, 2020 10:36 pm
Hi guys,
I have to do something like this image bellow. Do you know what is the best way ?
I have to do something like this image bellow. Do you know what is the best way ?
www.FiveTechSoft.com
https://fivetechsoft.com/forums/
Code: Select all
#include "fivewin.ch"
function Main()
local oWnd, aImage, oFont, n, nRow, nCol
local oPanel
local aSource := { "c:\fwh\bitmaps\olga1.jpg", "c:\fwh\bitmaps\olga2.jpg", ;
"c:\fwh\bitmaps\sea.bmp", "c:\fwh\bitmaps\back.bmp", ;
"c:\fwh\bitmaps\hires\office.bmp", "c:\fwh\bitmaps\hires\earth.bmp", ;
"c:\fwh\bitmaps\cliplogo.bmp", "c:\fwh\bitmaps\007.bmp" }
local w, h
aImage := Array( Len( aSource ) )
DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-20
DEFINE WINDOW oWnd VSCROLL HSCROLL
w := 650
h := Round( Len( aSource ) / 2, 0 ) * 450
oPanel := TPanel():New( 0, 0, h, w, oWnd )
oWnd:oVScroll:SetRange( 0, h - 400 )
oWnd:oHScroll:SetRange( 0, w - 300 )
nRow := 0
nCol := 0
for n := 1 to Len( aSource )
aImage[ n ] := ImageControl( oPanel, nRow, nCol, aSource[ n ] )
if nCol == 0
nCol += 350
else
nCol := 0
nRow += 450
endif
next
aImage[ 1 ]:bPainted := { |hDC| FW_SayText( hDC, "HELLO", { 20,20,60,300 }, "", oFont, CLR_YELLOW ) }
oWnd:oVScroll:bPos := { |n| oPanel:nTop := -n, oWnd:oVScroll:SetPos( n ) }
oWnd:oVScroll:bTrack:= { |n| oPanel:nTop := -n, oWnd:oVScroll:SetPos( n ) }
oWnd:oHScroll:bPos := { |n| oPanel:nLeft := -n, oWnd:oHScroll:SetPos( n ) }
oWnd:oHScroll:bTrack:= { |n| oPanel:nLeft := -n, oWnd:oHScroll:SetPos( n ) }
ACTIVATE WINDOW oWnd
RELEASE FONT oFont
return nil
//----------------------------------------------------------------------------//
static function ImageControl( oWnd, nRow, nCol, cSource )
local oImage
@ nRow, nCol XIMAGE oImage SOURCE cSource SIZE 300,400 OF oWnd
return oImage
//----------------------------------------------------------------------------//