Alaska Xbase++

Alaska Xbase++
Programiranje u Xbase++
Prikazani su postovi s oznakom Resursi. Prikaži sve postove
Prikazani su postovi s oznakom Resursi. Prikaži sve postove

04. 06. 2014.

1.5 Kako Alaska Xbase++ 1.9 formira resurse


1.5 Kako Alaska Xbase++ 1.9 formira resurse


Resurs script fajl za formiranje RESURS.RES

Example: fajl RESURS.ARC

#include "RESURS.CH"

ICON
        ICO_USB1 = "ICON\USB1.ICO"
        ICO_USB2 = "ICON\USB2.ICO"
        ICO_USB3 = "ICON\USB3.ICO"

BITMAP
        BMP_USB1 = "ICON\USB1.BMP"
        BMP_USB2 = "ICON\USB2.BMP"
        BMP_USB3 = "ICON\USB3.BMP"

USERDEF PNG
1001       = FILE "ICON\USB1.PNG"
2001       = FILE "ICON\USB2.PNG"
3001       = FILE "ICON\USB3.PNG"

USERDEF GIF
1002       = FILE "ICON\USB1.GIF"
2002       = FILE "ICON\USB2.GIF"
3002       = FILE "ICON\USB3.GIF"

USERDEF JPG
1003       = FILE "ICON\USB1.JPG"
2003       = FILE "ICON\USB2.JPG"
3003       = FILE "ICON\USB3.JPG"

#define MANIFEST_RESID 1
 #define MANIFEST 24
 #ifdef __ARC__
   USERDEF MANIFEST
   MANIFEST_RESID = FILE "WINDOWSXP.MANIFEST"
 #endif


Heder script fajl za formiranje RESURS.RES
Example: fajl RESURS.CH

// ICON
        #define ICO_USB1 1
        #define ICO_USB2 2
        #define ICO_USB3 3

// BITMAP
        #define BMP_USB1  101
        #define BMP_USB2  102
        #define BMP_USB3  103

#define MENUITEM_SEPARATOR {NIL,NIL,XBPMENUBAR_MIS_SEPARATOR, 0}


Formiranje fajla RESURS.RES za ugradnju u RESURSEXE.EXE ili RESURSDLL.DLL aplikaciju
Example: fajl RESURS.BAT ---> RESURS.RES

@ECHO OFF
ARC.EXE RESURS.ARC -v
PAUSE




Project script fajl za formiranje RESURSEXE.EXE
Example: fajl RESURSEXE.XPJ

[PROJECT]
    COMPILE       = xpp
    COMPILE_FLAGS = /q
    DEBUG         = no
    GUI           = yes
    LINKER        = alink
    LINK_FLAGS    =
    RC_COMPILE    = arc
    RC_FLAGS      = /v
    OBJ_DIR       = RESUSRSEXE________OBJ
    RESURSEXE.XPJ

[RESURSEXE.XPJ]

   RESURSEXE.EXE

[RESURSEXE.EXE]

      RESURS.ARC
      RESURS.CH
      RESURS.RES

      DCLIPX.LIB  // eXpress++

      MAIN.PRG
      PROGRAMS.PRG


Formiranje fajla RESURSEXE.EXE
Example: fajl RESURSEXE.BAT ---> RESURSEXE.EXE

@ECHO OFF
PBUILD.EXE RESURSEXE.XPJ > RESURSEXE________.TXT
Pause





Project script fajl za formiranje RESURSDLL.DLL
Example: fajl RESURSDLL.XPJ

[PROJECT]
    COMPILE       = xpp
    COMPILE_FLAGS = /q
    DEBUG         = no
    GUI           = yes
    LINKER        = alink
    LINK_FLAGS    =
    RC_COMPILE    = arc
    RC_FLAGS      = /v
    OBJ_DIR       = RESUSRSDLL________OBJ
    RESURSDLL.XPJ

[RESURSDLL.XPJ]

   RESURSDLL.DLL

[RESURSDLL.DLL]

COMPILE_FLAGS = -q -dll:dynamic

      RESURS.ARC
      RESURS.CH
      RESURS.RES


Formiranje fajla RESURSDLL.DLL
Example: fajl RESURSDLL.BAT ---> RESURSDLL.DLL

@ECHO OFF
PBUILD.EXE RESURSDLL.XPJ > RESURSDLL________.TXT
Pause























1.2. Kako Alaska Xbase++ upotrebljava ikone ICO





1.2. Kako Alaska Xbase++ 1.9 upotrebljava ikone ICO

IKONE - ICON

1. 1. Upotreba ikone koja se nalazi kao fajl TEST.ICO na disku računara


* Xbase++    
oICO := XbpIcon():new():create()
oICO:LoadFile("TEST.ICO")

* PushButton
oButon := XbpPushButton():new()
oButon:caption := oICO
oButon:create( oDlg, , {10,20}, {70,70} )

* Icon
oIcon:= XbpStatic():new(oDlg,oDlg, {30,100}, {32,32} )
oIcon:type := XBPSTATIC_TYPE_ICON
oIcon:caption := oICO
oIcon:autoSize := .T.
oIcon:create()

// Ikona je transparentna na PushButton i na Icon

 



* eXpress++
oICO := DC_GetBitmap( "TEST.ICO",,,,, .T. )

* PushButton
@ 1,1 DCPUSHBUTTON CAPTION oICO SIZE 8,3

* Icon
@ 1,1 DCSTATIC TYPE XBPSTATIC_TYPE_ICON SIZE 32,32 PIXEL CAPTION oICO

// Ikona je transparentna na PushButton i na Icon


 

1.2.1.  Upotreba ikone koja se nalazi kao resurs  broj 1 u EXE fajlu aplikacije


* Xbase++    
oICO := XbpIcon():new():create()
oICO:Load(NIL,1)

* PushButton
oButon := XbpPushButton():new()
oButon:caption := oICO
oButon:create( oDlg, , {10,20}, {70,70} )

* Icon
oIcon:= XbpStatic():new(oDlg,oDlg, {30,100}, {32,32} )
oIcon:type := XBPSTATIC_TYPE_ICON
oIcon:caption := oICO
oIcon:autoSize := .T.
oIcon:create()

// Ikona je transparentna na PushButton i na Icon



* eXpress++
oICO := DC_GetBitmap( 1 ,,,,, .T. )

* PushButton
@ 1,1 DCPUSHBUTTON CAPTION oICO SIZE 8,3

* Icon
@ 1,1 DCSTATIC TYPE XBPSTATIC_TYPE_ICON SIZE 32,32 PIXEL CAPTION oICO

// Ikona je transparentna na PushButton i na Icon



1.2.2.  Upotreba ikone koja se nalazi kao resurs  TEST_ICO i broj 1 u EXE fajlu a u istom EXE fajlu poziva se i koristi se i RESURS.CH fajl koji sadrži: #define TEST_ICO 1


* Xbase++    
* Icon
oIcon:= XbpStatic():new(oDlg,oDlg, {30,100}, {32,32} )
oIcon:type := XBPSTATIC_TYPE_ICON
oIcon:caption := 1 
// oIcon:caption := TEST_ICO
oIcon:autoSize := .T.
oIcon:create()

// upotrebljava se ili 1 ili TEST_ICO
// Ne može se koristiti za PushButton
// Ikona je transparentna na Icon



* eXpress++
* Icon
@ 1,1 DCSTATIC TYPE XBPSTATIC_TYPE_ICON SIZE 32,32 PIXEL CAPTION 1

// upotrebljava se ili 1 ili TEST_ICO
// Ne može se koristiti za PushButton
// Ikona je transparentna na Icon



1.3.1. Upotreba ikone koja se nalazi kao resurs  broj 1 u RESURS.DLL  fajlu


* Xbase++    
oICO := XbpIcon():new():create()
oICO:Load("RESURS.DLL",1)

* PushButton
oButon := XbpPushButton():new()
oButon:caption := oICO
oButon:create( oDlg, , {10,20}, {70,70} )

* Icon
oIcon:= XbpStatic():new(oDlg,oDlg, {30,100}, {32,32} )
oIcon:type := XBPSTATIC_TYPE_ICON
oIcon:caption := oICO
oIcon:autoSize := .T.
oIcon:create()
// Ikona je transparentna na PushButton i na Icon



* eXpress++
oICO := DC_GetBitmap( 1 ,, "ICO" , "RESURS.DLL" )

* PushButton
@ 1,1 DCPUSHBUTTON CAPTION oICO SIZE 8,3

* Icon
@ 1,1 DCSTATIC TYPE XBPSTATIC_TYPE_ICON SIZE 32,32 PIXEL CAPTION oICO

// Ikona je transparentna na PushButton i na Icon


1.3.2.  Upotreba ikone koja se nalazi kao resurs broj 1 u RESURS.DLL fajlu


* Xbase++    
* Icon
oIcon:= XbpStatic():new(oDlg,oDlg, {30,100}, {32,32} )
oIcon:type := XBPSTATIC_TYPE_ICON
oIcon:SetCaption := (1,"RESURS.DLL")
oIcon:autoSize := .T.
oIcon:create()

// Ne može se koristiti za PushButton
// Ikona je transparentna na Icon


 










1.4. Kako Alaska Xbase++ upotrebljava bitmape PNG,GIF,JPG


1.4. Kako Alaska Xbase++ 1.9 upotrebljava bitmape PNG, GIF, JPG

USERDEF



3. 1. Upotreba bitmape koja se nalazi kao fajl TEST.PNG na disku računara


* Xbase++    
oBMP := XbpBitmap():new():create()
oBMP:LoadFile("TEST.PNG") // or "TEST.GIF" or "TEST.JPG"
oBMP:transparentClr := oBMP:getDefaultBgColor() // for TEST.JPG

* PushButton
oButon := XbpPushButton():new()
oButon:caption := oBMP
oButon:create( oDlg, , {10,20}, {70,70} )

* Picture
oBitmap:= XbpStatic():new(oDlg,oDlg, {30,100}, {50,50} )
oBitmap:type := XBPSTATIC_TYPE_BITMAP
oBitmap:caption := oBMP
oBitmap:autoSize := .T.
oBitmap:create()

// Sa oBMP:transparentClr JPG bitmapa je transparentna
// na PushButton i na Picture, inače nije transparentna.
// Bitmape PNG i GIF transparentne su bez komande oBMP:transparentClr



* eXpress++
aColor := {0,0,0} // PNG transparent RGB color black
DC_BitmapTransparentColor(aColor)

oBMP := DC_GetBitmap( "TEST.PNG" ) // or "TEST.GIF" or "TEST.JPG"

* PushButton
@ 1,1 DCPUSHBUTTON CAPTION oBMP SIZE 8,3

* Picture
@ 1,1 DCSTATIC TYPE XBPSTATIC_TYPE_BITMAP SIZE 50,50 PIXEL CAPTION oBMP

// Sa DC_BitmapTransparentColor(aColor) JPG bitmapa je transparentna
// na PushButton i na Picture, inače nije transparentna.
// Bitmape PNG i GIF transparentne su bez komande
// DC_BitmapTransparentColor(aColor)







3. 2 Upotreba bitmape koja se nalazi kao resurs broj 1001 u EXE fajlu aplikacije a koja je definisana u ARC fajlu resursa kao:
USERDEF PNG
1001 = FILE "TEST.PNG"


* Xbase++    
oBMP := XbpBitmap():new():create()
cBuffer := LoadResource( 1001,,"PNG" ) // "BMP","PNG","GIF","JPG"
oBMP:SetBuffer( cBuffer, XBPBMP_FORMAT_PNG ) // _BMP,_PNG,_GIF,_JPG
oBMP:transparentClr := oBMP:getDefaultBgColor()

* PushButton
oButon := XbpPushButton():new()
oButon:caption := oBMP
oButon:create( oDlg, , {10,20}, {70,70} )

* Picture
oBitmap:= XbpStatic():new(oDlg,oDlg, {30,100}, {50,50} )
oBitmap:type := XBPSTATIC_TYPE_BITMAP
oBitmap:caption := oBMP
oBitmap:autoSize := .T.
oBitmap:create()

// Sa oBMP:transparentClr bitmapa je transparentna
// na PushButton i na Picture, inače nije transparentna



* eXpress++
aColor := {0,0,0} // PNG transparent RGB color black
DC_BitmapTransparentColor(aColor)

oBMP := DC_GetBitmap( 1001,,"PNG" ) // "BMP","PNG","GIF","JPG"

* PushButton
@ 1,1 DCPUSHBUTTON CAPTION oBMP SIZE 8,3

* Picture
@ 1,1 DCSTATIC TYPE XBPSTATIC_TYPE_BITMAP SIZE 50,50 PIXEL CAPTION oBMP

// Sa DC_BitmapTransparentColor(aColor) bitmapa je transparentna
// na PushButton i na Picture, inače nije transparentna






3. 3 Upotreba bitmape koja se nalazi kao resurs broj 1001 u RESURS.DLL fajlu a koja je definisana u ARC fajlu resursa kao:
USERDEF PNG
1001 = FILE "TEST.PNG" 


* Xbase++    
oBMP := XbpBitmap():new():create()
cBuffer := LoadResource(1001,"RESURS.DLL","PNG")//"BMP","PNG","GIF","JPG"
oBMP:SetBuffer( cBuffer, XBPBMP_FORMAT_PNG ) // _BMP,_PNG,_GIF,_JPG
oBMP:transparentClr := oBMP:getDefaultBgColor()

* PushButton
oButon := XbpPushButton():new()
oButon:caption := oBMP
oButon:create( oDlg, , {10,20}, {70,70} )

* Picture
oBitmap:= XbpStatic():new(oDlg,oDlg, {30,100}, {50,50} )
oBitmap:type := XBPSTATIC_TYPE_BITMAP
oBitmap:caption := oBMP
oBitmap:autoSize := .T.
oBitmap:create()

// Sa oBMP:transparentClr bitmapa je transparentna
// na PushButton i na Picture, inače nije transparentna



* eXpress++
aColor := {0,0,0} // PNG transparent RGB color black
DC_BitmapTransparentColor(aColor)

oBMP := DC_GetBitmap( 1001,,"PNG","RESURS.DLL")// "BMP","PNG","GIF","JPG"

* PushButton
@ 1,1 DCPUSHBUTTON CAPTION oBMP SIZE 8,3

* Picture
@ 1,1 DCSTATIC TYPE XBPSTATIC_TYPE_BITMAP SIZE 50,50 PIXEL CAPTION oBMP

// Sa DC_BitmapTransparentColor(aColor) bitmapa je transparentna
// na PushButton i na Picture, inače nije transparentna