CodePage
| 
The
  following table shows the correlation of Charset name, Charset Value and
  Codepage number: 
Charset
  Name       Charset Value(hex)  Codepage number 
------------------------------------------------------ 
DEFAULT_CHARSET           1 (x01) 
SYMBOL_CHARSET            2 (x02) 
OEM_CHARSET             255 (xFF) 
ANSI_CHARSET              0 (x00)            1252 
RUSSIAN_CHARSET         204 (xCC)            1251  Rusian,Serbian,Bulgarian 
                                                   Cyrillic fonts 
EE_CHARSET              238 (xEE)            1250  Eastern Europe  
                                                  
  Serbian Latin 
GREEK_CHARSET           161 (xA1)            1253 
TURKISH_CHARSET         162 (xA2)            1254 
BALTIC_CHARSET          186 (xBA)            1257 
HEBREW_CHARSET          177 (xB1)            1255 
ARABIC
  _CHARSET         178 (xB2)            1256 
SHIFTJIS_CHARSET        128 (x80)             932 
HANGEUL_CHARSET         129 (x81)             949 
GB2313_CHARSET          134 (x86)             936 
CHINESEBIG5_CHARSET     136 (x88)             950 | 
gde je oFont font objekat kreiran kao Xbase part:
| 
   oFont
  := XbpFont():new()              // Create XbpFont object  
   oFont:familyName := "Times New
  Roman" // Describe font  
   oFont:height     := 16  
   oFont:width      := 
  8  
   oFont:codePage  
  :=  238              // Serbian latin 
   oFont:create()                        // Create font  
   GraSetFont ( , oFont )                // Select font  
   GraStringAt( , {10,300}, "Font ŠĐČĆŽ")//
  Output characters | 
Font se
najčešće ne kreira na ovaj način već kao font koji pripada aplikacionom prozoru
u kome će sva slova biti u tom fontu, pa se u tom postupku zadaje i kodna
strana, na sledeći način:
| 
 * glavni Prozor aplikacije: 
   oDlg               := XbpDialog():new( , , aPos,
  aSize,, .F. ) 
   oDlg:title         := "Main menu" 
   oDlg:taskList      := .T. 
   oDlg:SysMenu       := .F. 
   oDlg:create() 
 * Font: 
 * oDlg:drawingArea:setFontCompoundName(
  "10.Arial" )  // ili 
 * oDlg:setFontCompoundName( "10.Arial"
  )              // postavi font  
   oDlg:setFontCompoundName(
  "10.Arial" ) // prvo se postavi font        
   oFont := oDlg:setfont()      // dobije se font objekat sa codepage =
  0 
   oFont:codepage := 238        // promeni se codepage u novu = 238 
   oFont:configure()            // aktivira se novi font objekat  
   oDlg:show() 
   SetAppFocus( oDlg ) | 
Kod Xbase++
font koji se na ovaj način postavi za oDlg aplikacioni prozor biće od strane
Xbase++ korišćen na celoj površini aplikacionog prozora (drawingarea) i na svim
objektima koji su Parent sa aplikacionim prozorom (oDlg). Jedino kod upotrebe
tog fonta u XbpStatic okvirima
(groupbox i ostalim) font neće imati postavljenu codePage, što znači da neće
biti prikazana i štampana Serbian latin slova: ŠĐČĆŽ šđčćž. U ovim slučajevima
treba posebno postaviti isti font samo za takve objekte, na sledeći način:
| 
 
             oTxt := XbpStatic():new( oDlg, , {5,40}, {200,20}
  ) 
      oTxt:type := XBPSTATIC_TYPE_TEXT 
      oTxt:Caption := "Serbian ŠĐČĆŽ
  šđčćž" 
      oTxt:create() 
      oTxt:setFont(oDlg:setfont())  // preuzmi za oTxt font postavljen za oDlg 
      oTxt:setFont():configure()    // konfiguriši preuzeti font za oTxt 
      ili korak po korak i jasnije: 
      oFont := oDlg:SetFont() 
      oText:setFont(oFont) 
      oFont:configure()   | 
Ista tehnika
promene kodne strane može se koristiti i kod eXpress++ 
| 
#include
  "dcdialog.ch" 
FUNCTION
  test_codepage_upotreba_express() 
LOCAL  GetList := {},  GetOptions, oDlg 
//-------------------
  1 ------------------- 
PRIVATE
  oButton, oFont, cFont 
@ 1,1  DCPUSHBUTTON CAPTION {|| "Test ŠĐČĆŽ
  šđčćž" } OBJECT oButton ; 
       SIZE 20,2           ; 
       ACTION {|| font(getlist),; // Promena
  kodne strane 
                  DC_GetRefresh(getlist) } ; 
       FONT "10.Arial" 
//-------------------
  2 ------------------- 
PRIVATE
  oFont1, oButton1 
   oFont1 := XbpFont():new()              // Create XbpFont object 
   oFont1:familyName := "Times New
  Roman" // Describe font 
   oFont1:height     := 16 
   oFont1:width      := 
  8 
   oFont1:codePage   := 
  238              // Serbian latin 
   oFont1:create()                        // Create font 
@ 3,1  DCPUSHBUTTON CAPTION {|| "Test ŠĐČĆŽ
  šđčćž" } OBJECT oButton1 ; 
       SIZE 20,2 ; 
       ACTION {|| msgbox(DC_FontCompoundName(
  oFont1 )),; 
                  DC_GetRefresh(getlist) } ; 
       FONT DC_FontCompoundName( oFont1 ) 
//----------------------------------------- 
 DCGETOPTIONS NOMINBUTTON NOMAXBUTTON 
 DCREAD GUI ; 
   TITLE "Test codePage"; 
   FIT                  ; 
   OPTIONS GetOptions   ; 
   SETFOCUS @oButton    ; 
   PARENT @oDlg         ;  
   MODAL                ;     // zbog modalnog sledeceg prozora 
   EVAL {|o| SetAppWindow(o)} // zbog
  modalnog sledeceg prozora 
RETURN NIL 
FUNCTION
  font(GetList) 
       // postojeće stanje: 
       oFont := oButton:SetFont() 
       cFont := oButton:setFontcompoundname()
  // naziv fonta 
       cCodePage := oFont:codePage 
       msgbox(cFont+"
  "+var2char(cCodePage),"Postojeće stanje") 
       // novo stanje 
       oButton:setFontcompoundname("10.Cambria") 
       oFont := oButton:SetFont() 
       oFont:codePage := 238 
       oFont:configure() 
       oButton:setFont(oFont) 
       oFont := oButton:SetFont() 
       cFont := oButton:setFontcompoundname()
  // naziv fonta 
       cCodePage := oFont:codePage 
       msgbox(cFont+"
  "+var2char(cCodePage),"Novo stanje") 
RETURN NIL | 
Primer Programa
u eXpress++ u kome se u različitim xbase objektima (XBPStatic, XBPPushbutton) koriste
različiti Serbian latin fontovi sa codepage 238
| 
/* 
*
  FONT-AND-EXPRESS.PRG 
*
  (04-08-2014) 
* © COBA
  Systems Software 
* BAST® Open
  Source Project 
* Business
  Account Software Technology 
*
  www.cobasystems.com 
*/ 
#include
  "appevent.ch" 
#INCLUDE
  "xbp.ch" 
#include
  "common.ch" 
#INCLUDE
  "font.ch" 
#INCLUDE
  "gra.ch" 
#INCLUDE
  "dcdialog.ch" 
PROCEDURE
  APPSYS() 
RETURN 
FUNCTION
  MAIN() 
LOCAL GetList
  := {} ,getoptions ,oDlg, MAG1_ := SPACE(12) 
LOCAL aCUR :=
  {"USER32.DLL",114} 
SET DATE
  FORMAT TO "dd.mm.yyyy"   //
  formatiraj ispis datuma 
SET CHARSET
  TO ANSI 
SET DATE
  GERMAN 
SET CENTURY
  ON 
   @ 0.6,0 DCSTATIC TYPE
  XBPSTATIC_TYPE_GROUPBOX OBJECT oo SIZE 53,11 ; 
         CAPTION {|| "SERBIAN LATIN
  ŠĐČĆŽ šđčćž" }  COLOR
  GRA_CLR_DARKRED ; 
         FONT font238(16,"Cambria
  Bold") // prihvata samo font objekat //*** FONT 
        
  ************************************************************************ 
   @ 3,1 
  DCSAY 'Objekat čiji je dnevni pazar..............................' 
   @ 3,35 DCGET MAG1_ 
   @ 4,1 
  DCSAY 'Broj specifikacije dnevnog pazara.........................' 
   @ 4,35 DCGET MAG1_ 
   @ 5,1 
  DCSAY 'Datum specifikacije dnevnog pazara.........................' 
   @ 5,35 DCGET MAG1_ 
   @ 7,1 
  DCSAY 'Objekat čiji je interni račun.............................' 
   @ 7,35 DCGET  MAG1_ 
   @ 8,1 
  DCSAY 'Broj internog računa ŠĐČĆŽ.................................' 
   @ 8,35 DCGET MAG1_ 
   @ 9,1 
  DCSAY 'Datum internog računa šđčćž................................' 
   @ 9,35 DCGET MAG1_ 
 //------------------------ TOOLBAR
  ----------------------------------------------- 
   @ 12,0 DCTOOLBAR oToolBar SIZE 53,1.4 ; 
          BUTTONSIZE 53/5,1.4 // FONT
  font238(8,"Arial Bold") 
   DCADDBUTTON CAPTION "Napravi ŠĐČĆŽ
  šđčćž"  ACCELKEY xbeK_F2 ; 
   TOOLTIP "" ; 
   CURSOR aCUR PARENT oToolBar SIZE 53/5*3; 
   ACTION {||pomoc() } ; 
   FONT font_238(12,"Cambria") //
  prihvata samo string FontCompoundName 
  //*** FONT 
  
  ******************************************************************************** 
   DCADDBUTTON CAPTION "Help
  čć"  ACCELKEY xbeK_F1 ; 
   TOOLTIP "" ; 
   CURSOR aCUR PARENT oToolBar ; 
   ACTION {||pomoc() } ; 
   FONT font_238(12,"Impact") 
   DCADDBUTTON CAPTION "Exit"
  ACCELKEY xbeK_ESC ; 
   TOOLTIP "" ; 
   CURSOR aCUR PARENT oToolBar ; 
   ACTION {||
  DC_ReadGuiEvent(DCGUI_EXIT_OK,GetList)} ; 
   FONT
  font_238(12,"Impact") 
  DCGETOPTIONS ; 
      NOESCAPEKEY; 
      SAYWIDTH 240 ; 
      NOMAXBUTTON NOMINBUTTON ; 
      BORDER XBPDLG_RECESSEDBORDERTHICK_FIXED
  ; // EDITPROTECT bEdit_Kljuc ; 
      GETFONT "10.Courier Bold"; 
  COLORGETS { { GRA_CLR_DARKRED,
  GRA_CLR_WHITE },{ GRA_CLR_DARKRED, GRA_CLR_PALEGRAY } }; 
      SAYFONT font238(10,"Cambria
  Bold") // prihvata samo objekat //*** FONT 
     
  ************************************************************************ 
  DCREAD GUI FIT; 
      TITLE "SERBIAN LATIN FONTS ::
  ŠĐČĆŽ šđčćž" ; 
      OPTIONS GetOptions PARENT @oDlgx EVAL
  {|o|SetAppWindow(o) } MODAL 
CLEAR
  TYPEAHEAD 
RETURN .T. 
****************************** 
FUNCTION
  font238(fv,fn) 
****************************** 
* DCSTATIC
  TYPE XBPSTATIC_TYPE_GROUPBOX CAPTION "ŠĐČĆŽšđčćž" ; 
*                              FONT
  font238(16,"Cambria Bold") 
LOCAL oFont 
   oFont := XbpFont():new()        // Create XbpFont object 
   oFont:nominalPointSize := fv    // 13             // veličina 
   oFont:familyName       := fn    // "Verdana Bold" // Describe
  font 
   oFont:codePage         := 
  238  // Serbian latin 
   oFont:create()                  // Create font 
*  oFont:configure()               // Configure font - samo ako
  već postoji font 
RETURN
  oFont                       // vraća
  XbpFont object 
****************************** 
FUNCTION
  font_238(fv,fn) 
****************************** 
* DCADDBUTTON
  CAPTION "ŠĐČĆŽšđčćž" FONT font_238(12,"Cambria") 
LOCAL oFont 
   oFont := XbpFont():new()         // Create XbpFont object 
   oFont:nominalPointSize := fv     // 13    
          // veličina 
   oFont:familyName       := fn     // "Verdana Bold" // Describe
  font 
*  oFont:compoundName     := fn    
  // "Verdana Bold" // Describe font 
   oFont:codePage         := 
  238   // Serbian latin 
   oFont:create()                   // Create font 
*  oFont:configure()                // Configure font - samo ako
  već postoji font 
* 
  msgbox(var2char(oFont:nominalPointSize)+"."+var2char(oFont:compoundName)) 
RETURN
  (var2char(oFont:nominalPointSize)+"."+var2char(oFont:compoundName)) 
// vraća string
  za font compound name 
****************************** 
FUNCTION
  font__238(oo) 
****************************** 
* DCSTATIC
  TYPE XBPSTATIC_TYPE_GROUPBOX OBJECT oo // postavlja font objekta oo 
* DCREAD GUI
  EVAL {|o|SetAppWindow(o),font__238(oo) } 
LOCAL oFont 
   oFont := XbpFont():new()           // Create XbpFont object 
   oFont:familyName := "Verdana
  Bold" // Describe font 
   oFont:nominalPointSize := 13       // veličina 
   oFont:codePage   := 
  238           // Serbian latin 
   oFont:create()                     // Create font 
*  oFont:configure()                  // Configure font - samo
  ako već postoji font 
   oo:setFont(oFont)                  // dodeli font xbase
  objektu oo 
*  msgbox( oo:setFontcompoundname()+"
  "+var2char(oFont:codePage),"Novi Font") 
RETURN NIL 
FUNCTION
  POMOC() 
LOCAL ch :=
  chr(13) 
msgbox(; 
"Kako u
  eXpress postaviti kodnu stranu 1250/238 latinica i 1251/204
  ćirilica"  + ch+; 
"
  "                                                                           
  + ch+; 
"Kada se
  radi sa Alaska Xbase++ alatom: eXpress++ (Roger Donnay) tada"         + ch+; 
"se
  upotreba Serbian latin fontova uključuje sa SET CHARSET TO ANSI"           + ch+; 
"i sa
  podešavanjem windowsa u regional and language na Serbian latin"          + ch+; 
"Time se
  dobija Charset:"                                                     
  + ch+; 
"   charset name: EE_CHARSET"                                                 
  + ch+; 
"   charset value: 238 ili (xEE)"                                              + ch+; 
"   codepage number: 1250 Eastern Europe
  Serbian Latin"                       
  + ch+; 
"
  "                                                                           
  + ch+; 
"i sa na
  primer: DCPUSHBUTTON CAPTION 'ŠĐČĆŽ' FONT '14.Helv Bold'"             + ch+; 
"vide se
  na ekranu i štampaju se na printeru Serbian latin slova"              + ch+; 
"
  "                                                                           
  + ch+; 
"Međutim
  fontovi Verdana, Arial, Times New Roman i drugi,"                     + ch+; 
"neće
  kroz komandu: FONT '14.Verdana Bold' "                                   + ch+; 
"prihvatiti
  slova ŠĐČĆŽšđčćž odnosno kodnu stranu 238"                         + ch+; 
"
  "                                                                    
         + ch+; 
"Iz tog
  razloga mora se kodna strana 238 dodati ovim fontovima"                + ch+; 
"preko
  posebne funkcije. U ovom primeru prikazan je način dodavanja"           + ch+; 
"kodne
  strane putem tri različite funkcije kojim se kreira font objekat"       + ch+; 
"sa
  željenom, kodnom stranom a zatim se taj font objekat dodaje xbase"         + ch+; 
"objektu
  čime taj xbase objekat dobija font sa kodnom stranom 238"             + ch+; 
"koji
  prikazuje ŠĐČĆŽ"                                                        
  + ch+; 
"
  "                                                                           
  + ch+; 
"Isto
  važi i za ćirilicu. SET CHARSET TO ANSI i podešavanje Windowsa"          + ch+; 
"u
  regional and language na Serbian cyrillic, daju Charset:"                   + ch+; 
"  charset name: RUSSIAN_CHARSET"                                             
  + ch+; 
"  charset value: 204 ili (xCC)"                                              
  + ch+; 
"  codepage number: 1251 Rusian, Serbian,
  Bulgarian Cyrillic fonts"           
  + ch+; 
"  "                                                                            
  ,; 
"Serbian
  latin kodna strana 1250/238 i Serbian cyrillic kodna strana 1251/204") 
RETURN NIL | 
 

 
Nema komentara:
Objavi komentar