Curso completo de DarkGdk
Gameprog - Escola de programação de jogos digitais
Contato: gameprog.br@gmail.com
Fase 2.2

index << >>



02.2 Pesquisando as fontes instaladas no sistema

	
02.2 Mostrando as fontes do sistema

// string02.cpp // Esse programa mostra como usar a função dbPerformChecklistForFonts() // Sempre que usar a Dark GDK você deve garantir a inclusão desse arquivo #include "DarkGDK.h" void initsys(); void tst_texto_02(); // Eis aqui o ponto de entrada da sua aplicação void DarkGDK ( void ) { initsys(); tst_texto_02(); while ( LoopGDK ( ) ) { dbSync ( ); } // fim do while return; } // fim da função: DarkGDK // ---------------------------------------------------------------------------- // Inicialização básica do sistema void initsys() { int nBranco = 0xFFFFFF; int nPreto = 0; dbCLS(nBranco); dbInk(nPreto, nBranco); dbSetWindowTitle ("string02.cpp"); // Configurando o video para a maxima performance a 60 fps dbSyncOn ( ); dbSyncRate ( 60 ); } // fim da função: initsys() // ---------------------------------------------------------------------------- // txt_texto_02() Segunda bateria de testes de texto void tst_texto_02() { int nqtd; // Quantidade de fontes no sistema int ncx; // Nosso contador básico char txt[255]; // Memória temporária para texto dbPerformChecklistForFonts(); nqtd = dbChecklistQuantity(); sprintf(txt, "(...) Quantidade de fontes no sistema: %d", nqtd); dbText (10,100,txt); for (ncx=1; ncx < 7; ncx++) dbPrint ( dbChecklistString (ncx) ); } // fim da função: tst_texto_02()
Explicando a função txt_texto_02() Esta função pesquisa e exibe a quantidade total de fontes instaladas no sistema e exibe o nome das seis primeiras localizadas. nqtd = dbChecklistQuantity(); Esta função retorna o total de fontes localizadas pela função de pesquisa de fontes ( dbPerformChecklistForFonts() ). txt = dbChecklistString (nPosição) Os nomes das fontes ficam armazenadas numa lista e podem ser acessados pela posição que ocupam através da função dbChecklistString(). Coletando e formatando dados para exibição int nqtd; // Quantidade de fontes no sistema char txt[255]; // Memória temporária para texto nqtd = dbChecklistQuantity(); sprintf(txt, "(...) Quantidade de fontes no sistema: %d", nqtd); dbText (10,100,txt); Com muita frequência surge a necessidade de mostrar na tela os valores das variáveis que utilizamos a fim de que possamos entender o que está acontecendo nos bastidores ou por finalidade de correção do programa. No bloco de código acima ilustramos como você pode coletar, formatar e exibir informações de controle do seu programa. (*) Importante:
Há uma série de funções na DarkGdk que realizam pesquisas (dbPerform(...)): - pesquisa de fontes, pesquisa de modos de vídeo, pesquisa de conexões de rede etc. Todas estas funções utilizam a mesma interface de comunicação, isto é, todas elas vão usar dbChecklistQuantity() para retornar a quantidade de itens encontrados e dbChecklistString() para retornar itens quando houver itens do tipo string.


1.3 Obtendo os dados de configuração da fonte
Função
Descrição
ntipo = dbTextBackgroundType ( )
int dbTextBackgroundType ( void )
Retorna o tipo de background de texto configurado
1 - opaco 0 - transparente
sfonte = dbTextFont ( )
char* dbTextFont$ ( void )
Retorna o nome da fonte configurada
ntam = dbTextSize ( )
int dbTextSize ( void )
Retorna o tamanho da fonte
nEstilo = dbTextStyle ( )
int dbTextStyle ( void )
Retorna o estilo da fonte
nLargura = dbTextWidth (txt)
int dbTextWidth ( char* szString )
Retorna a largura do texto txt em pixels
nAltura = dbTextHeight (txt)
int dbTextHeight ( char* szString )
Retorna a altura do texto txt em pixels
// string03.cpp // Esse programa mostra como obter a configuração dos aspectos da fonte #include "DarkGDK.h" void initsys(); void tst_texto_03(); void mostreFonteConfig(); int nPreto = 0; int nAzul = 0x0000FF; int nBranco = 0xFFFFFF; // Começo da aplicação DarkGdk void DarkGDK ( void ) { initsys(); tst_texto_03(); while ( LoopGDK ( ) ) { dbSync ( ); } // fim do while return; } // fim da função: DarkGDK void initsys() { // Esta função inicializa o sistema dbCLS(nBranco); dbInk(nPreto, nBranco); dbSetWindowTitle ("string03.cpp"); // Configurando o video para a máxima performance a 60 fps dbSyncOn( ); dbSyncRate ( 60 ); } // fim da função: initsys() void tst_texto_03() { // Ilustra obtenção de dados de configuração de fonte // Configuração inicial dbInk(nPreto, nBranco); dbSetTextTransparent(); dbPrint(); mostreFonteConfig(); // Separe as diferentes configurações para melhor leitura dos resultados dbPrint(); // Pule uma linha dbPrint("----------------------------------------------------------------------"); dbPrint(); // Pule uma linha // Vamos reconfigurar alguns aspectos da fonte e na sequência exibimos a config dbSetTextFont("Courier New"); dbSetTextSize(20); dbSetTextToBold(); dbInk(nBranco, nAzul); dbSetTextOpaque(); mostreFonteConfig(); } // fim de tst_texto_03() void mostreFonteConfig() { // Esta função obtém e mostra a configuração padrão dos aspectos da fonte // Variáveis de trabalho char site[] = "Gameprog"; char txt[255]; char* sfontnome; int nLargura, nAltura, nEstilo, nTipoFundo, nFonteTam; // Vamos pegar os dados da configuração de fonte sfontnome = dbTextFont(); // Pega o nome da fonte corrente nLargura = dbTextWidth(site); // Pega a largura da string em px nAltura = dbTextHeight(site); // Pega a altura da string em px nEstilo = dbTextStyle(); // Pega o estilo de impressão da fonte nTipoFundo = dbTextBackgroundType(); // Tipo de fundo da fonte nFonteTam = dbTextSize(); // Pega o tamanho da fonte em px sprintf(txt, " String site: %s", site); dbPrint (txt); sprintf(txt, " Fonte corrente: %s <-- dbTextFont()", sfontnome); dbPrint (txt); sprintf(txt, " Largura('Gameprog'): %dpx <-- dbTextWidth(site)", nLargura); dbPrint (txt); sprintf(txt, " Altura('Gameprog'): %dpx <-- dbTextHeigth(site)", nAltura); dbPrint (txt); sprintf(txt, " Estilo da fonte: %d <-- dbTextStyle()", nEstilo); dbPrint (txt); sprintf(txt, " nTipoFundoFonte: %d <-- dbTextBackgroundType()", nTipoFundo); dbPrint (txt); sprintf(txt, " Tamanho da fonte: %dpx <-- dbTextSize()", nFonteTam); dbPrint (txt); } // fim de mostreFontConfig()


1.4 Manipulação de strings
Função
Descrição
nval = dbAsc (txt)
int dbAsc ( char* szString )
Retorna o código ascii da primeira letra de txt
txt = dbChr (nAsc)
char* dbChr ( int iValue )
Retorna o caracter correspondende ao código ascii especificado (nAsc)
txt = dbBin (nval)
char* dbBin ( int iValue )
Retorna a representação binária de nval na forma de uma string
txt = dbHex (nval)
char* dbHex ( int iValue )
Retorna a representação hexadecimal de nval na forma de uma string
ntam = dbLen (txt)
int dbLen ( char* szString )
Retorna o tamanho da string txt
sres = dbMid (txt, nqtd)
char* dbMid ( char* szString, int iValue)
Retorna uma string (sres) formada de nqtd caracteres da string txt
sres = dbRight (txt, nqtd)
char* dbRight ( char* szString, int iValue)
Retorna a quantidade nqtd de caracteres da string txt avançando pela direita
sres = dbLeft (txt, nqtd)
char* dbLeft ( char* szString, int iValue)
Retorna a quantidade nqtd de caracteres da string txt a partir da esquerda
sres = dbStr (txt, nval)
char* dbStr ( char* szString, int iValue)
Converte o valor nval para uma string txt
sres = dbUpper (txt)
char* dbUpper ( char* szString )
Retorna a versão em caixa alta da string txt
sres = dbLower (txt)
char* dbLower ( char* szString )
Retorna a versão em caixa baixa da string txt
nval = dbVal (sval)
int dbVal ( char* szString )
Converte uma string para um tipo numérico
txt = dbSpace (nqtd)
char* dbSpace ( int iSpace )
Retorna uma string de nqtd espaços
// string04.cpp // Esse programa ilustra a manipulação de strings #include "DarkGDK.h" void initsys(); void tst_texto_04(); int nPreto = 0; int nAzul = 0x0000FF; int nBranco = 0xFFFFFF; // Começo da aplicação DarkGdk void DarkGDK ( void ) { initsys(); tst_texto_04(); while ( LoopGDK ( ) ) { dbSync ( ); } // fim do while return; } // fim da função: DarkGDK void initsys() { // Esta função inicializa o sistema dbCLS(nBranco); dbInk(nPreto, nBranco); dbSetWindowTitle ("string04.cpp"); // Configurando o video para a máxima performance a 60 fps dbSyncOn( ); dbSyncRate ( 60 ); } // fim da função: initsys() void tst_texto_04() { // Esta função demonstra as funções de manipulação de strings // Variáveis de trabalho int nval = 170; int nascii = 0; int ntam = 0; char txt[255]; char site[] = "Gameprog"; char* letra; char* sval = "170"; dbPrint(); dbSetTextFont("Courier New"); dbSetTextSize(18); dbSetTextToBold(); nascii = dbAsc("A"); ntam = dbLen(site); sprintf(txt, " dbAsc('A'): %d", nascii); dbPrint (txt); sprintf(txt, " dbChr(34): %s (aspa)", dbChr (34)); dbPrint (txt); sprintf(txt, " dbLen('Gameprog'): %d letras", ntam); dbPrint (txt); dbPrint(); letra = dbLeft(site,1); sprintf(txt, " dbLeft('Gameprog',1): %s - Primeira letra de Gameprog", letra); dbPrint (txt); letra = dbRight(site,1); sprintf(txt, " dbRight('Gameprog',1): %s - Ultima letra de Gameprog", letra); dbPrint (txt); sprintf(txt, " dbMid('Gameprog',4): %s ", dbMid(site,4)); dbPrint (txt); dbPrint(); sprintf(txt, " dbBin(170): '%s' ", dbBin(170)); dbPrint (txt); sprintf(txt, " dbHex(170): '%s' ", dbHex(170)); dbPrint (txt); dbPrint(); sprintf(txt, " dbUpper('Gameprog'): %s ", dbUpper(site)); dbPrint (txt); sprintf(txt, " dbLower('Gameprog'): %s ", dbLower(site)); dbPrint (txt); dbPrint(); sprintf(txt, " dbStr(65): '%s' ", dbStr(65)); dbPrint (txt); sprintf(txt, " dbVal('170'): %f ", dbVal(sval)); dbPrint (txt); sprintf(txt, " dbSpaces(8): %s Gameprog tabeado", dbSpaces(8)); dbPrint (txt); } // fim de tst_texto_04()

index << >>


Produzido por Gameprog: Jair Pereira - Setembro/2013 © gameprog.br@gmail.com http://www.gameprog.com.br http://www.nucleoararat.com.br