• Welcome to Powerbasic Museum 2020-B.
 

News:

Forum in repository mode. No new members allowed.

Main Menu

LOOK EASY BUT I HAVE NO CLUE

Started by Robert Sarrazin, January 08, 2008, 07:05:18 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Robert Sarrazin

I can't find a easy solution, I read on graphics, gdi, gdi+, directX, TB_gdiplus.
This example is produce by imagex and realy not (working at all)  by the limit
of the  RESOURCE.PBR......     imagine over 7,000 image and I'm not sure if
all image in the( file.rc ) to (file.pbr)  is not loading in memory.
(Yes I download GDImage demo look nice but is to complex for my first translate
basic program from REALBASIC, the option create image is rely easy in the program)
MY QUESTION IT IS THE ONLY WAY TO USE  WITH
GDIMAGE.

    l-------------------------------------------------l
    l                                                                     l
    l        --------------              ------------           l
    l        l star.jpg        l             l                l          l
    l        l image.jpg      l             l  SHOW      l          l
    l        l Moon.jpg      l              l  IMAGE     l          l
    l        l Cloud.jpg      l             l                l          l
    l        l                   l             l                l          l
    l        --------------             -------------          l
    l                                                                     l
    l-------------------------------------------------l         
sorry I have to learn how to insert image in this text but
I put in attach hopping It's working.
                                                                                                             
How to load image from disk (.gif, .jpg) in the hparent canevas.
The lisbox and the control to select no problem.


'------------------------------------------------------------------------------
' I use imagex to show what I want on final project
' but imagex not support notting else than icon and bmp plus it need to be in resource (xxxx.pbr)
' I want to use gif and jpg to load image in the hparent dialog when the program finish the select listbox
' must sent image file to the display.
'------------------------------------------------------------------------------

#COMPILE EXE
#DIM ALL

#RESOURCE "test.pbr"
#INCLUDE "WIN32API.INC"

%IDD_DIALOG1  =  101
%IDC_LISTBOX1 = 1001
%IDC_IMAGEX1  = 1002
%IDR_IMGFILE1 =  102

DECLARE CALLBACK FUNCTION ShowDIALOG1Proc()
DECLARE FUNCTION SampleListBox(BYVAL hDlg AS DWORD, BYVAL lID AS LONG, BYVAL _
    lCount AS LONG) AS LONG
DECLARE FUNCTION ShowDIALOG1(BYVAL hParent AS DWORD) AS LONG

FUNCTION PBMAIN()
    ShowDIALOG1 %HWND_DESKTOP
END FUNCTION

CALLBACK FUNCTION ShowDIALOG1Proc()

    SELECT CASE AS LONG CBMSG
        CASE %WM_INITDIALOG
            ' Initialization handler

        CASE %WM_NCACTIVATE
            STATIC hWndSaveFocus AS DWORD
            IF ISFALSE CBWPARAM THEN
                ' Save control focus
                hWndSaveFocus = GetFocus()
            ELSEIF hWndSaveFocus THEN
                ' Restore control focus
                SetFocus(hWndSaveFocus)
                hWndSaveFocus = 0
            END IF

        CASE %WM_COMMAND
            ' Process control notifications
            SELECT CASE AS LONG CBCTL
                CASE %IDC_LISTBOX1

                CASE %IDC_IMAGEX1

            END SELECT
    END SELECT
END FUNCTION

FUNCTION SampleListBox(BYVAL hDlg AS DWORD, BYVAL lID AS LONG, BYVAL lCount _
    AS LONG) AS LONG
     ' for test only this come from SQLite3 inventory
    LISTBOX ADD hDlg, lID, USING$("Test.jpg", 1)
    LISTBOX ADD hDlg, lID, USING$("Star.jpg", 2)
    LISTBOX ADD hDlg, lID, USING$("beauty.jpg", 3)
    LISTBOX ADD hDlg, lID, USING$("Moon.gif", 4)
    LISTBOX ADD hDlg, lID, USING$("Water.jpg", 5)
   

FUNCTION ShowDIALOG1(BYVAL hParent AS DWORD) AS LONG
    LOCAL lRslt AS LONG

    LOCAL hDlg  AS DWORD

    DIALOG NEW hParent, "Test read from disk to show image", 139, 145, 201, _
        121, %WS_POPUP OR %WS_BORDER OR %WS_DLGFRAME OR %WS_SYSMENU OR _
        %WS_CLIPSIBLINGS OR %WS_VISIBLE OR %DS_MODALFRAME OR %DS_3DLOOK OR _
        %DS_NOFAILCREATE OR %DS_SETFONT, %WS_EX_CONTROLPARENT OR %WS_EX_LEFT _
        OR %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR, TO hDlg
    CONTROL ADD LISTBOX, hDlg, %IDC_LISTBOX1, , 15, 10, 60, 90
    CONTROL ADD IMAGEX,  hDlg, %IDC_IMAGEX1, "#" + FORMAT$(%IDR_IMGFILE1), _
        115, 15, 65, 75

    SampleListBox  hDlg, %IDC_LISTBOX1, 30

    DIALOG SHOW MODAL hDlg, CALL ShowDIALOG1Proc TO lRslt


    FUNCTION = lRslt
END FUNCTION



José Roca

#1
 
In this forum you have two image controls and one graphic control available:
http://www.jose.it-berater.org/smfforum/index.php?board=117.0

The following example uses your own code and TB_IMGCTX.INC, available at:
http://www.jose.it-berater.org/smfforum/index.php?topic=85.0


#COMPILE EXE
#DIM ALL

'------------------------------------------------------------------------------
'   ** Includes **
'------------------------------------------------------------------------------
#IF NOT %DEF(%WINAPI)
    #INCLUDE "WIN32API.INC"
#ENDIF
'------------------------------------------------------------------------------

#INCLUDE "TB_IMGCTX.INC"

'------------------------------------------------------------------------------
'   ** Constants **
'------------------------------------------------------------------------------
%IDD_DIALOG1  =  101
%IDC_LISTBOX1 = 1001
%IDC_IMGCTX   = 1002
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
' Retrieves the path of the calling process.
'------------------------------------------------------------------------------
FUNCTION GetExePath() AS STRING
   LOCAL szFilespec  AS ASCIIZ * %MAX_PATH
   LOCAL lPathOffset AS LONG
   GetModuleFileName %NULL, BYVAL VARPTR(szFilespec), %MAX_PATH
   lPathOffset = INSTR(-1, szFilespec, ANY "/\")
   FUNCTION = LEFT$(szFilespec, lPathOffset)
END FUNCTION
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
'   ** Declarations **
'------------------------------------------------------------------------------
DECLARE CALLBACK FUNCTION ShowDIALOG1Proc()
DECLARE FUNCTION SampleListBox(BYVAL hDlg AS DWORD, BYVAL lID AS LONG, BYVAL _
    lCount AS LONG) AS LONG
DECLARE FUNCTION ShowDIALOG1(BYVAL hParent AS DWORD) AS LONG
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
'   ** Main Application Entry Point **
'------------------------------------------------------------------------------
FUNCTION PBMAIN()
    ShowDIALOG1 %HWND_DESKTOP
END FUNCTION
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
'   ** CallBacks **
'------------------------------------------------------------------------------
CALLBACK FUNCTION ShowDIALOG1Proc()

    SELECT CASE AS LONG CBMSG
        CASE %WM_INITDIALOG
            ' Initialization handler

        CASE %WM_NCACTIVATE
            STATIC hWndSaveFocus AS DWORD
            IF ISFALSE CBWPARAM THEN
                ' Save control focus
                hWndSaveFocus = GetFocus()
            ELSEIF hWndSaveFocus THEN
                ' Restore control focus
                SetFocus(hWndSaveFocus)
                hWndSaveFocus = 0
            END IF

        CASE %WM_COMMAND
            ' Process control notifications
            SELECT CASE AS LONG CBCTL
                CASE %IDC_LISTBOX1
                   LOCAL strText AS STRING
                   LOCAL strPath AS STRING
                   IF CBCTLMSG = %LBN_DBLCLK THEN
                      LISTBOX GET TEXT CBHNDL, %IDC_LISTBOX1 TO strText
                      strPath = GetExePath & strText   ' Change it for the path of the image
                      TB_DDT_ImgCtx_LoadImage CBHNDL, %IDC_IMGCTX, strPath
                   END IF

            END SELECT
    END SELECT
END FUNCTION
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
'   ** Sample Code **
'------------------------------------------------------------------------------
FUNCTION SampleListBox(BYVAL hDlg AS DWORD, BYVAL lID AS LONG, BYVAL lCount _
    AS LONG) AS LONG
     ' for test only this come from SQLite3 inventory
    LISTBOX ADD hDlg, lID, "Test.jpg"
    LISTBOX ADD hDlg, lID, "Star.jpg"
    LISTBOX ADD hDlg, lID, "beauty.jpg"
    LISTBOX ADD hDlg, lID, "Moon.gif"
    LISTBOX ADD hDlg, lID, "Water.jpg"
   
END FUNCTION
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
'   ** Dialogs **
'------------------------------------------------------------------------------
FUNCTION ShowDIALOG1(BYVAL hParent AS DWORD) AS LONG
    LOCAL lRslt AS LONG

    LOCAL hDlg  AS DWORD

    TB_InitImgCtx   ' Initialize the control

    DIALOG NEW hParent, "Test read from disk to show image", 139, 145, 201, _
        121, %WS_POPUP OR %WS_BORDER OR %WS_DLGFRAME OR %WS_SYSMENU OR _
        %WS_CLIPSIBLINGS OR %WS_VISIBLE OR %DS_MODALFRAME OR %DS_3DLOOK OR _
        %DS_NOFAILCREATE OR %DS_SETFONT, %WS_EX_CONTROLPARENT OR %WS_EX_LEFT _
        OR %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR, TO hDlg
    CONTROL ADD LISTBOX, hDlg, %IDC_LISTBOX1, , 15, 10, 60, 90
    CONTROL ADD "TB_IMGCTX", hDlg, %IDC_IMGCTX, "", 115, 15, 65, 75, %WS_CHILD OR %WS_VISIBLE OR %WS_TABSTOP OR %WS_BORDER

    SampleListBox  hDlg, %IDC_LISTBOX1, 30

    DIALOG SHOW MODAL hDlg, CALL ShowDIALOG1Proc TO lRslt


    FUNCTION = lRslt
END FUNCTION
'------------------------------------------------------------------------------


Robert Sarrazin