xImage doubt

wartiaga
Posts: 212
Joined: Wed May 25, 2016 1:04 am

xImage doubt

Post by wartiaga »

Hi,

Eu tenho um campo memo em um dbf que armazenar uma imagem com o memoread()

oArqImg:IMAGEM := MemoRead(Alltrim(VetGars[x][10]))

Qual a melhor maneira de mostrar essa imagem posteriormente em uma dialog? Or other way to save and recover image with dbf/cdx.

I try:

@40,40 XIMAGE oImage SIZE 300,300 OF oDlg411 SOURCE MEMOREAD( Lista411:aRow[ 4 ] ) but I get this error:

Application
===========
Path and name: D:\SISTEMAS\ESC\finesc.exe (32 bits)
Size: 8,592,896 bytes
Compiler version: xHarbour 1.2.3 Intl. (SimpLex) (Build 20181011)
FiveWin version: FWH 18.11
C compiler version: Borland/Embarcadero C++ 7.3 (32-bit)
Windows version: 6.2, Build 9200

Time from start: 0 hours 0 mins 8 secs
Error occurred at: 17/11/2024, 14:42:43
Error description: Error FiveWin/1 Non defined Id: No: 199

Stack Calls
===========
Called from: .\source\classes\CONTROL.PRG => TCONTROL:INITIATE( 452 )
Called from: .\source\classes\XIMAGE.PRG => TXIMAGE:INITIATE( 189 )
Called from: => __OBJSENDMSG( 0 )
Called from: => HB_EXECFROMARRAY( 0 )
Called from: .\source\function\HARBOUR.PRG => OSEND( 300 )
Called from: => HB_EXECFROMARRAY( 0 )
Called from: .\source\function\HARBOUR.PRG => ASEND( 278 )
Called from: .\source\classes\DIALOG.PRG => TDIALOG:INITIATE( 805 )
Called from: .\source\classes\DIALOG.PRG => TDIALOG:HANDLEEVENT( 1120 )
User avatar
nageswaragunupudi
Posts: 10691
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: xImage doubt

Post by nageswaragunupudi »

Suggested way to link xbrowse and ximage:

Code: Select all | Expand

#include "fivewin.ch"

REQUEST DBFCDX

//----------------------------------------------------------------------------//

function Main()

   local oDlg, oFont, oBrw, oImage

   if !File( "IMAGES.DBF" )
      CreateImagesDBF()
   endif

   USE IMAGES NEW SHARED VIA "DBFCDX"

   DEFINE FONT oFont NAME "Segoe UI" SIZE 0,-16

   DEFINE DIALOG oDlg SIZE 800,400 PIXEL TRUEPIXEL FONT oFont ;
      TITLE "XBROWSE + XIMAGE"
   @ 20,20 XBROWSE oBrw SIZE 380,-20 PIXEL OF oDlg ;
      DATASOURCE "IMAGES" ;
      COLUMNS "FOLDER", "NAME" ;
      CELL LINES NOBORDER

   WITH OBJECT oBrw
      :AutoFit()
      :nStretchCol := 1
      :bChange    := { || oImage:Refresh() }
      :CreateFromCode()
   END

   @ 20,400 XIMAGE oImage SIZE -20,-20 OF oDlg ;
      SOURCE ( oBrw:cAlias )->IMAGE

   ACTIVATE DIALOG oDlg CENTERED
   RELEASE FONT oFont

return nil

//----------------------------------------------------------------------------//

function CreateImagesDBF()

   DBCREATE( "IMAGES.DBF", { { "NAME", "C", 10, 0 }, ;
      { "FOLDER", "C", 40, 0 }, { "IMAGE", "M", 8, 0 } }, ;
      "DBFCDX", .T., "IMG" )

   AEval( ;
      { "..\bitmaps\olga1.jpg", "..\bitmaps\sea.bmp", ;
      "..\bitmaps\pngs\2.png", "..\bitmaps\007.bmp" }, <|c|
         DBAPPEND()
         FIELD->NAME    := UPPER( cFileName( c ) )
         FIELD->FOLDER  := cFilePath( c )
         FIELD->IMAGE   := MEMOREAD( c )
         return nil
         > )

   CLOSE IMG

return nil
Image
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
Posts: 10691
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: xImage doubt

Post by nageswaragunupudi »

There is another simpler way to display images like above, without using XImage at all.
This is a sample.

Code: Select all | Expand

#include "fivewin.ch"

REQUEST DBFCDX

//----------------------------------------------------------------------------//

function Main()

   local oDlg, oFont, oBrw, oImage

   if !File( "IMAGES.DBF" )
      CreateImagesDBF()
   endif

   USE IMAGES NEW SHARED VIA "DBFCDX"

   DEFINE FONT oFont NAME "Segoe UI" SIZE 0,-16

   DEFINE DIALOG oDlg SIZE 800,500 PIXEL TRUEPIXEL FONT oFont ;
      TITLE "XBROWSE WITHOUT XIMAGE"

   @ 20,20 XBROWSE oBrw SIZE -20,-20 PIXEL OF oDlg ;
      DATASOURCE "IMAGES" ;
      COLUMNS "FOLDER", "NAME", "IMAGE" ;
      COLSIZES 200,150,400 ;
      CELL LINES NOBORDER

   WITH OBJECT oBrw
      :oRightCol   := "IMAGE"
      :oRightCol:lFullHeight := .t.
      :oRightCol:nDataBmpAlign := AL_CENTER
      :CreateFromCode()
   END

   ACTIVATE DIALOG oDlg CENTERED
   RELEASE FONT oFont

return nil

//----------------------------------------------------------------------------//

function CreateImagesDBF()

   DBCREATE( "IMAGES.DBF", { { "NAME", "C", 10, 0 }, ;
      { "FOLDER", "C", 40, 0 }, { "IMAGE", "M", 8, 0 } }, ;
      "DBFCDX", .T., "IMG" )

   AEval( ;
      { "..\bitmaps\olga1.jpg", "..\bitmaps\sea.bmp", ;
      "..\bitmaps\pngs\2.png", "..\bitmaps\007.bmp" }, <|c|
         DBAPPEND()
         FIELD->NAME    := UPPER( cFileName( c ) )
         FIELD->FOLDER  := cFilePath( c )
         FIELD->IMAGE   := MEMOREAD( c )
         return nil
         > )

   CLOSE IMG

return nil
Image
Regards

G. N. Rao.
Hyderabad, India
wartiaga
Posts: 212
Joined: Wed May 25, 2016 1:04 am

Re: xImage doubt

Post by wartiaga »

nageswaragunupudi wrote:Suggested way to link xbrowse and ximage:

Code: Select all | Expand

#include "fivewin.ch"

REQUEST DBFCDX

//----------------------------------------------------------------------------//

function Main()

   local oDlg, oFont, oBrw, oImage

   if !File( "IMAGES.DBF" )
      CreateImagesDBF()
   endif

   USE IMAGES NEW SHARED VIA "DBFCDX"

   DEFINE FONT oFont NAME "Segoe UI" SIZE 0,-16

   DEFINE DIALOG oDlg SIZE 800,400 PIXEL TRUEPIXEL FONT oFont ;
      TITLE "XBROWSE + XIMAGE"
   @ 20,20 XBROWSE oBrw SIZE 380,-20 PIXEL OF oDlg ;
      DATASOURCE "IMAGES" ;
      COLUMNS "FOLDER", "NAME" ;
      CELL LINES NOBORDER

   WITH OBJECT oBrw
      :AutoFit()
      :nStretchCol := 1
      :bChange    := { || oImage:Refresh() }
      :CreateFromCode()
   END

   @ 20,400 XIMAGE oImage SIZE -20,-20 OF oDlg ;
      SOURCE ( oBrw:cAlias )->IMAGE

   ACTIVATE DIALOG oDlg CENTERED
   RELEASE FONT oFont

return nil

//----------------------------------------------------------------------------//

function CreateImagesDBF()

   DBCREATE( "IMAGES.DBF", { { "NAME", "C", 10, 0 }, ;
      { "FOLDER", "C", 40, 0 }, { "IMAGE", "M", 8, 0 } }, ;
      "DBFCDX", .T., "IMG" )

   AEval( ;
      { "..\bitmaps\olga1.jpg", "..\bitmaps\sea.bmp", ;
      "..\bitmaps\pngs\2.png", "..\bitmaps\007.bmp" }, <|c|
         DBAPPEND()
         FIELD->NAME    := UPPER( cFileName( c ) )
         FIELD->FOLDER  := cFilePath( c )
         FIELD->IMAGE   := MEMOREAD( c )
         return nil
         > )

   CLOSE IMG

return nil
Image
Thank you so much Mr. Nages. I Use pelles c to create my dialogs and controls, how I can create a tximage control? Tximage works with redefine?
User avatar
karinha
Posts: 7884
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: xImage doubt

Post by karinha »

Code: Select all | Expand

// C:\FWH\SAMPLES\XIMAGE08.PRG/RC

#include "fivewin.ch"

function Main()

   local oDlg, oImage, oSay
   local cPath   := "c:\\fwh1905\\bitmaps\\pngs\\"
   local aImages := DIRECTORY( cPath + "*.png" )
   local nImage  := 1

   AEval( aImages, { |a,i| aImages[ i ] := cPath + a[ 1 ] } )

   DEFINE DIALOG oDlg RESOURCE "diaporama" ;
      TITLE "Album de Fotos" COLOR CLR_BLACK, CLR_WHITE TRANSPARENT

   oDlg:lHelpIcon := .F.

   REDEFINE XIMAGE oImage SOURCE aImages[ nImage ] ID 101 OF oDlg UPDATE

   oImage:nUserControl := 0
   //   oImage:FitRect()

   REDEFINE SAY oSay PROMPT { || cFileName( aImages[ nImage ] ) } ID 102 ;
      OF oDlg UPDATE COLOR CLR_BLACK, CLR_WHITE

   REDEFINE BUTTON ID 503 OF oDlg WHEN nImage < Len( aImages ) ;
      ACTION ( nImage++, oDlg:Update() )

   REDEFINE BUTTON ID 504 OF oDlg WHEN nImage > 1 ;
      ACTION ( nImage--, oDlg:Update() )


   REDEFINE BUTTON ID 501 OF oDlg ACTION oDlg:End()

   oDlg:bPainted := { || oDlg:Box( oSay:nTop-1, oSay:nLeft-1, oSay:nTop + ;
                         oSay:nHeight, oSay:nLeft + oSay:nWidth, CLR_GRAY ) }

   ACTIVATE DIALOG oDlg CENTER

return nil

/*
DIAPORAMA DIALOG 22, 26, 311, 205
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Pedigree BullFight Photos"
FONT 12, "MS Sans Serif"
{
    PUSHBUTTON  "Close", 501, 246,  84, 45, 15
    PUSHBUTTON  "->", 503, 269, 53, 16, 17
    PUSHBUTTON  "<-", 504, 247, 53, 16, 17
    CTEXT  ""  102, 10, 172, 225, 13, SS_CENTERIMAGE
    CONTROL     "", 101, "TXImage", 0 | WS_CHILD | WS_VISIBLE, 10, 14, 225, 150
}

*/

/*
REDEFINE BUTTON ID 504 OF oDlg WHEN nImage > 1 ACTION ( nImage--, oImage:REFRESH() )
       REDEFINE BUTTON ID 503 OF oDlg WHEN nImage < Len( aDirectorio ) ACTION ( nImage++, oImage:REFRESH() )
 
*/
 
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
Jimmy
Posts: 1733
Joined: Thu Sep 05, 2019 5:32 am
Location: Hamburg, Germany

Re: xImage doubt

Post by Jimmy »

hi,

why do i need to #define all Constant in *.RC

Code: Select all | Expand

#define DS_MODALFRAME 0x0080
#define WS_POPUP            2147483648
#define WS_VISIBLE          268435456
#define WS_CAPTION          12582912
#define WS_SYSMENU          524288
#define WS_CHILD            1073741824
#define SS_CENTERIMAGE      0x00000200L

    DIAPORAMA DIALOG 22, 26, 311, 205
    STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
    CAPTION "Pedigree BullFight Photos"
    FONT 12, "MS Sans Serif"
    {
        PUSHBUTTON  "Close", 501, 246,  84, 45, 15
        PUSHBUTTON  "->", 503, 269, 53, 16, 17
        PUSHBUTTON  "<-", 504, 247, 53, 16, 17
        CTEXT  ""  102, 10, 172, 225, 13, SS_CENTERIMAGE
        CONTROL     "", 101, "TXImage", 0 | WS_CHILD | WS_VISIBLE, 10, 14, 225, 150
    }
 
what do i miss for *.RC files :?:
greeting,
Jimmy
User avatar
alerchster
Posts: 95
Joined: Mon Oct 22, 2012 4:43 pm

Re: xImage doubt

Post by alerchster »

in front of your rc-file

Code: Select all | Expand

#include "..\include\WinApi.ch"
Regards

Ing. Anton Lerchster
User avatar
Jimmy
Posts: 1733
Joined: Thu Sep 05, 2019 5:32 am
Location: Hamburg, Germany

Re: xImage doubt

Post by Jimmy »

hi,
alerchster wrote:in front of your rc-file

Code: Select all | Expand

#include "..\include\WinApi.ch"
THX, that include i miss.

but still missing SS_CENTERIMAGE
XIMAGE.RC(11) : error RC2104 : undefined keyword or key name: SS_CENTERIMAGE
which i found in Winuser.H
greeting,
Jimmy
User avatar
karinha
Posts: 7884
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: xImage doubt

Post by karinha »

Jimmy wrote:hi,

why do i need to #define all Constant in *.RC

Code: Select all | Expand

#define DS_MODALFRAME 0x0080
#define WS_POPUP            2147483648
#define WS_VISIBLE          268435456
#define WS_CAPTION          12582912
#define WS_SYSMENU          524288
#define WS_CHILD            1073741824
#define SS_CENTERIMAGE      0x00000200L

    DIAPORAMA DIALOG 22, 26, 311, 205
    STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
    CAPTION "Pedigree BullFight Photos"
    FONT 12, "MS Sans Serif"
    {
        PUSHBUTTON  "Close", 501, 246,  84, 45, 15
        PUSHBUTTON  "->", 503, 269, 53, 16, 17
        PUSHBUTTON  "<-", 504, 247, 53, 16, 17
        CTEXT  ""  102, 10, 172, 225, 13, SS_CENTERIMAGE
        CONTROL     "", 101, "TXImage", 0 | WS_CHILD | WS_VISIBLE, 10, 14, 225, 150
    }
 
what do i miss for *.RC files :?:
I don't understand Jimmy, what you're asking, is it in PELLESC.exe? In WORKSHOP.exe, you don't need this. WORKSHOP.exe is first line. The best RESOURCE EDITOR on the PLANET. hahahaha.

No entiendo Jimmy, lo que preguntas, ¿está en PELLESC.exe? En WORKSHOP.exe, no necesita esto. WORKSHOP.exe es la primera línea. El mejor EDITOR DE RECURSOS del PLANETA. jajajaja.

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
Posts: 7884
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: xImage doubt

Post by karinha »

Origen, by master Nages:

https://forums.fivetechsoft.com/viewtopic.php?t=36135

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
Jimmy
Posts: 1733
Joined: Thu Sep 05, 2019 5:32 am
Location: Hamburg, Germany

Re: xImage doubt

Post by Jimmy »

hi,
karinha wrote:I don't understand Jimmy, what you're asking, is it in PELLESC.exe? In WORKSHOP.exe, you don't need this. WORKSHOP.exe is first line. The best RESOURCE EDITOR on the PLANET.
NO i do NOT have a Resource Editor, I´m using only Fivewin.
But i Have never work with REDEFINE and *.RC before, so i have to learn it.
greeting,
Jimmy
User avatar
karinha
Posts: 7884
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: xImage doubt

Post by karinha »

Good morning Jimmy, without a doubt, WORKSHOP.exe from BORLAND is the simplest and easiest to use. Even though it is 16 bits, there is an emulator so you can run it in 64 bits. Look here: use Google translate.

https://fivewin.com.br/index.php?/topic ... ent-291687

https://github.com/otya128/winevdm/releases

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
Jimmy
Posts: 1733
Joined: Thu Sep 05, 2019 5:32 am
Location: Hamburg, Germany

Re: xImage doubt

Post by Jimmy »

hi,
karinha wrote:WORKSHOP.exe from BORLAND is the simplest and easiest to use.
my Problem is that i don´t have WORKSHOP.EXE so i can´t use it.
greeting,
Jimmy
User avatar
karinha
Posts: 7884
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: xImage doubt

Post by karinha »

Jimmy wrote:hi,
karinha wrote:WORKSHOP.exe from BORLAND is the simplest and easiest to use.
my Problem is that i don´t have WORKSHOP.EXE so i can´t use it.
What do you mean you don't have WORKSHOP.exe? The best resource editor in the world?

¿Qué quieres decir con que no tienes WORKSHOP.exe? ¿El mejor editor de recursos del mundo?

Download WORKSHOP.exe 16 bits:

https://mega.nz/file/4dVF3ALB#OBUkXoLwM ... WCM2ksEbZM

Download WORKSHOP.exe 32 bits:

https://mega.nz/file/hEtlnQoZ#lUKQlfgyM ... SWOCaql74U

Gracias, tks.

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
Jimmy
Posts: 1733
Joined: Thu Sep 05, 2019 5:32 am
Location: Hamburg, Germany

Re: xImage doubt

Post by Jimmy »

hi,
thx for the link to download WORKSHOP32.RAR :D

i have look inside and have read README.TXT and INSTALL.TXT but confused what to do.

as it are Files for Borland C++ 5.02 i do not understand how to handle it.
it seems Workshop Resource Editor is include in IDE so how to start IDE ?

i have read about Registry Setting for Borland C++ 5.02.
do i need to change them and SET them for BCC 7 ?

sorry for those Dummy Question, but i never have work this Way before :roll:
greeting,
Jimmy
Post Reply