Do Clipper ao Harbour(x) - Dicas e Tutoriais -> Este blog é dedicado a todos Analistas e Programadores interessados em Software Livre, programação xBase e tudo o que for de relevância. "A idéia inicial é criar um ponto de reunião e de troca de experiências para programadores, analistas, técnicos e outros entusiastas de computação de um modo geral".
quarta-feira, 16 de março de 2011
Restaurar serviço de rede no windows
terça-feira, 15 de março de 2011
Dica para remover mensagem de executáveis no windows
"O editor não pode ser verificado. Tem certeza que deseja executar esse software."
Faça o Seguinte:
Clique em iniciar/executar: gpedit.msc
Selecione:
- Configurações do Usuário
- Configurações de Software
- Modelos Administrativos
- Gerenciador de Anexos
- Lista de inclusão de tipos de arquivos de baixo risco
-- Clique em ativado
-- Na caixa digitável, insira o nome do seu executável (com extensão)
( É sensitível, a caixa, observem)
-- Clique em OK
quarta-feira, 24 de novembro de 2010
Dica para refresh da nova versão do TSBrowse
oBr:SetFocus()
oBr:Reset()
oBr:Refresh(.T.)
oBr:ResetBarPos(.T.)
oBr:BuguP()
Substituam por:
oBr:SetFocus()
oBr:Refresh(.T.)
oBr:ResetVScroll(.T.)
Caso contrário não serão mostradas atualizações em pesquisas.
sexta-feira, 19 de novembro de 2010
Novos Métodos do TSBrowse
METHOD AddColumn( oColumn ) Adiciona uma coluna para o Browse, préviamente definido com o método construtor de colunas TSColumn:New(), ou com o comando DEFINE COLUMN oColumn ..
METHOD SetColumn( oColumn, nCol )
METHOD AddSuperHead( nFromCol, nToCol, uHead, nHeight, aColors, l3dLook, uFont, uBitMap, lAdjust, lTransp, lNoLines, nHAlign, nVAlign )
METHOD BeginPaint() INLINE If( ::lRepaint, Super:BeginPaint(), 0 ) Uso interno, Chamado a partir do método Display().
METHOD BugUp() INLINE ::UpStable() Chama o método UpStable().
METHOD BiClr( uClrOdd, uClrPair )
METHOD Bof() INLINE If( ::bBoF != Nil, Eval( ::bBof ), .F. ) //V90
METHOD ChangeFont( hFont, nColumn, nLevel )
METHOD DbSkipper( nToSkip ) Usado internamente; controla o ponteiro do registro do database.
METHOD Default() Uso interno; ações de inicialização do Browser.
METHOD Del( nItem )
METHOD DeleteRow( lAll )
METHOD DelColumn( nPos )
METHOD Destroy() Uso interno; Destrói o controle Browse.
METHOD Display() Uso interno- Exibe o Browse na primeira vez.
METHOD DrawFooters() INLINE ::DrawHeaders( .T. ) Desenha o Footers.
// MESSAGE DrawIcon METHOD _DrawIcon( nIcon, lFocused )
METHOD DrawIcons()
METHOD DrawLine( xRow ) Pinta a linha ativa ou nRow.
METHOD DrawPressed( nCell, lPressed )
METHOD DrawSelect() Pinta o cursor na linha ativa.
METHOD DrawSuper() Desenha os Super-Headers.
METHOD DrawHeaders( lFooters ) Desenha Headers, Footers, e Super-Headers.
METHOD Edit( uVar, nCell, nKey, nKeyFlags, cPicture, bValid, nClrFore, nClrBack )
METHOD EditExit( nCol, nKey, uVar, bValid, lLostFocus )
METHOD EndPaint() INLINE If( ::lRePaint, Super:EndPaint(), ( ::lRePaint := .T., 0 ) ) Uso interno, Chamado a partir do método Display().
METHOD Eof() INLINE If( ::bEoF != Nil, Eval( ::bEof ), .F. ) //V90
METHOD Excel2( cFile, lActivate, hProgress, cTitle, lSave )
METHOD ExcelOle( cXlsFile, lActivate, hProgress, cTitle, hFont, lSave, bExtern, aColSel, bPrintRow )
METHOD Exchange( nCol1, nCol2 ) INLINE ::SwitchCols( nCol1, nCol2), ::SetFocus() Troca a posição das colunas nCol1 e nCol2.
METHOD ExpLocate( cExp )
METHOD ExpSeek( cExp, lSoft )
METHOD FreezeCol( lNext )
METHOD GetAllColsWidth() //V90
METHOD GetColSizes() INLINE If( ValType( ::aColSizes ) == "A", ::aColSizes, Eval( ::aColSizes ) ) Retorna uma matriz contendo as larguras das colunas em pixels.
METHOD GetColumn( nCol ) Retorna uma referencia ao objeto TSColumn correspondente a nCol.
METHOD GetDlgCode( nLastKey )
METHOD GetRealPos( nRelPos )
METHOD GetTxtRow( nRowPix ) INLINE RowFromPix( ::hWnd, nRowPix, ::nHeightCell, If( ::lDrawHeaders, ::nHeightHead, 0 ),If( ::lFooting .and. ::lDrawFooters, ::nHeightFoot, 0 ),If( ::lDrawHeaders, ::nHeightSuper, 0 ),If( ::lDrawSpecHd, ::nHeightSpecHd, 0 ))
METHOD GoBottom() Posiciona o cursor na última linha do Browse, movendo o ponteiro de registros para o último registro do database, ou para o último elemento de outros objetos ( Array, oDbf, Text, Tree, oCtx ). É executado quando as teclas Ctrl+End ou Ctrl+PgDn são pressionadas, ou quando arrastando para o fim da barra de rolagem vertical.
METHOD GoDown() Posiciona o cursor uma linha abaixo movendo o ponteiro para o próximo registro no database, ou para o próximo elemento em outros objetos. É executado quando a tecla Down (seta para baixo) é pressionada.
METHOD GoEnd() Posiciona o cursor na última coluna visível na tela.
METHOD GoHome() Posiciona o cursor na primeira coluna visível na tela.
METHOD GoLeft() Move o cursor uma coluna para a esquerda.
METHOD GoNext() Move o cursor para a próxima coluna editável para a direita, ou para a próxima coluna editável da próxima linha.
METHOD GoPos( nNewRow, nNewCol ) Move o cursor para a linha definida em nNewRow e coluna definida em nNewCol.
METHOD GoRight() Move o cursor uma coluna para a direita.
METHOD GotFocus( hCtlLost ) Uso interno, executa ações ao receber o foco no Browse, entre as quais se destaca a avaliação do blóco de código definido em bGotFocus.
METHOD GoTop() Posiciona o cursor na primeira linha do Browse, movendo o ponteiro de registro para primeiro registro no database, ou para o primeiro elemento de outros objetos ( Array, oDbf, Text, Tree, oCtx ).
METHOD GoUp() Posiciona o cursor uma linha acima, movendo o ponteiro para o registro anterior do database, ou para elemento anterior de outros objetos.
METHOD HandleEvent( nMsg, nWParam, nLParam )
METHOD HiliteCell( nCol, nColPix ) Posiciona o cursor na coluna definida em nCol. Se usado quando da ativação do Browse, será exibido com o cursor nesta coluna.
METHOD HScroll( nWParam, nLParam )
METHOD HThumbDrag( nNewCol )
// METHOD Init( hDlg ) INLINE ::Initiate( hDlg )
// METHOD Initiate( hDlg ) INLINE Super:Initiate( hDlg ), ::Default()
METHOD InsColumn( nPos, oColumn ) Insere uma coluna (object TSColumn oColumn ) na posição definida em nPos.
METHOD Insert( cItem, nAt )
METHOD AddItem( cItem )
METHOD IsColVisible( nCol )
METHOD IsColVis2( nCol )
METHOD IsEditable( nCol ) INLINE ::lCellBrw .and. ::aColumns[ nCol ]:lEdit .and. ( ::aColumns[ nCol ]:bWhen == Nil .or.Eval(::aColumns[ nCol ]:bWhen, Self ) )
METHOD KeyChar( nKey, nFlags ) Uso interno. Executa ações dependendo da tecla pressionada nKey. Avalia o código de bloco bKeyChar.
METHOD KeyDown( nKey, nFlags ) Uso interno. - Similar a KeyChar(). Avalia o código de bloco bKeyDown.
METHOD KeyUp( nKey, nFlags )
METHOD LButtonDown( nRowPix, nColPix, nKeyFlags ) Uso interno.- Executa ações relacionadas com o clique no botão esquerdo do mouse. Avalia o código de bloco bLClick.
METHOD LButtonUp( nRowPix, nColPix, nFlags )
METHOD lCloseArea() INLINE If( ::lIsDbf .and. ! Empty( ::cAlias ), ( ( ::cAlias )->( DbCloseArea() ), ::cAlias := "", .T. ), .F. )
METHOD LDblClick( nRowPix, nColPix, nKeyFlags ) Uso interno.- Executa ações relacionadas com o duplo clique no botão esquerdo do mouse. Avalia o código de bloco bLDblClick.
METHOD lEditCol( uVar, nCol, cPicture, bValid, nClrFore, nClrBack ) Executa a edição de dados das células. Você pode usar esse método de seu programa em funções de edição personalizadas. Este método retornará um valor de .T. (True - Verdadeiro) se a edição finalizar normalmente, e .F. (False - Falso) se o usuário cancelar a edição.
METHOD lIgnoreKey( nKey, nFlags )
METHOD LoadFields( lEditable )
METHOD LoadRecordSet() //V90
METHOD LoadRelated( cAlias, lEditable, aNames, aHeaders )
METHOD Look3D( lOnOff, nColumn, nLevel, lPhantom )
METHOD LostFocus( hCtlFocus ) Uso interno. É ativado quando o Browse perde o foco. Avalia o código de bloco bLostFocus.
METHOD lRSeek( uData, nFld, lSoft ) //V90
METHOD MButtonDown( nRow, nCol, nKeyFlags ) Uso interno.- É ativado quando o botão central do mouse é pressionado (em mouses de 3 botões). Avalia o código de bloco bMButtonDown, recebendo os mesmos parametros.
METHOD MouseMove( nRowPix, nColPix, nKeyFlags )
METHOD MouseWheel( nKeys, nDelta, nXPos, nYPos )
METHOD MoveColumn( nColPos, nNewPos ) Muda a posição da coluna dentro do Browse, se a variável ::lMoveCols for .T.
METHOD nAtCol( nColPixel, lActual )
METHOD nAtIcon( nRow, nCol )
METHOD nColCount() INLINE Len( ::aColumns )
METHOD nField( cName ) //V90
METHOD nLogicPos() Retorna a posição lógica para o índice ativo.
METHOD nRowCount() INLINE CountRows( ::hWnd, ::nHeightCell, If( ::lDrawHeaders, ::nHeightHead, 0 ),If( ::lFooting .and. ::lDrawFooters, ::nHeightFoot, 0 ),If( ::lDrawHeaders, ::nHeightSuper, 0 ),If( ::lDrawSpecHd, ::nHeightSpecHd, 0 )) Uso interno.- Conta as linhas exibíveis do Browse.
METHOD PageUp( nLines ) Move o cursor e o ponteiro de registros uma página acima. É executado quando é pressionada a tecla PgUp.
METHOD PageDown( nLines ) Move o cursor e o ponteiro de registros uma página abaixo. É executado quando é pressionada a tecla PgDn.
METHOD Paint() Uso interno.- Pinta o Browse. Chamado a partir do método Display().
METHOD PanHome() Move o cursor para a primeita coluna da linha corrente.É nativado quando pressionadas as teclas Shift+LeftArrow.
METHOD PanEnd() Move o cursor para a última coluna da linha corrente. É ativado quando pressionadas as teclas Shift+RightArrow.
METHOD PanLeft() Move o cursor para a primeira coluna visível da linha corrente. É ativado quando a tecla Home é pressionada.
METHOD PanRight() Move o cursor para a última coluna visível da linha corrente. É ativado quando a tecla End é pressionada.
METHOD PostEdit( uTemp, nCol, bValid )
METHOD RButtonDown( nRowPix, nColPix, nFlags ) Uso interno.- Executa açoes relacionadas com o clique no botão direito do mouse. Avali o código de bloco bRClicked. Se o clique é feito na area do cabeçalho (Header), o TSBrowse exibirá um menu PopUp com opções de coluna e movimento de cursor.
METHOD Refresh( lPaint, lRecount ) //V90
METHOD RelPos( nLogicPos )
METHOD Report( cTitle, aCols, lPreview, lMultiple, lLandscape, lFromPos )
METHOD Reset( ) //V90 Move o cursor e o ponteiro de registro para o topo do Browse e executa o método Refresh(.T.)
METHOD ResetSeek()Restaura o valor da variável cSeek para nulo (Null), assim uma nova pesquisa incremental pode ser executada.
METHOD ResetVScroll( lInit ) //V90
METHOD ReSize( nSizeType, nWidth, nHeight )
METHOD TSBrwScroll( nDir ) INLINE TSBrwScroll( ::hWnd, nDir, ::hFont,::nHeightCell, If( ::lDrawHeaders, ::nHeightHead, 0 ),If( ValType( ::lDrawFooters ) == "L" .and.::lDrawFooters ,::nHeightFoot, 0 ), ::nHeightSuper, ::nHeightSpecHd )
METHOD Seek( nKey ) Este método faz todo o trabalho da pesquisa incremental.
METHOD Set3DText(lOnOff, lRaised, nColumn, nLevel, nClrLight, nClrShadow )
METHOD SetAlign( nColumn, nLevel, nAlign )
METHOD SetAppendMode( lMode ) Ativa a inserção automática após o ultimo registro (Append).
METHOD SetArray( aArray, lGenCols, aHead ) //V90
METHOD SetBtnGet( nColumn, cResName, bAction, nBmpWidth )
METHOD SetColMsg( cMsg, cEditMsg, nCol )
METHOD SetColor( xColor1, xColor2, nColumn )
METHOD SetColSize( nCol, nWidth )
METHOD SetColumns( aData, aHeaders, aColSizes )
METHOD SetDeleteMode( lOnOff, lConfirm, bDelete, bPostDel )
METHOD SetHeaders( nHeight, aCols, aTitles, aAlign , al3DLook, aFonts, aActions )
METHOD SetData( nColumn, bData, aList )
#ifdef _TSBFILTER7_
METHOD SetFilter( cField, uVal1, uVal2 ) //deleted in V90
#endif
METHOD SetFont( hFont )
METHOD SetIndexCols( nCol1, nCol2, nCol3, nCol4, nCol5 )
METHOD SetItems( aItems ) INLINE ::SetArray( aItems, .T. )
METHOD SetDBF( )
METHOD SetOrder( nColumn, cPrefix, lDescend )
METHOD SetRecordSet( oRSet, lEditable ) //V90
METHOD SetSelectMode( lOnOff, bSelected, uBmpSel, nColSel, nAlign )
METHOD SetSpinner( nColumn, lOnOff, bUp, bDown, bMin, bMax )
METHOD ShowSizes()
METHOD Skip( n )
METHOD SortArray( nCol, lDescend )
METHOD SwitchCols( nCol1, nCol2 )
METHOD SyncChild( aoChildBrw, abAction )
METHOD UpAStable()
METHOD UpRStable( nRecNo ) //V90
METHOD UpStable()
METHOD Proper( cString ) Converte o texto cText em iniciais maiúsculas.
METHOD VertLine( nColPixPos, nColInit, nGapp )
METHOD VScroll( nWParam, nLParam )
METHOD Enabled(lEnab) // JP 1.55
METHOD HideColumns( nColumn , lHide) //JP 1.58
METHOD AutoSpec(nCol)
METHOD RefreshARow(xRow) //JP 1.88
sexta-feira, 22 de maio de 2009
Com o usar o ACBr - Monitor (Parte 2)
E aqui a tela de fechamento da venda
Créditos:
JOSÉ JUCÁ DE OLIVEIRA
AV.Capitão Castro, 3294 Centro Vilhena/Ro
69 3321 4575
skype: jose.juca3044
msn : medial@ps5.com.br
Marcelo Brigatti
Sistemas IES
quinta-feira, 14 de maio de 2009
Diferença do e-CNPJ para o Certificado NF-e
No link https://www.identidadedigital.com.br/pergunte, a reposta para a diferença entre os dois certificados é esta:
"Qual é a diferença do e-CNPJ e o Certificado NF-e?
Os dois certificados digitais podem ser utilizados para emissão de Nota Fiscal Eletrônica, pois ambos são emitidos na Infra-Estrutura de Chaves Públicas Brasileira - ICP-Brasil e contêm o número de CNPJ da empresa em seu conteúdo.
A vantagem do certificado NF-e é que ele foi criado unicamente para validar as NF-e e pode ser utilizado pelos funcionários da empresa e não apenas pelo seu representante legal, proporcionando uma maleabilidade na utilização.
Outra diferença é que a estrutura que ele utiliza é mais robusta para verificação e validação dos campos da NF-e, devido ao volume de vezes em que ele é utilizado."
Com a resposta acima, achava que a vantagem era comprar o e-cnpj por ser mais barato, mas neste link
http://robertodiasduarte.blogspot.com/2008/12/certificados-digitais-para-nf-e.html
existe uma explicação de qual a diferença dos dois tipos de certificado.
Leia o trecho abaixo retirado deste link:
"A menos que você seja, o representante legal e o faturista de sua empresa é melhor ter dois certificados: um e-CNPJ para assinar documentos e acessar o e-CAC da RFB e o e-NFe registrado em nome do faturista responsável pela emissão de NF-e.
Se o faturista utiliza um e-CNPJ, ele terá uma procuração em branco de sua empresa.
Com o e-NFe, suas atribuições ficam limitadas representar a empresa no processo de emissão de documentos fiscais.
Contudo, cada faturista deve ter um e-NFe individual e, caso ele seja desligado da empresa, você deve providenciar a revogação do certificado."
Ou seja, por questões de segurança, o indicado para a NFe é usar o certificado específico para NFe, a não ser que quem emita a NFe seja também o representante legal da empresa.
Do site:
http://anfm.blogspot.com/
André Ferreira de Moraes
quarta-feira, 6 de maio de 2009
Como usar o ACBR - Monitor - Passo a Passo
1 - O que é o ACBr Monitor (http://acbr.sourceforge.net/wiki/index.php/Monitor)
Nada mais que um executável que fica residente na SysTray e se comunica com sua aplicação através de arquivos .TXT ou Sockets (TCP/IP), permitindo assim que seu programa fale facilmente com vários modelos / marcas de Impressoras Fiscais, Impressoras de Cheques, Gavetas de Dinheiro, Displays de Mensagens e Leitores de Cod. Barras Serial.
Os comandos podem ser enviados para o ACBrMonitor por arquivo texto ou sockets, a sintaxe dos comandos é identica em ambos os casos. A resposta dos equipamentos de automação controlados pelo ACBrMonitor (Ex: ECF) será devolvida a Aplicação pelo ACBrMonitor também usando um arquivo texto de saida ou sockets, (conforme a configuração).
2 - Para fazer o Download Abaixo está o link da página:
http://sourceforge.net/project/showfiles.php?group_id=109206&package_id=182935
Abaixo está o passo a passo da instalação:
quinta-feira, 30 de abril de 2009
quarta-feira, 29 de abril de 2009
Anúncio da versão 1.6.66 - em português
O setup da Harbour MiniGUI 1.6 Extended Edition (Build 66) está disponível na seguinte URL:
http://hmgextended.com/files/CONTRIB/hmg-1.6-66-setup.zip
e o Lite build 66 na seguinte URL:
http://hmgextended.com/files/CONTRIB/hmg-1.6-66-setup-lite.zip
Este é o changelog deste build:
2009/04/29: Build 66 (HMG 1.6 Extended Edition) Published.
* Fixado: Não havia nenhuma ação ao clicar o botão no controle BTNTEXTBOX dos resources(introduzido no build 55). Contribuição de Janusz Pora <januszpora@onet.eu>
* Fixado: Multipla execução do evento OnChange ao mudar linha e coluna pelo clique do mouseno controle celled GRID. Baseado em um código emprestado da HMG 2.8.6 Oficial. Contribuição de Grigory Filatov <gfilatov@freemail.ru>
(veja demo2.prg na pasta \samples\Basic\Grid_7)
* Alterado: Função de manipulação de erros da MiniGUI para reduzir o tamanho da library. Contribuição de Grigory Filatov <gfilatov@freemail.ru>
* Aperfeiçoado: O controle BTNTEXTBOX suporta uma cláusula opcional DisableEdit agora.
Requisitado por Jozef Rudnicki <j_rudnicki@wp.pl>. Contribuição de Janusz Pora <januszpora@onet.eu>
(veja demo na pasta \samples\Basic\BtnTextBox)
* Aperfeiçoado: Manutenção da propriedade BLINK para o controle Label em runtime:
- Sintaxe da função:SetProperty ( Form, controle, 'Blink', .T. )
- Sintaxe pseudo-OOP :Form.Label.Blink := .F.
Requisitado por Pedro Chanis <drinol@yahoo.com>.Contribuição de Grigory Filatov <gfilatov@freemail.ru>
(veja demo na pasta \samples\Basic\Blink)
* Atualizado: Library Cputype para compatibilidade com a última mudança do Harbour. Contribuição de Grigory Filatov <gfilatov@freemail.ru> (veja na pasta \Lib)
* Atualizado: Tradução de linguagem para Slovenian em HBPrinter library.
Contribuição de Mitja Podgornik <yamamoto@rocketmail.com>.
* Atualizado: Código fonte da PropGrid library:
- Novo: Cláusula DISABLEEDIT para itens tipo COLOR, FONT, IMAGE, SIZE, ARRAY, FILE, FOLDER, USERFUN para executar valor do get pela função button somente. Contribuição de Janusz Pora <januszpora@onet.eu>
(veja Changelog.txt na pasta \Source\PropGrid edemo3.prg na pasta \samples\Advanced\PropGrid)
* Atualizado: Harbour Compiler 1.1.0dev (SVN 2008-04-27 19:17):
* New: Código fonte da HaruPDF library (veja na pasta \Source\HaruPDF). Contribuição de Grigory Filatov <gfilatov@freemail.ru>
(procure pelo at ReadMe.txt na pasta \harbour e WhatsNew.txt na pasta \harbour\doc)
* Atualizado: HMGS-IDE v.0.8.4. Project Manager e Two-Way Visual Form Designer. Contribuição de Walter Formigoni <walter.formigoni@uol.com.br>
(procure pelo changelog.txt na pasta \Ide)
* Novo: 'Ajuste de Resolução' exemplo. Contribuição de Christian T. Kurowski <xharbour@wp.pl>
(veja demo2.prg na pasta \samples\Advanced\FitToDesktop)
* Novo: 'Haru PDF' exemplo é baseado na Haru Free PDF Library 2.0.8 de http://libharu.sourceforge.net. Contribuição de Pierpaolo Martinello
(veja na pasta \samples\Advanced\HaruPDF)
* Atualizado: 'FDF Form Filler' exemplo. Contribuição de Pierpaolo Martinello
* Atualizado: EZTwain exemplo: EZTWAIN.DLL v1.19 2009.02.20 de http://www.dosadi.com. Contribuição de Grigory Filatov <gfilatov@freemail.ru>
(veja na pasta \samples\Advanced\EZTWAIN)
* Atualizado: 'WAIT WINDOW' exemplo
(veja demos na pasta \samples\Basic\WAIT_WINDOW). Baseado num código emprestado da Oficial HMG 2.8.8.
Este release da MiniGUI é considerado estável e pronto para uso em produção.
--Saudações,
Grigory Filatov [MiniGUI Team]
Traduzido por
Marcelo Brigatti [Sistemas IES]
sexta-feira, 14 de novembro de 2008
O QUE É XML ?
Seu propósito principal é a facilidade de compartilhamento de informações através da Internet. Entre linguagens baseadas em XML incluem-se XHTML (formato para páginas Web), RDF,SDMX ,SMIL, MathML (formato para expressões matemáticas), NCL, XBRL, XSIL e SVG (formato gráfico vetorial).
Objetivos do XML
Estimulado pela insatisfação com os formatos existentes (padronizados ou não), um grupo de empresas e organizações que se autodenominou World Wide Web Consortium (W3C) começou a trabalhar em meados da década de 1990 em uma linguagem de marcação que combinasse a flexibilidade da SGML com a simplicidade da HTML.
O principio do projeto era criar uma linguagem que pudesse ser lida por software, e integrar-se com as demais linguagens. Sua filosofia seria incorporada por vários princípios importantes:
• Separação do conteúdo da formatação
• Simplicidade e Legibilidade, tanto para humanos quanto para computadores
• Possibilidade de criação de tags sem limitação
• Criação de arquivos para validação de estrutura (Chamados DTDs)
• Interligação de bancos de dados distintos
• Concentração na estrutura da informação, e não na sua aparência
O XML é considerado um bom formato para a criação de documentos com dados organizados de forma hierárquica, como se vê frequentemente em documentos de texto formatados, imagens vetoriais ou bancos de dados.
Pela sua portabilidade, um banco de dados pode através de uma aplicação escrever em um arquivo XML, e um outro banco distinto pode ler então estes mesmos dados.
Site referência do Brasil: http://www.xmlbr.com.br/
Fonte: Wikipédia
___________________________________________________________
1. XML é para estruturar dados
São exemplos de dados estruturados planilhas, cadernos de endereços, parâmetros de configuração, transações financeiras e desenhos técnicos. XML é um conjunto de regras (você também pode encará-las como convenções ou diretrizes) para projetar formatos de texto que o permitam estruturar seus dados. XML não é uma linguagem de programação e você não precisa ser um programador para usá-la ou aprendê-la. XML torna simples para o computador gerar e ler dados, e garantir que sua estrutura não seja ambígua. XML evita os problemas mais comuns em projetos de linguagens; ela é extensível, independente de plataforma e suporta internacionalização e localização. XML é 100% conforme ao padrão Unicode.
2. XML parece um pouco com HTML
Como HTML, XML usa marcadores (palavras envoltas pelos sinais '<' e '>') e atributos (na forma nome="valor"). Mas enquanto HTML especifica o que cada marcador e atributo significa, e às vezes como seu conteúdo aparecerá num navegador, XML usa os marcadores apenas para delimitar os trechos de dados, deixando sua interpretação completamente à cargo da aplicação que os lê. Em outras palavras, ao ver "
" num arquivo XML, não assuma que é um parágrafo. Dependendo do contexto, pode ser um preço, um parâmetro, uma pessoa, um p... — ora, quem disse que a palavra tem que começar por pê? " significa "parágrafo", e não "preço", "pessoa" ou qualquer outra coisa). " significa "parágrafo" deste formato ou "pessoa" daquele outro?). Para eliminar a confusão de nomes ao combinar formatos, XML provê um mecanismo de espaços nominais (namespaces). XSL e RDF são bons exemplos de formatos que usam espaços nominais. O Esquema XML foi projetado para reproduzir este suporte à modularidade no nível da definição da estrutura dos documentos XML, tornando fácil combinar dois esquemas para produzir um terceiro que represente uma estrutura de documento híbrida.
3. XML é texto, mas não é para se ler
Programas que produzem planilhas, listas de endereços e outros dados estruturados freqüentemente os gravam em disco, usando um formato binário ou textual. Uma vantagem do formato textual é que ele permite às pessoas, se necessário, ver os dados sem usar o programa que os produziu; ou seja, você pode ler um formato textual com o seu editor de textos favorito. Formatos textuais também ajudam os desenvolvedores a depurar mais facilmente as aplicações. Como em HTML, os arquivos XML são arquivos-texto que as pessoas não deveriam precisar ler, mas podem fazê-lo em caso de necessidade. A semelhança diminui quando vemos que as regras para arquivos XML são rígidas. Um marcador esquecido ou um atributo sem aspas inutilizam um arquivo XML, enquanto em HTML tal prática é tolerada e com freqüência explicitamente permitida. A especificação oficial da XML proíbe as aplicações de tentar inferir a intenção do autor de um arquivo defeituoso; se um defeito é encontrado, a aplicação é obrigada a parar ali mesmo e sinalizar um erro.
4. XML é prolixo de propósito
Como XML é um formato textual e usa marcadores para delimitar os dados, os arquivos XML são quase sempre maiores que num formato binário equivalente. Isso é fruto de uma decisão consciente dos projetistas da XML. As vantagens de um formato textual são evidentes (vide item 3), e as desvantagens podem ser geralmente compensadas num outro nível. Espaço em disco já não é tão caro como costumava ser, e programas de compressão como zip e gzip podem comprimir arquivos rápida e eficientemente. Além disso, protocolos de comunicação modernos e o HTTP/1.1, o protocolo central da Web, podem comprimir os dados em trânsito, poupando banda tão eficientemente quanto um formato binário.
5. XML é uma família de tecnologias
XML 1.0 é a especificação que define o que são "marcadores" e "atributos". Além de XML 1.0, a "família XML" é um conjunto crescente de módulos que oferecem serviços úteis para levar a cabo tarefas importantes e muito requisitadas. Xlink descreve uma forma padronizada de inserir hiperlinques num arquivo XML. XPointer e XFragments são sintaxes em desenvolvimento para endereçar partes de um documento XML. Um XPointer parece com um URL, mas ao invés de apontar para documentos na Web, ele aponta para trechos de dados dentro de um arquivo XML. CSS , a linguagem de folhas de estilo, aplica-se tanto a XML como a HTML. XSL é uma linguagem avançada para expressar folhas de estilo. Ela é baseada em XSLT, uma linguagem de transformação usada para rearranjar, adicionar ou apagar marcadores e atributos. O DOM é um conjunto padrão de funções para manipular arquivos XML (e HTML) com uma linguagem de programação. As recomendações Esquema XML 1 e 2 ajudam os desenvolvedores a definir precisamente as estruturas de seus próprios formatos baseados em XML. Há vários outros módulos e ferramentas disponíveis ou em desenvolvimento. Mantenha-se informado na página de relatórios técnicos do W3C.
6. XML é novidade, mas nem tanto assim
O desenvolvimento de XML começou em 1996 e é uma Recomendação W3C desde fevereiro de 1998, o que pode levá-lo a crer que XML é uma tecnologia imatura. Na verdade, esta tecnologia não é muito recente. Antes de XML já existia SGML, desenvolvida no início da década de 80 e padrão ISO desde 1986, largamente utilizada em grandes projetos de documentação. O desenvolvimento de HTML começou em 1990. Os projetistas da XML simplesmente pegaram as melhores partes da SGML, guiados pela experiência acumulada com HTML, e produziram algo que não é em nada menos poderoso que SGML, e amplamente mais regular e simples de usar. Contudo, às vezes é difícil distinguir algumas evoluções de revoluções... E deve ser dito que, enquanto SGML é usada principalmente para documentação técnica e muito menos para outros tipos de dados, com XML ocorre exatamente o oposto.
7. XML leva a HTML à XHTML
Há uma importante aplicação XML que é um formato de documento: é a XHTML, a sucessora da HTML. XHTML tem muitos dos mesmos elementos que HTML, mas a sintaxe foi ligeiramente modificada para se conformar às regras da XML. Uma aplicação que é "baseada em XML" herda a sintaxe de XML e a restringe de certas formas (e.g., XHTML aceita " ", mas não "
8. XML é modular
XML permite que você defina um novo formato de documento combinando ou reutilizando outros formatos. Como dois formatos desenvolvidos independentemente podem ter elementos ou atributos homônimos, deve-se ter cuidado ao combinar tais formatos ("
9. XML é a base de RDF e da Web Semântica
A Framework para Descrição de Recursos (RDF) é um formato textual XML para descrever recursos e aplicações de metadados, como listas de reprodução de músicas, álbuns de fotos e bibliografias. Por exemplo, RDF permite que você identifique pessoas num álbum de fotos na Web usando informação de uma lista de contatos pessoais; assim, o seu programa de correio poderia automaticamente disparar uma mensagem para essas pessoas dizendo que suas fotos estão disponíveis na Web. Assim como HTML integrou documentos, sistemas de menu e formulários para deslanchar a Web original, RDF integra aplicações e agentes numa Rede (Web) Semântica. Assim como as pessoas precisam concordar acerca do significado das palavras que utilizam para se comunicar, os computadores também necessitam pactuar o significado dos termos para poderem se comunicarem efetivamente. A descrição formal dos termos de uma certa área (comércio ou manufatura, por exemplo) são denominadas ontologias e são uma parte vital da Web Semântica. RDF, ontologias e a representação formal do significado, de modo que os computadores possam ajudar as pessoas em seus trabalhos, são todos tópicos em discussão no grupo Semantic Web Activity.
10. XML é livre de licenças, independente de plataforma e bem suportada
Ao basear um projeto em XML, você herda um vasto e crescente conjunto de ferramentas (uma das quais pode fazer exatamente o que você precisa!) e uma comunidade de engenheiros com experiência na tecnologia. Optar por XML é semelhante a escolher SQL para bancos de dados: você ainda tem que montar sua própria base de dados e os programas e rotinas para manipulá-la, mas há muitas ferramentas disponíveis e muita gente que pode ajudá-lo. E como XML é livre de licenças, você pode criar seu próprio software com ela sem ter que pagar nada a ninguém por isso. O vasto e crescente suporte significa que você não está preso a um simples fornecedor. XML não é sempre a melhor solução, mas vale sempre a pena considerá-la.
Criado em 27/03/1999 por Bert Bos
Traduzido em 19/03/2003 por Marcelo Jaccoud Amaral.
Anúncio da HMG 1.5 (build 59) - Tradução
O setup da Harbour MiniGUI 1.5 Extended Edition (Build 59) está disponível na seguinte URL:
http://hmgextended.com/files/CONTRIB/hmg-1.5-59-setup.zip
e o da Lite build 59 (pelo FreeExtractor) na seguinte URL:
http://hmgextended.com/files/CONTRIB/hmg-1.5-59-setup-lite.zip
Este é o changelog para esse build below:2008/11/14: Build 59 (HMG 1.5 Extended Edition) Published.
* Novo: Comando SET AUTOADJUST ON OFF . Qando setado para ON, os tamanhos de controles e fontes são automaticamente ajustados no resize do form (default é OFF). Ele não opera em Windows Mdi Child e nem em Windows Virtual Dimensioned. Baseado num código emprestado da OOHG. Requesitado por Alfredo Franceschetti <franz@valgraveglia.net>.
Contribuição de Grigory Filatov <gfilatov@freemail.ru> (veja demo na pasta \samples\Basic\Color)
* Novo: Comando SET PROGRAMMATICCHANGE ON OFF . Quando setado para ON, a mudança programática do valor do controle irá executar a procedure OnChange para o Tab e Checkbox (default é ON). Requesitado por Adilson Urso <a.urso@uol.com.br>.
Contribuição de Grigory Filatov <gfilatov@freemail.ru>
* Fixado: DATEPICKER/TIMEPICKER com cláusula 'Field' tem um valor de propriedade inicial errado. Problema foi reportado por Robin D. Cain do fórum oficial da HMG.
Contribuição de Grigory Filatov <mailto:gfilatov@freemail.ru(veja demo na pasta \samples\Basic\DATA_BOUND)
* Atualizado: Limpeza de código para compatibilidade com Pelles C.
Contribuição de Eduardo Fernandes <modalsist@yahoo.com.br>
* Atualizado: HBPrinter library v.2.14 (veja fonte na pasta\source\HbPrinter):
- Fixado: GPF na C-function RR_DEVICECAPABILITIES() em alguns casos. Reportado por Jose Miguel <josemisu@yahoo.com.ar>. Baseado numa contribuição de código de V.Sadonin <sad@transbunker.ru>
- Novo: Comando GET ESCAPE STATUS TO
* Atualizado: Código fonte da library HbSQLite3 (veja na pasta\Source\HbSQLite3):
- Atualizado para usar o SQLITE3 version 3.6.5
Contribuição de Grigory Filatov <gfilatov@freemail.ru> (veja demos nas pastas \samples\Advanced\SQLITE e \samples\Advanced\SQLITE_2)
* Atualizado: Adaptação da FiveWin Class TSBrowse 7.0 em HMG:
- Fixado: Iluminação da célula na mudança de coluna pelo método GoPos(). Reportado por Marcelo Giovane da Silva <drmarcelogiovane@yahoo.com.br>
* Atualizado: Harbour Compiler 1.1.0 dev (SVN 2008-11-12 23:28):
* Atualizado: Código fonte da HbSqlDD library (veja na pasta \Source\HbSqlDD).
Contribuição de Grigory Filatov <gfilatov@freemail.ru> (pesquise pelo ReadMe.txt na pasta \harbour)
* Atualizado: HMGS-IDE v.0.7.5. Project Manager e Two-Way Visual Form Designer.
Contribuição de Walter Formigoni <walter.formigoni@uol.com.br> (pesquise pelo changelog.txt na pasta \Ide)
* Novo: 'Google Directions' exemplo baseado num serviço do Google Maps em http://maps.google.com./
Contribuição de Roberto-CTBA <conexxus@yahoo.com.br> (veja na pasta \samples\Advanced\GoogleDirections)
* Atualizado: Exemplo ButtonEx ( caption em multilinha para botões standards).
Contribuição de Jacek Kubica <kubica@wssk.wroc.pl> (veja demo3.prg na pasta \samples\Basic\Buttonex)
* Atualizado: Exemplo 'Ftp Client' baseado na TIP library.
Contribuição de Walter Formigoni <walter.formigoni@uol.com.br> (veja na pasta \samples\Advanced\FtpClient)
Esta vesão da MiniGUI é considerada estável e pronta para uso em produção.
--Saudações, Grigory Filatov[MiniGUI Team]
--Tradução: Marcelo Brigatti
quinta-feira, 13 de novembro de 2008
Isso só não basta (Minigui/(x)Harbour)
Com isso estarei repassando noções sobre: XML, .Net, FrameWork, CSS, PHP, ASP, e o que mais for de interesse no âmbito de ligação com sistemas.
Desde já convido a todos amigos e colaboradores que quiserem enviar material a respeito desses tipos de conteúdo, façam-no para: sistemasies@gmail.com, manteremos os créditos dos respectivos autores.
Estarei publicando esses materiais (destinados a uma consulta rápida, observem, não se trata de cursos, somente orientação), simultâneamente neste blog e em meu site, no tópico, minigui/xharbour
Saudações a todos, aguardem para a semana vindoura já os primeiros trabalhos.
Marcelo Brigatti
IES - Informática e Sistemas
segunda-feira, 27 de outubro de 2008
Lançamento de novo site
Temos o prazer de comunicar o lançamento de nosso novo site:
http://sistemasies.site50.net
Sintam-se convidados a conhecê-lo, mais novidades sobre o assunto em postagens futuras.
Saudações,
Marcelo Brigatti
quinta-feira, 23 de outubro de 2008
Lançamento do SysFatur v 1.0
Temos o prazer de comunicar, que a versão 1.0 do SysFatur já se encontra disponível.
Até o momento, estamos com 5 sistemas já implantados, entre novos clientes e oriundos de migração do sistema DOS, nos ramos de vestuário, autopeças, sinalização e comunicação visual.
Para saber mais detalhes sobre a aquisição do SysFatur v 1.0, favor entrar em contato pelo e-mail do blog: sistemasies@gmail.com
Para receber uma apresentação visual das telas e conteúdo do produto, solicitem também pelo e-mail acima.
Saudações,
Marcelo Brigatti
IES - Informática e Sistemas
terça-feira, 23 de setembro de 2008
sexta-feira, 19 de setembro de 2008
Anúncio da Harbour MiniGUI 1.5 Extended Edition (Build 56)
O setup do Harbour MiniGUI 1.5 Extended Edition (Build 56) está disponível na seguinte URL:
http://hmgextended.com/files/CONTRIB/hmg-1.5-56-setup.zip
e o Lite build 56 pelo FreeExtractor na seguinte URL:http://hmgextended.com/files/CONTRIB/hmg-1.5-56-setup-lite.zip
Esta versão da MiniGUI é considerada estável e pronta para uso em produção.
Este é o changelog para este build abaixo:
2008/09/09: Build 56 (HMG 1.5 Extended Edition) Published.
* Fixado: O problema com TabPage Image numa Tab com somente uma página.
Bug foi reportado por Anibal Villalobos Guillen <anibalgvillalobosg@yahoo.com>
(veja demo.prg na pasta \samples\Basic\Tab)
* Alterado: A área da window agora é auto atualizada no evento 'On Size'.
Requesitado por Ryszard Rylko <rrylko@cirow.pl>.
Contribuição de Grigory Filatov <gfilatov@freemail.ru>
* Alterado: Detecção do Windows Vista/Server 2008 para ser exatamente como determina a MS. Emprestado da distribuição do Harbour 1.0 .
Contribuição de Grigory Filatov <gfilatov@freemail.ru>
* Melhorado: O controle Tab suporta uma propriedade readonly ItemCount agora.
Requesitado por Anibal Villalobos Guillen <anibalgvillalobosg@yahoo.com>.
Contribuição de Grigory Filatov <gfilatov@freemail.ru>
(veja demo.prg na pasta \samples\Basic\Tab)
* Melhorado: O controle Frame suporta agora uma cláusula opcional INVISIBLE .
Requesitado por Anibal Villalobos Guillen <anibalgvillalobosg@yahoo.com>.
Contribuição de Grigory Filatov <gfilatov@freemail.ru>
* Melhorado: O comando COMPRESS suporta agora uma cláusula opcional PASSWORD.
Contribuição de Grigory Filatov <gfilatov@freemail.ru>
(veja demo2.prg na pasta \samples\Basic\Zip)
* Atualizado: Sincronizada a Extended HMG com a Official HMG 2.6.1-2.6.4:
- Fixado: Mudança programática do valor do controle CheckBox não executa procedure 'OnChange'.
- Fixado: Mudança programática do valor do controle Tab não executa procedure 'OnChange'.(veja demo.prg na pasta \samples\Basic\TAB)
- Fixado: Dimensões incorretas na window preview da Miniprint sob o tema Vista com 'Classic'.
- Fixado: 'Caption' propriedade não trabalha para ToolBar buttons.
(veja demo na pasta \samples\Basic\Toolbar)
* Atualizado: Código fonte da library PropSheet (veja na pasta \Source\PropSheet):
- Fixado: O Novo código interno, ajustando o trabalho da Property Sheet na faixa de manutenção das teclas OK/Apply e Cancel.
Contribuição de Janusz Pora <januszpora@onet.eu>
(veja demo na pasta \samples\Advanced\PropSheet)
* Atualizado: Harbour Compiler 1.0.1dev (SVN 2008-09-08 02:08):
* Novo: Código fonte da HbZipArc library (veja na pasta \Source\HbZipArc)
(veja demo2.prg na pasta \samples\Basic\Zip)
* Atualizado: Código fonte da HbOLE library (veja na pasta \Source\HbOLE).
Contribuição de Grigory Filatov <gfilatov@freemail.ru>
(procure pelo ReadMe.txt na pasta \harbour e WhatsNovo.txt na pasta \harbour\doc)
* Atualizado: HMGS-IDE v.0.7.1. Project Manager e Two-Way Visual Form Designer.
Contribuição de Walter Formigoni <walter.formigoni@uol.com.br>
(procure pelo changelog.txt na pasta \Ide)
* Atualizado: Código fonte da HbSQLite3 library (veja na pasta \Source\HbSQLite3):
- Atualizado para uso do SQLITE3 version 3.6.2
Contribuição de Grigory Filatov <gfilatov@freemail.ru>
(veja demos na pastas \samples\Advanced\SQLITE e \samples\Advanced\SQLITE_2)
* Novo: Exemplo 'Grid Print' componente de interface de usuário (UCI).
Contribuição de S. Rathinagiri <rathinagiri@sancharnet.in>
(veja na pasta \samples\Advanced\GridPrint)
* Atualizado: Exemplo 'GetBox Valid in Tab' para compatibilidade com a última alteração do Tab. (veja na pasta \samples\Basic\GetBoxValid)
* Atualizado: 'Safety Scan' sample. Contribuição de Grigory Filatov <gfilatov@freemail.ru>
(veja na pasta \samples\Applications\SafetyScan)
--Saudações, Grigory Filatov[MiniGUI Team]
--Traduzido por: Marcelo Brigatti
sexta-feira, 5 de setembro de 2008
Dica para atualizar após nova versão da minigui
- Instale a atualização da Minigui Extended
- Vá para \Minigui\Source
- Copie: Copy \Minigui\Include\*.* \xHarbour\Include
- Digite: MakeAllLibs /X
- Vá para \Minigui\xLib
- Copie: - Minigui.Lib Propgrid.Lib Propsheet.Lib Tsbrowse.Lib Winreport.Lib para \xHarbour\Lib
Não se estresse e seja feliz !
Marcelo
quinta-feira, 28 de agosto de 2008
Anúncio da HMG 1.5 Extended Build 55
O setup da Harbour MiniGUI 1.5 Extended Edition (Build 55) está disponível na seguinte URL:
http://hmgextended.com/files/CONTRIB/hmg-1.5-55-setup.zip
e a Lite build 55 pelo FreeExtractor na seguinte URL:
http://hmgextended.com/files/CONTRIB/hmg-1.5-55-setup-lite.zip
Esta versão da MiniGUI é considerada estável e pronta para uso em produção.
Este é o changelog para este build:
2008/08/26: Build 55 (HMG 1.5 Extended Edition) Published.
* Fixado: A Função-C GetWindowText() causava crash do programa no WinXP. Reportado por Juan Castillo Arteaga
contribuição de Grigory Filatov <gfilatov@freemail.ru>
* Alterado: As constantes da WinAPI em h_events.prg foram movidas para o header file i_winuser.ch.contribuição de Grigory Filatov <gfilatov@freemail.ru>(veja i_winuser.ch na pasta Include\)
* Alterado: As veriáveis publicas do controle ScreenSaver foram movidas para o array público _HMG_SCRSAVERDATA . contribuição de Grigory Filatov <gfilatov@freemail.ru>
* Alterado: Implementação da função CursorHand() no WinNT pois IDC_HAND não estava disponível nele. Você deve remover a observação para a constante
#define __WINNT__ em source\c_cursor.c Se você usar o Windows NT.
Baseado numa contribuição de Pierpaolo Martinello
* Melhorado: Manutenção do controle definido em Dialog através dos Events no método clássico sem definição na função DIALOGPROC. contribuição de Janusz Pora <januszpora@onet.eu>(veja o demo na pasta \samples\Basic\Dialog_2)
* Melhorado: Manutenção da propriedade Set Item para o controle ComboBoxEx em runtime:
- sintaxe da função: Setproprerty( Form, Control, 'Item', nItem, { nImage, cNewValue } )
- sintaxe pseudo-OOP: Form.ComboBoxEx.Item( nItem ) := { nImage , cNewValue }contribuição de Grigory Filatov <gfilatov@freemail.ru>
(veja demos na pasta \samples\Basic\Combo_5)
* Atualizado: Sincronizado uma Extended HMG com a Official HMG 2.5.4:
- Alterado: comportamento do controle Browse quando adicionando um novo registro e a propriedade propriedade está setada.
- Fixado: problemas no paint dos controles Tab child sob o tema Vista 'Windows Classic'.
* Atualizado: Sincronizado uma Extended HMG with com a Official HMG 2.5.5-2.5.7:
- Adicionado: 'DroppedWidth' sinonimo para a propriedade 'ListWidth'do controle ComboBox.
- Adicionado: 'OnDropDown' sinonimo para o evento 'OnListDisplay' do controle ComboBox.
- Adicionado: 'OnCloseUp' sinonimo para o evento 'OnListClose' do controle ComboBox.
(veja demo4.prg na pasta \samples\Basic\Combo_5)
- Adicionado: 'HeaderImages' sinonimo para a clásula HeaderImagedos controles Browse/Grid em altsyntax.(veja demos nas pastas \samples\Basic\Browse_6 e \samples\Basic\Grid_5)
- Melhorado: Header Images dos controles Browse/Grid controls tem um look transparente agora. (veja demo na pasta \samples\Basic\HeaderImage)
- Fixado: problemas no controle ActiveX quanto usado dentro de tabs. Reportado por Juan Rendon.(veja demos na pasta \samples\Basic\ActiveX)
- Fixado: ToolButton erro de checagem. Dropdown button deve ter uma ação associada, se não(para nenhuma ação nodropdown) o estilo 'wholedropdown' deve ser usado ao invés.
- Melhorado: atalhos do WholeDropdown ToolBar buttons abrem o menu agora ao pressionar Alt+<..> .(veja demo na pasta \samples\Basic\TOOLBAR_1)
* Atualizado: Sincronizado uma Extended HMG com a Official HMG 2.5.9-2.6.0:
- Fixado: Pressionando a tecla [Esc] no splitbox child EditBox, causava fechamento do splitbox.
- Novo: propriedade 'Multiline' para o controle Button. Se .T. , ele altera o texto para multiplas linhas quando o texto é muito longo para ser colocado numa única linha.
- Fixado: sintaxe estendida para os controles tab child (veja demo.prg na pasta \samples\Basic\TAB)
* Atualizado: A manipulação dinâmica de cores para o controle Grid foi revisada e sincronizada com a Official HMG.
as variáveis This.CellRowIndex, This.CellColIndex e This.CellValue estão disponíveis na avaliação do bloco de código de cores dinâmicas. Requesitado por Luis Vasquez <luisvasquezcl@yahoo.com>. contribuição de Grigory Filatov <gfilatov@freemail.ru>
(veja demos na pasta \samples\basic\grid_1)
* Atualizado: Adaptação da classe FiveWin TSBrowse 7.0 em HMG:
- Fixado: os erros de keychar nos métodos ::Del() e ::DeleteRow() quando o tsbrowse está vazio. Baseado numa contribuição de Antonio Carlos da Silva <antoniocarlosconsultor@yahoo.com.br>
- Fixado: manter a posição do registro no tsbrowse ao abrir um database com qualquer ponteiro de registro. contribuição de Janusz Pora <januszpora@onet.eu>
- Fixado: característica de controle da coluna vejaking da variável lvejak. Reportado por Ryszard Rylko <rrylko@cirow.pl>
- Novo: variável lNoChangeOrd evita alteração da ordem ativa no clique duplo nos headers. Emprestado da distribuição TSBrowse 8.0 . contribuição de Grigory Filatov <gfilatov@freemail.ru>
* Atualizado: Harbour Compiler 1.0.0 versão final (SVN 2008-08-13 16:35):
* Atualizado: código fonte da HbOLE(veja na pasta \Source\HbOLE);
* Atualizado: código fonte da HbODBC(veja na pasta \Source\HbODBC).
Agradecimentos ao time do projeto Harbour por este grande trabalho!
contribuição de Grigory Filatov <gfilatov@freemail.ru> (olhe o ReadMe.txt na pasta \harbour e WhatsNew.txt na pasta \harbour\doc)
* Atualizado: HMGS-IDE v.0.6.9. Project Manager e Two-Way Visual Form Designer. contribuição por Walter Formigoni <walter.formigoni@uol.com.br> (olhe ochangelog.txt na pasta \Ide)
* Atualizado: código fonte da HbSQLite3 (veja na pasta \Source\HbSQLite3):
- Atualizado para usar o SQLITE3 version 3.6.1 contribuição por Grigory Filatov <gfilatov@freemail.ru> (veja demos nas pastas \samples\Advanced\SQLITE e \samples\Advanced\SQLITE_2)
* Novo: exemplo de componente de usuário 'SysLink Unicode'. contribuição por Grigory Filatov <gfilatov@freemail.ru> (veja demo2 na pasta \samples\Basic\USER_COMPONENTS)
* Novo: exemplo de 'Uso conjunto de FreeImage e SQLite3'. Este exemplo requer a library FreeImage.Dll de http://freeimage.sourceforge.net contribuição de Vladimir Chumachenko <ChVolodymyr@yandex.ru> (veja na pasta \samples\Advanced\FreeImage)
* Atualizado: Exemplo de 'Uso de MiniZip'. contribuição de Grigory Filatov <gfilatov@freemail.ru> (veja demo na pasta \samples\Basic\Zip_3)
* Atualizado: Exemplo de 'Pop-Up Stopper'. contribuição de Grigory Filatov <gfilatov@freemail.ru> (veja na pasta \samples\Applications\POPUP_STOPPER)
* Atualizado: Os exemplos da pasta Advanced são revisados pelos seguintes comandos:
samples\CompileAllAdvanced.bat /e /s /es2
para remoção de warnings de compilação.
Sugerido porKevin Carmody <i@kevincarmody.com>. contribuição de Grigory Filatov <gfilatov@freemail.ru>
-- Saudações, Grigory Filatov[MiniGUI Team]
-- Tradução: Marcelo Brigatti
Anúncio da HMGS-IDE 0.6.9 atualizada
Os binários e fontes da HMGS-IDE 0.6.9 atualizada estão disponíveis na seguinte URL:
http://www.hmgextended.com/files/HMGS-IDE/ide.zip
Este é o changelog para esta versão por Walter Formigoni:2008-08-23: versão 0.6.9
*Fixado: para a função xtypecontrol, findimagename por Renaldo<renaldosatoshi@terra.com.br>
*Adicionado: para a função projectbrowser para editar rc files por Renaldo<renaldosatoshi@terra.com.br>
*Fixado: valor inicial do controle ipaddress em loadfmg, e no load do controle BUTTONEX por Renaldo <renaldosatoshi@terra.com.br>
*Fixado: no saveform ao salvar radio dentro da tab, salvando a propriedadefontname do controle hotkeybox, e propriedades picture/icon do controleBUTTONEX por Renaldo <renaldosatoshi@terra.com.br>
*Fixado: bug em loadfmg.prg da propriedade MAIN do form adicionado espaço para não pesquisar MAINICON, extraido "" da propriedade ICON, adicionado comprimento real do controle datepicker, adicionado load do radiogroup com array var
*Fixado: load da propriedade fontcolor do controle btntextbox eliminado extra " .
*Adicionado: no evento onchange do controle btntextbox em fillgrid.prg
*Adicionado: cláusula SET EXACT ON para prevenção na pesquisa de objetos com nomes similares como BUTTON_INC e BUTTON_INCxxx ascan retornando mesmo endereço no array e eliminando object named BUTTON_INC em savefmg.prg
*Fixado: save da propriedade ICON e MAIN MDI do form.
*Fixado: row do controle tab no form com menu com adição da função GetMenuBarHeight()*Fixado: save na propriedadey fontitalic do controle button era "CRL" o correto é "CRLF".
*Adicionado: valores iniciais para o control Grid para prevenir erro na compilação se não estão definidos WIDTHS e HEADERS .Requesitado porRenaldo <renaldosatoshi@terra.com.br>
*Alterado: módulos size/move/delete para fixar erro.
*Alterado: na função addcontrol1 para prevenir nomes duplicados do controle. Contribuição de Grigory Filatov <gfilatov@rambler.ru>
*Adicionado: atualização na adição do controle Label (observando uma atualização do backcolor no WinXP). Contribuição de Grigory Filatov<gfilatov@rambler.ru>
*Alterado: fmgs -xgridpropwin,xgridproptxt,xgridpropsli,xgridpropsli3,xgridpropsli2,
xgridpropnum,xgridpropedit,xgridpropcombo,xgridevent,preferences,form_1,controlorder,
contextbuilderprojectbrowser,objectinspector. Contribuição de Renaldo <renaldosatoshi@terra.com.br>
*Adicionado: no menu 'view': opções Project Browser,ObjectInspector,Design Form.
*Adicionado: em preferências: layout Normal/Reduced com additional form projetado por Renaldo <renaldosatoshi@terra.com.br>
--Saudações, Grigory Filatov[MiniGUI Team]
--Tradução: Marcelo Brigatti
segunda-feira, 18 de agosto de 2008
Visualizador de DBFs com CDX no xBaseSuporte
no tópico Artigos, Tutoriais, Manuais, Dicas na seguinte URL:
http://xbasesuporte.freeforums.org/visualizador-de-dbfs-com-cdx-t287.html
A URL principal do xBaseSuporte é:
http://xbasesuporte.freeforums.org
Adicionei também esta URL a lista de Links do Blog,
Saudações,
Marcelo Brigatti