quinta-feira, 31 de julho de 2008

Dica - Uso da InputWindowEx() na Prática

A InputWindow() é uma caixa de diálogo muito útil para quem precisa por exemplo: parâmetros para geração de um relatório. Pois nesses casos você não necessita criar uma nova janela somente para isso. A InputWindowEx() é uma extensão dessa mesma funcionalidade.Abaixo segue um código de utilização na prática da InputWindowEx().

*****************************************
Function PegaParametros( pAlias, pOrdem )

Local vDia := StrZero( LastDayOM( Date() ), 2 )
Local vMes := StrZero( Month( Date() ), 2 )
Local vAno := StrZero( Year( Date() ), 4 ) )
Local vDatI := CToD( '01' + '/' vMes + '/' + vAno )
Local vDatF :=CToD( vDia + '/' vMes + '/' + vAno )
Local aLabels := {}, aValues := {}, aFormats := {}, aRetx := {}

AAdd( aLabels, 'Data Início' )
AAdd( aValues, vDatI )
AAdd( aFormats, { 70, 'DP', 80, , } )

AAdd( aLabels, 'Data Fim' )
AAdd( aValues, vDatF )
AAdd( aFormats, { 70, 'DP', 80, , } )

AAdd( aLabels, 'Cópias')
AAdd( aValues, 0 )
AAdd( aFormats,{ 70,'TN',80,,'9999'})

AAdd( aLabels, 'Motivo do Cancelamento' )
AAdd( aValues, Nil )
AAdd( aFormats, { , , , ,'BOLD' } )

AAdd( aLabels, 'Motivo 1' )
AAdd( aValues, Space( 70 ) )
AAdd( aFormats, { 70, 'TX', 200, , } )

AAdd( aLabels, 'Motivo 2' )
AAdd( aValues, Space( 70 ) )
AAdd( aFormats, { 70, 'TX', 200, , } )

aRetx := InputWindowEx( 'Parâmetros Listagem', aLabels, aValues, aFormats, , , .T. )
// aRetx[1] -> Data inicial -> Data
// aRetx[2] -> Data inicial -> Data
// aRetx[3] -> Número de cópias -> Numérico
// aRetx[4] -> Label -> Sem efeito
// aRetx[5] -> Motivo 1 -> Caracter
// aRetx[6] -> Motivo 2 -> Caracter
If aRetx[1] == Nil
Return
Else
xNCopias := 1
Do While xNCopias <= aRetx[3] ( pAlias )->( DBSetOrder( pOrdem )
( pAlias )->( DBSeek( DToS( aRetx[1] ) ) )
ProceLista( aRetx[1], aRetx[2] )
xNCopias++
EndDo
EndIf
( pAlias )->( RLock() )
( pAlias )->Motivo1 := aRetx[5]
( pAlias )->Motivo2 := aRetx[6]
( pAlias )->( DBUnLock() )

Return

quarta-feira, 30 de julho de 2008

Anúncio da MiniGUI 1.5 Extended Edition (Build 54)

Olá a Todos,

O setup da Harbour MiniGUI 1.5 Extended Edition (Build 54) setup está disponível na seguinte URL:

http://hmgextended.com/files/CONTRIB/hmg-1.5-54-setup.zip

e a Lite build 54 pelo FreeExtractor na seguinte URL: http://hmgextended.com/files/CONTRIB/hmg-1.5-54-setup-lite.zip

Este release da MiniGUI é considerada estável e pronta para uso em produção. Segue-se abaixo o changelog para este build:2008/07/30: Build 54 (HMG 1.5 Extended Edition) Published.

* Fixado: Problemas com números negativos decimais e erro no posicionamento do cursor ao pressionar a tecla End no controle GetBox. Contribuição de Pierpaolo Martinello
pier.martinello[at]alice.it> (veja demo na pasta \samples\Basic\GetBox)
* Novo: Tradução para a língua Bulgara em h_init.prg e no comando SET LANGUAGE TO BULGARIAN. Tradução para a língua Bulgara nas libraries HbPrinter e MiniPrint . Contribuição de Sasho Savov <savovs@gmail.com>
* Atualizado: Sincronizada e Extendida HMG com a Oficial HMG 2.5.3:
- Novo: Propriedades de InputItems e DisplayItems para o controle Browse no modo InplaceEdit. (veja demos na pasta \samples\Basic\Browse_5)
* Atualizado: HBPrinter library (veja fonte na pasta \source\HbPrinter):
- Fixado: divide by zero na inicialização da Preview window. Reportado por J.Rudnicki <J_Rudnicki@wp.pl>. Contribuição de Grigory Filatov <gfilatov@freemail.ru>
* Atualizado: Compilador Harbour 1.0.0 (SVN 2008-07-30 03:31):
* Atualizado: Código fonte da library AdoRDD (veja na pasta \Source\AdoRDD);
* Atualizado: Código fonte da library HbODBC (veja na pasta \Source\HbODBC);
* Atualizado: Código fonte da library MySQL (veja na pasta \Source\MySQL). Contribuição de Grigory Filatov <gfilatov@freemail.ru> (procurem pelo ReadMe.txt na pasta \harbour e WhatsNew.txt na pasta \harbour\doc)
* Atualizado: Código fonte da library HbSQLite3 (veja na pasta \Source\HbSQLite3):
- atualizado para uso da SQLITE3 version 3.6.0 Contribuição de Grigory Filatov <gfilatov@freemail.ru> (veja demos nas pastas \samples\Advanced\SQLITE e \samples\Advanced\SQLITE_2)
* Novo: Exemplo de 'interação com 7-Zip' . Este exemplo requer que o 7-Zip archiver esteja instalado http://www.7-zip.org/. Contribuição de Vladimir Chumachenko mailto:ChVolodymyr@yandex.ru> (veja na pasta \samples\Advanced\7-Zip)
* Novo: Exemplo 'ActiveX User Component' . Baseado num código emprestado da Oficial HMG 2.5.3. Contribuição de Grigory Filatov <gfilatov@freemail.ru> (veja demos na pasta \samples\Basic\ActiveX)
* Novo: Exemplo 'Zip Component'. Baseado num código emprestado da Oficial HMG 2.0.032. Contribuição de Grigory Filatov <gfilatov@freemail.ru> (veja demo na pasta \samples\Basic\Zip_2)
* Novo: Exemplo 'MiniZip usage'. Baseado num código emprestado da Oficial HMG 2.5.3. Contribuição de Grigory Filatov <gfilatov@freemail.ru> (veja demo na pasta \samples\Basic\Zip_3)
* Novo: Exemplo 'Dynamic Context Menu'. Contribuição de Janusz Pora <januszpora@onet.eu> (veja menudemo5.prg na pasta \samples\Basic\Menu)
* Atualizado: Exemplo de versão multilingue 'MiniGUI Biorhythms' 1.0.3. Contribuição de Christian T. Kurowski <xharbour@wp.pl> (veja na pasta \samples\Applications\Biorhythm)
* Atualizado: Os exemplos de Applicações são revisados pelos seguintes comandos: \CompileAllApplications.bat /e /s /es2 para remoção de warnings de compilação. Sugerido por Kevin Carmody <i@kevincarmody.com>. Contribuição de Grigory Filatov <gfilatov@freemail.ru>

--Saudações, Grigory Filatov[MiniGUI Team]

--Tradução - Marcelo Brigatti

terça-feira, 29 de julho de 2008

Dica - Códigos de auxílio para travamento de sistema

Pelo ID do processador:
**********************************************
Local oTrava, oObjeto, xMsg := ""
oTrava := WmiService()
For Each oObjeto In ;
oTrava:ExecQuery( "SELECT * FROM Win32_Processor" )

xMsg := "ID: " + oObjeto:ProcessorID

Next
MsgInfo( xMsg )

Pelo Signature do HD:
**********************************************
Local oTrava, oObjeto, xMsg := ""
oTrava := WmiService()
For Each oObjeto In ;
oTrava:ExecQuery( "SELECT * FROM Win32_DiskDrive" )

Msg := "Signature: " + LTrim( Str( ABs( oObjeto:Signature ), 20, 0 ) )

Next
MsgInfo( xMsg )
**********************************************
Static Function WmiService()
Static oWmiLocal, oLocator
IF oWmi == Nil
oLocator := CreatObject( "wbemScripting.SwbemLocator" )
oWmi := oLocator:ConnectServer()
EndIf
Return oWmi

quinta-feira, 24 de julho de 2008

Demonstração do refresh da tela

Vejam aqui a demora ao fazer o refresh da tela quando se muda a aba de uma tab, alguém ai tem alguma idéia para acelerar esse processo, talvez algo do tipo BeginDisplay() ?

terça-feira, 8 de julho de 2008

Anúncio da MiniGUI 1.5 Extended Edition (Build 53a)

Olá a Todos,

O setup da Harbour MiniGUI 1.5 Extended Edition (Build 53a) está disponível na seguinte URL:http://hmgextended.com/files/CONTRIB/hmg-1.5-53a-setup.zip

e a Lite build 53a pelo FreeExtractor na seguinte URL:http://hmgextended.com/files/CONTRIB/hmg-1.5-53a-setup-lite.zip

Este release da MiniGUI é considerado estável e pronto para uso em produção.
Este é o changelog desta build:2008/07/07: Build 53a (HMG 1.5 Extended Edition) Published.

* Novo: O Harbour GPF aponta para o erro no C-code:
- Set( _SET_HBOUTLOGINFO [, ] ) -> Default value: MiniGUIVersion() string
Este texto definido pelo usuário será incluído em cada mensagem do error.log. Desta maneira será possível incluir informações customizadas nestas entradas para ajudar a identificar e localizá-las.
* Atualizado: Compilador Harbour 1.0.0rc2 (SVN 2008-07-07 06:57):
* Atualizado: Código fonte da library HbODBC (veja na pasta \Source\HbODBC);
* Atualizado: Código fonte da libraryMySQL (veja na pasta \Source\MySQL). Contribuição de Grigory Filatov (procure em ReadMe.txt na pasta \harbour e WhatsNew.txt na pasta \harbour\doc)
* Novo: Exemplo 'ODBC com Access'. Contribuição de Grigory Filatov Baseado em um código contribuído pelo forum Spanish HMG. (veja na pasta \samples\Basic\ODBC_2)
* Novo: Exemplo 'AdoRDD-3 MySql Browse'. Emprestado da Official HMG 2.0.032.(veja na pasta \samples\Basic\ADORDD_3)
* Atualizado: Exemplo 'MiniSql Basic'. Contribuição de Grigory Filatov (veja na pasta \samples\Advanced\MiniSql)
* Atualizado: Os exemplos Básicos são revisados pelo seguinte comando: samples\CompileAllBasic.bat /e /s /es2 e utilitários da 'Lista de Funções' e 'Analisador de Projeto' são revisados pelo seguinte comando: utils\CompileAllUtils.bat /e /s /es2 para remover avisos de compilação. Sugestão de Kevin Carmody i@kevincarmody.com. Contribuição de Grigory Filatov gfilatov@freemail.ru

--Saudações, Grigory Filatov[MiniGUI Team]

--Traduzido por: Marcelo Brigatti