9.30.2005
Criando Objetos em Tempo de Execução
esse artigo eu gostei muito depois que escrevi.
Eu criei todos os sistemas de manutenção de tabela de um aplicativo meu dinamicamente...
um frm so para manutenção de todas as tabelas de meu banco.
Vale a pena da uma lida.
http://leandroneves.googlepages.com/CriandoObejetoemTempodeExecuacao.apt
Value galera...
um abraço
Leandro Neves
leandroneves@gmail.com
msn: rodrigofneves@hotmail.com
www.besync.com.br
9.27.2005
Programação OOP Parte II
Não pedi para niguem revisar o documento, portanto pode conter alguns erros de grafia.
Se encontra-rem algum por favor me escrevam...
http://leandroneves.googlepages.com/OPoderdoOOPcomCentura_ParteII.pdf
Um abraço a todos.
Leandro Neves
leandroneves@gmail.com
msn: rodrigofneves@hotmail.com
www.besync.com.br
9.21.2005
Testes: Ferramentas para compreensão de código
Pessoal, Thiago Arrais escreveu um artigo muito bom sobre Testes.
A idéia é escrever o processo de testes de um sistema para compreender melhor o mesmo... e um visão muito interessante, vale a pena da uma lida.
Primeiro dar os parabéns pelo artigo, esta muito bom.
Obrigado Thiago por ter permitir publica seu artigo aqui no blog.
Um abraço.
Testes.FerramentasCompreensaoCodigo.pdf
Leandro Neves
leandroneves@gmail.com
9.16.2005
Relação de Funções da API do Windows
Eu não gosto muito de usar as api do Windows pois acho que ele engessam o sistema, principalmente quando vai migrar pra outra versão do Windows ai não tem mais a api que usa, ai muda pro Linux não tem ... bom, mas as vezes e a única saída :D
GetComputerName
Returns computer system name as you seen it in Network Neighborhood
Declare:
//computer name
Function long GetComputerName(ref String lpBuffer , long nSize ) Library "kernel32.dll"
Alias for "GetComputerNameA"
Sleep process for specified number of miliseconds
Declare:
//sleep
Subroutine Sleep( long dwMilliseconds ) Library "kernel32.dll"
Execution:
//sleep process for 1 second
Sleep(1000)
------------------------------------------------------------------------------------------------
GetSystemDirectory
Retrieve windows system directory eq. c:\WINNT\system32
//system directory
Function long GetSystemDirectory(ref string lpBuffer , long ByVal ) Library
"kernel32.dll" Alias for "GetSystemDirectoryA"
Execution:
ls_buffer= space(50)
li_ret = GetSystemDirectory( ls_buffer, 50 )
MessageBox("system directory", trim( ls_buffer ) )
GetTempPath
Retrieve path to the temporary folder of the system
Declare:
//temp path
Function long GetTempPath(long nBufferLength, ref string lpBuffer ) Library
"kernel32.dll" Alias For "GetTempPathA"
------------------------------------------------------------------------------------------------
Generate temporary and unique filename
Declare:
//temporary random file
Function long GetTempFileName(string lpszPath, string lpPrefixString, long wUnique,
ref String lpTempFileName) Library "kernel32.dll" Alias for "GetTempFileNameA"
Execution:
//temporary file
li_ret = GetTempFileName(trim(ls_temppath), 'tmp', 0, ls_buffer)
MessageBox("temporary file", trim(ls_buffer))
------------------------------------------------------------------------------------------------
Get user name that is currently logged to the system
Declare:
//user name
Function long GetUserName(ref string lpBuffer, ref long nSize ) Library
"advapi32.dll" Alias for "GetUserNameA"
Execution:
//user name
ls_buffer = space(100)
li_ret = GetUserName(ref ls_buffer, 100 )
MessageBox("user name", trim(ls_buffer))
------------------------------------------------------------------------------------------------
Get windows directory eq. c:\WINNT
Declare:
//windows directory
Function long GetWindowsDirectory(ref String lpBuffer , long nSize ) Library
"kernel32.dll" Alias For "GetWindowsDirectoryA"
Execution:
ls_buffer = space(50)
li_ret = GetWindowsDirectory( ls_buffer , 50 )
MessageBox("windows directory", trim(ls_buffer))
Declare:
//add last used document into document history
subroutine SHAddToRecentDocs( Long uFlags, String pv ) Library "shell32.dll"
Execution:
//add document to the last edited documents
SHAddToRecentDocs(2 , 'c:\custdata.txt' )
------------------------------------------------------------------------------------------------
Open system dialog for selecting dialog screen
Declare:
type BROWSEINFO from structure
long hwndOwner
long pidlRoot
string pszDisplayName
string lpszTitle
long ulFlags
long lpfn
long lParam
long iImage
end type
//browse for folder
Function long SHBrowseForFolder(ref BROWSEINFO lpbi ) Library "shell32.dll"
Alias for "SHBrowseForFolderA"
Execution:
BROWSEINFO lstr_browserinfo
lstr_browserinfo.hwndOwner = Handle(parent)
lstr_browserinfo.pszDisplayName = space(300)
lstr_browserinfo.lpszTitle='test'
lstr_browserinfo.lpfn=0
SHBrowseForFolder( ref lstr_browserinfo )
Execute program attached to the file:
Declare:
//shell execute
Function long ShellExecute(long hwnd, string lpOperation , string lpFile , string
lpParameters , string lpDirectory , long nShowCmd) Library "shell32.dll" Alias
for "ShellExecuteA"
Execution:
ShellExecute(Handle(parent), "open" , "iexplore" , "" , "" , 3 )
Copy, delete, move files using the standard windows dialog boxes
(
Declare:
type SHFILEOPSTRUCT from structure
long hwnd
long wFunc
string pFrom
string pTo
integer pFlags
long fAnyOperationsAborted
long hNameMappings
string lpszProgressTitle
end type
//copy, rename, delete files
Function long SHFileOperation(ref SHFILEOPSTRUCT lpFileOp ) Library "shell32.dll"
Alias for "SHFileOperationA"
Declare:
type FILETIME from structure
long dwLowDateTime
long dwHighDateTime
end type
type win32_find_data from structure
long dwfileattributes
filetime ftcreationtime
filetime ftlastaccesstime
filetime ftlastwritetime
long nfilesizehigh
long nfilesizelow
long dwreserved0
long dwreserved1
char actercfilename[260]
char actercalternate[14]
end type
//find first file
Function long FindFirstFile(string lpFileName, ref WIN32_FIND_DATA lpFindFileData
) Library "kernel32.dll" Alias for "FindFirstFileA"
Execution:
long ll_ret
WIN32_FIND_DATA lstr_find_info , l_empty
ll_ret = FindFirstFile("C:\temp\*.txt", lstr_find_info )
If ll_ret = -1 Then
MessageBox("","there are no files C:\temp\*.txt")
return
End If
MessageBox("first file founded",trim(lstr_find_info.cFileName) )
lstr_find_info = l_empty
//find next file
ll_ret = FindNextFile(ll_ret, lstr_find_info )
If ll_ret = 0 Then
MessageBox("","there are no more files C:\temp\*.txt")
return
End If
MessageBox("second file founded",trim(lstr_find_info.cFileName) )
------------------------------------------------------------------------------------------------
FindClose
Declare:
//close
Function long FindClose(long hFindFile ) library "kernel32.dll"
------------------------------------------------------------------------------------------------
Declare:
//get disk free space
Function long GetDiskFreeSpaceEx(String lpDirectoryName , ref ULARGE_INTEGER
lpFreeBytesAvailableToCaller , ref ULARGE_INTEGER lpTotalNumberOfBytes, ref
ULARGE_INTEGER lpTotalNumberOfFreeBytes ) Library "kernel32.dll" Alias For "GetDiskFreeSpaceExA"
------------------------------------------------------------------------------------------------
Declare:
//get file path
Function long GetFullPathName(string lpFileName , long nBufferLength , ref string
lpBuffer , string lpFilePart ) Library "kernel32.dll" Alias for "GetFullPathNameA"
Execution:
//get file path
String ls_buffer = space(255)
GetFullPathName('trala.txt' , 255, ls_buffer, '' )
MessageBox("", "full path : "+ trim( ls_buffer))
------------------------------------------------------------------------------------------------
Declare:
//remove directory
Function long RemoveDirectory(string lpPathName) Library "kernel32.dll" Alias
for "RemoveDirectoryA"
GetEnvironmentVariable
Declare:
//get system variable
Function long GetEnvironmentVariable(string lpName , ref string lpBuffer , long
nSize ) Library "kernel32.dll" Alias for "GetEnvironmentVariableA"
Execution:
string ls_buffer = space(255)
//get system variable
GetEnvironmentVariable('TEMP' , ls_buffer , 255 )
MessageBox("","temp path "+ trim(ls_buffer))
------------------------------------------------------------------------------------------------
Declare:
//set system variable
Function long SetEnvironmentVariable(string lpName , string lpValue )
Library "kernel32.dll" Alias for "SetEnvironmentVariableA"
Execution:
string ls_buffer = space(255)
//set system variable
SetEnvironmentVariable('TEST' , 'tralalalal' )
//get system variable
GetEnvironmentVariable('TEST' , ls_buffer , 255 )
MessageBox("","added variable"+ trim(ls_buffer))
9.15.2005
Report Builder Travando
Ontem me aconteceu algo me deixou estressado.
Toda vez que alterava um qrp, salvava e depois tenta-se abrir ou utilizado no SQLWindow tele travava ... Não tinha jeito... tentava de tudo nada...
Pensei que fosse minha maquina, fui em outra, e nada mesma coisa.
Ai resolvi fazer passo a passo, alteração por alteração... alterava, salvava abria para tentar identificar onde ele estava travando.
Fiz esta operação dezenas de vezes.. ate que descobri o erro.. o problema acontecia, quando colocava uma quantidade muito grande de linhas no Page Head ou no Page Fooder... o problema e tão serio que ao colocar 28 linhas no Page Fooder, ele só trava quando tento visualizar ou imprimir através do SQLWindow.
Bom.... deve ser algum bug muito do safado e já deve ter sido corrigido em pft.
Mas fica o alerta... se você estiver usando o o Report Builder 2.1 e estivar travado seu QRP, verifique seu numero de linhas :D
Um abraço a todos.
9.12.2005
Developer Conference - Participe
Pessoal,
Vamos ajudar a Gupta a organizar um evento Técnico para programadores Gupta.
Participe do fórum Evento técnico Gupta no site http://www.guptaexplorer.com.br
Quanto mais pessoas participem, mais rápido e com mais qualiadde pode organizar o evento.
Se quiserem entrame contato comigo via MSN podem me cadastrar rodrigofneves@hotmail.com
Conto com a colaboração de todos.
Leandro Neves
leandroneves@gmail.com
msn: rodrigofneves@hotmail.com
9.06.2005
Cobertura - Evento Gupta Recife
acabei de chegar do evento Gupta que teve aqui em Recife... foi muito produtivo e com otimas novidades .
Depois estarei postando aqui os ppt´s que foram apresentados e algumas fotos.
Estou esperando apenas Ana Paula me mandar.
**************************************************************************************
Novidades
**************************************************************************************
Bom mas vou falar de algumas novidades para começar.
O Team Developer 2006 sera lançado em abril de 2006, como todos ja sabem ele copilara nativo para Linux, e tera uma nova IDE.
Segundo Ana Paula a nova IDE do SQLWindow sera sobre um conjunto de biblioteca grafica chamadas qt... para quem usa o Linux o nome soa bem familiar, o KDE é desenvolvido sobre ela.
A proposta deste novo ambiente é estar tudo na mão do desenvolvendor, podendo controlar banco de dados, componente, etc...
Ela não deu mais detalhe, porem vou batalhar por um printscreen do ambiente.
o Team Developer 2007 sera lançado no final de 2006...esse sim promete, ele copilara para dot net, mono e nativo Linux. O nativo windows sera descontinuado.
Na palestra de Ana Paula, ela tocou muito na tecla de migrar as aplicações para OLEDB pois a Gupta não da mais suporte aos routes eles continuam apenas pela compatibilidade.
**************************************************************************************
Evento para Programadores
**************************************************************************************
Pessoal,
Uma noticia muito boa foi que o pessoal da Gupta e da Unisystem, vão apoiar um evento (provavelmente em SP) voltado para os programadores SQLWindow.
A ideia do evento e mostrar soluções, e como se fazer (programado)....
O Evento sera o dia todo ou em dois dias, ainda vamos decidir.
Gostaria de sujestões de palestras e do apoio de voces para que o evento possa acontecer, pois so com adesão de todos é que podemos fazer este evento.
Eu pensei em alguns temas como.
CDK - Gerador de Condigo Fonte.
Aplicação Web - Como fazer uma aplicação web em SQLWindow.
Padrões de Projetos com Team Developer.
Espero contar com a ajuda de voces.
**************************************************************************************
Livro Team Developer 2005.1
**************************************************************************************
No evento foi anunciado oficialmente a publicação de um livro sobre Team Developer 2005.1 for Linux.
Escrito por Lairton Nogueira Jr. e por mim, sera lançado provavalmente daqui a um ou dois messes.
Bom é isso....
Depois posto mais detalhes tecnicos.
Um abraço a todos.
Leandro Neves
leandroneves@gmail.com
msn: rodrigofneves@hotmail.com
www.besync.com.br