sexta-feira, 14 de novembro de 2008

O QUE É XML ?

XML (eXtensible Markup Language) é uma recomendação da W3C para gerar linguagens de marcação para necessidades especiais. É um subtipo de SGML (acrônimo de Standard Generalized Markup Language, ou Linguagem Padronizada de Marcação Genérica) capaz de descrever diversos tipos de dados.

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ê?

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 ""); ela também acrescenta significado à sintaxe (XHTML reza que "

" significa "parágrafo", e não "preço", "pessoa" ou qualquer outra coisa).

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 ("

" 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.

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

Olá a Todos,

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 para detectar se o usuário imprimiu o documento (somente após modo PREVIEW) Baseado num código contribuição de Joe Fanucchi <drjoe@meditrax.com>
* 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)

Pessoal, dando continuidade ao objetivo de compartilhar conhecimentos, decidi criar uma nova seção de dicas /tutoriais do tipo O QUE É ?, PARA QUE SERVE ?, AONDE UTILIZAREI ISSO ?, com relação a algumas terminologias da área de TI que por vezes nos pegam desprevinidos.

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

Olá pessoal,

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

Olá leitores,

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

sexta-feira, 19 de setembro de 2008

Anúncio da Harbour MiniGUI 1.5 Extended Edition (Build 56)

Olá a todos,

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

Lembrete ao usar paths para o \xharbour\include e \xharbour\lib

- 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

Olá a Todos,

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

Olá a todos,

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

Pessoal, a convite do Eric Magaldi, postei o arquivo 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

quarta-feira, 13 de agosto de 2008

Visualizador de DBFs com CDX - Alterado


O link abaixo é o caminho para download do DBFIES.EXE. Trata-se de um utilitário que estou disponibilizando para aqueles que desejam visualizar um DBF com o respectivo arquivo de índice CDX já aberto.

Adicionado:
Indicador de posição na tabela
Botão para efetuar pack/reorganização de arquivo de índice
Botão para posicionar cursor no registro indicado

Características:
Permite edição dos campos.
Permite inserção de registro novo.
Permite ver a lista das TAGS, as chaves de indexação e selecioná-las.
Permite consultar a estrutura do DBF.
Contém outros utilitários como, calculadora, explorador de objetos windows, info do equipamento, info do processador...

Arquivo: dbfies.exe
DownloadLink:
http://rapidshare.com/files/138258017/dbfies.exe

Sem mais, cordialmente,

Marcelo Brigatti

quarta-feira, 6 de agosto de 2008

Anúncio de atualização da HMGS-IDE 0.6.8 OPEN SOURCE

Olá a Todos,

Os binários e fontes da HMGS-IDE 0.6.8 atualizada estão disponíves na seguinte URL:

http://www.hmgextended.com/files/HMGS-IDE/ide.zip

Abaixo segue o changelog desta versão por Walter Formigoni:2008-08-03: version 0.6.8

*Fixado: bug no saveform.prgGetbox -> Pictures devem ser inicializadas com "" ou NIL
(em todo caso não em branco) de outro modo ocorre o erro E0020.
Getbox -> Valor deve ser declarado na inicialização - 0 ou ""ou NIL
(em todo caso não em branco) de outro modo o programa finaliza.
Bug foi reportado por Arcangelo Molinaro
*Alterado: em Preferences para selecionar ou ambos para fazer
aplicações em modo console, modo gui ou modo mixed.
requesitado por Escobar
*Alterado: mpm.prg usando a função _getshortpathname() e agora compila exemplos na pasta com nomes longos.
requesitado por T.Berci
*Alterado: em mpmc.prg ordem de libs de linkagem para compilar corretamente exemplo de hiperlink.
requesitado por T.Berci
*Fixado: bug em mpmc.prg lib correta para usar em xharbour é hbzip.lib não ZIPARCHIVE.LIB .
requesitado por T.Berci
*Fixado: bug deletando controles dentro da tab, quando do saveform o controle é salvo com um controlname duplicado e o programa aborta.
bug foi reportado por Renaldo
*Fixado: bug no saveform do controle FRAME, propriedade OPAQUE era salva incorreta.
bug foi reportado por Renaldo
*Fixado: bug quando editando propriedade PICTURE dos controles BTNTEXTBOX ou controle BUTTON, se controle estava dentro da TAB então há um crash do programa. Se picture não for encontrado o valor default NIL é usado para prevenir erro.
bug foi reported by Renaldo
*Fixado: bug salvando form com controle GRID com valores default faltando propriedades ITEMS,HEADERS,WIDTHS causa crash do programa quando é compilado.
bug foi reportado por Renaldo
*Fixado: bug quando move/delete/size o controle FRAME.
bug foi reportado porRenaldo
*Fixado: bug salvando a propriedade FONTNAME do controle BTNTEXTBOX sem aspas.
*Novo: propriedade INPUTITEMS e DISPLAYITEMS adicionadas para o controle BROWSE.

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

--Traduzido por Marcelo Brigatti

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

quarta-feira, 25 de junho de 2008

Lançado o Build 53 da HMG 1.5 Extended

Olá a Todos,

O setup do (Build 53) do Harbour MiniGUI 1.5 Extended Edition está disponível no seguinte URL: http://hmgextended.com/files/CONTRIB/hmg-1.5-53-setup.zip
e o build 53 pelo FreeExtractor na seguinte URL:
http://hmgextended.com/files/CONTRIB/hmg-1.5-53-setup-lite.zip

Este release da MiniGUI é considerado estável e pronto para uso em produção.

Segue abaixo o changelog deste build:
2008/06/25: Build 53 (HMG 1.5 Extended Edition) Published.

* Fixado: O controle ComboBox control tem um valor inicial errado nacláusula ItemSource (introduzido no build 50).Reportado por Marcelo A. L. Carli <malcarli@terra.com.br>.Contribuição de Grigory Filatov <gfilatov@freemail.ru>(veja demos na pasta \samples\Basic\COMBO_2)
* Fixado: Problema com Horizontal RadioGroup na janela Virtual Dimensionada.Ele existe na versão oficial também.Reportado por Rogerio L. Momente <momente_34@yahoo.com.br>.Baseado numa contribuição de Walter Formigoni <walter.formigoni@uol.com.br>
* Fixado: Problema com cálculo da Posição Zero Position em grandes valores negativos no Graph control.Contribuição de Eladio Bravo <eladibravo@yahoo.es>
* Melhorado: Regra de sintaxe alternativa para Cláusula NOTABSTOP.Requesitado porTolvaj Bertalan <ujproghu@freemail.hu>.Contribuição de Jacek Kubica <kubica@wssk.wroc.pl>
* Mudado: A função interna And(arg1,arg2) foi trocada com a função do [x]Harbour HB_BitAnd().Contribuição de Grigory Filatov <gfilatov@freemail.ru>(veja i_pseudofunc.ch na pasta Include\)

* Atualizado: Código fonte da library PropGrid:
-Novo: Cláusula SINGLEEXPAND para expandir item quando ele está selecionado e para fechar quando se torna não selecionado.
- Novo: Propriedade item type 'userfun' para obter valor com qualquer função de usuário.
- Novo: Propriedade item type 'list', como item 'enum' mas com campo de edição e adicionando um novo valor para o combo list.
- Novo: Comando TOGGLE, EXPAND e COLLAPSE CATEGORY
- Novo: Comando ENABLE e DISABLE PROPERTYITEM
- Novo: Comando REDRAW PROPERTYITEM
- Novo: Cláusula SUBITEM no comando GET PROPERTYITEM para obter valor pelo Item type FONT
- Fixado: Código fonte na entrada de dados da área testada. Contribuição de Janusz Pora <januszpora@onet.eu>(veja Changelog.txt na pasta folder \Source\PropGrid e demo2.prg na pasta \samples\Advanced\PropGrid)

* Atualizado: HBPrinter library v.2.12 (see source in folder \source\HbPrinter):- Novo: Comando SET PREVIEW RECT MAXIMIZED.
- Novo: Comando SET USER PAPERSIZE WIDTH HEIGHT .Emprestado da HBPrinter v.3.01. Requesitado por Rene Koot <rene@plantenkennis.com>.Contribuição de Grigory Filatov <gfilatov@freemail.ru>
* Atualizado: WinReport library (veja fonte na pasta \Source\WinReport).Contribuição de Pierpaolo Martinello (veja demo na pasta \samples\Advanced\REPORT_INTERPRETER e help em WinReport.chm na pasta \Doc)
* Atualizado: Compilador Harbour RC1 build (SVN 2008-06-24 07:00):
* Atualizado: Código fonte da HbODBC library (veja na pasta \Source\HbODBC);
* Atualizado: Código fonte da HbOLE library (veja na pasta \Source\HbOLE);
* Atualizado: Código fonte da HbSQLite3 library (veja na pasta \Source\HbSQLite3);
* Atualizado: Código fonte da MySQL library (veja na pasta \Source\MySQL).Contribuição de Grigory Filatov <gfilatov@freemail.ru>(procure por ReadMe.txt na pasta \harbour e WhatsNovo.txt na pasta \harbour\doc)

* Atualizado: HMGS-IDE v.0.6.7. 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 da SQLITE3 version 3.5.9Contribuição de Grigory Filatov <gfilatov@freemail.ru>(veja demos nas pastas \samples\Advanced\SQLITE e \samples\Advanced\SQLITE_2)
* Novo: Exemplo 'BrowseForFolder function'. Contribuição de Grigory Filatov <gfilatov@freemail.ru>(veja na pasta \samples\Advanced\BrowseForFolder)
* Novo: Exemplo 'Property Grid Creator'. Contribuição de Janusz Pora <januszpora@onet.eu>(veja na pasta \samples\Advanced\PgCreator)
* Novo: Exemplo 'Charts ADO'. Contribuição de Grigory Filatov <gfilatov@freemail.ru>(veja na pasta \samples\Basic\Charts)
* Novo: Exemplo 'Contactos ADO'. Baseado numa contribuição de MigSoft <fugaz_cl@yahoo.es>(veja na pasta \samples\Basic\CONTACTOS_3)
* Atualizado: Exemplo 'Contactos'. Contribuição de Grigory Filatov <gfilatov@freemail.ru>(veja na pasta \samples\Basic\CONTACTOS)
* Atualizado: Exemplo MsgArray. Contribuição de Grigory Filatov <gfilatov@freemail.ru>(veja na pasta \samples\Basic\MsgArray)
* Atualizado: Exemplo MsgEdit. Contribuição de Grigory Filatov <gfilatov@freemail.ru>Baseado no código Contribuição de Bingen Ugaldebere para Xailer.(veja na pasta \samples\Basic\MsgEdit)
* Atualizado: Exemplo 'Multi Instance'. Contribuição de Grigory Filatov <gfilatov@freemail.ru>(veja na pasta \samples\Basic\MULTI_INSTANCE)
* Atualizado: Exemplo 'Browse scopes'. Contribuição de Grigory Filatov <gfilatov@freemail.ru>(veja na pasta \samples\Basic\Browse_4)
* Atualizado: Exemplo 'Display Mode'. Contribuição de Grigory Filatov <gfilatov@freemail.ru>(veja na pasta \samples\Advanced\DisplayMode)
* Atualizado: Exemplo 'FreeImage Viewer'. Contribuição de Grigory Filatov <gfilatov@freemail.ru>Para este exemplo é requerida a library FreeImage.Dll de http://freeimage.sourceforge.net(veja na pasta \samples\Advanced\Freeview)
* Atualizado: Exemplo 'Transparent Form'. Contribuição de Grigory Filatov <gfilatov@freemail.ru>(vejam demos na pasta \samples\Advanced\Transparency)
* Atualizado: Exemplo Multilingue 'MiniGUI Biorhythms' version 1.0.2. Contribuição de Christian T. Kurowski <xharbour@wp.pl>
+ Atualizado: para compatibilidade com xHarbour.Contribuição de Grigory Filatov <gfilatov@freemail.ru>(veja na pasta \samples\Applications\Biorhythm)
* Atualizado: Exemplo MiniLabel. Contribuição de Pierpaolo Martinello (veja demo na pasta \samples\Advanced\MiniLabel)

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

- Traduzido por: Marcelo Brigatti

sexta-feira, 20 de junho de 2008

Anúncio - HMGS-IDE 0.6.7 OPEN SOURCE atualizada - Em Português

Olá a todos,

Os binários e fontes da HMGS-IDE 0.6.7 estão disponíveis na seguinte URL:http://www.hmgextended.com/files/HMGS-IDE/ide.zip

Este é o changelog desta versão por Walter Formigoni:2008-06-19: version 0.6.7

*Fixado: bug ao excluir frame, foco estava indo para outro controle.
*Fixado: Controle não pegava foco e não mostrava propriedades no inspetor de objetos quando ativado pelo QAC, somente depois de adicionar novo controle. Bug foi reportado por Bruno Luciani . Bug foi introduzido na versão 0.5.5
*Fixado: bug na ordem das propriedades ACTION/TOOLTIP do controle TOOLBAR. Bug foi reportado por Marcelo A. L. Carli malcarli@terra.com.br
*Fixed: bug não selecionava o frame correto no form
*Fixed: bug no tamanho do controle COMBOBOX.
*Fixed: bug no saveform.prg da propriedade ITEMSORCE do controle COMBOBOXEX.
*Fixed: bug no saveform.prg da propriedade IMAGELIST do controle COMBOBOXEX. Bug foi reportado por Arcangelo Molinaro arcangelo.molinaro@fastwebnet.it

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

-Traduzido por: Marcelo Brigatti

quarta-feira, 4 de junho de 2008

Uso do ActiveX com Minigui

Integrando Google Maps com Sistema:

Transparência de Tela com Minigui


Veja um exemplo de como fica:


HMGS-IDE 0.6.6.1 - Atualizada

Olá a Todos,

Os fontes e binários da HMGS-IDE 0.6.6.1 atualizada estão disponíveis na seguinte URL:http://www.hmgextended.com/files/HMGS-IDE/ide.zip

Este é o changelog para esta versão:2008-06-04: version 0.6.6.1

*Fixado : bug ao salvar formulário das propriedades DATE/NUMERIC do controle TEXTBOX. Este Bug foi introduzido na versão 0.6.6

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

Traduzido por: Marcelo Brigatti

sábado, 31 de maio de 2008

A HMGS-IDE 0.6.6 atualizada está disponível

Olá a todos,

Os fontes e binários da HMGS-IDE 0.6.6 atualizada estão disponíveis na seguinte URL: http://www.hmgextended.com/files/HMGS-IDE/ide.zip

Este é o changelog desta versão por Walter Formigoni:2008-05-30: version 0.6.6

*Fixado : bug ao salvar o form das propriedades UPPERCASE/LOWERCASE do controle TEXTBOX. Bug foi reportado por Bruno bruno.luciani@gmail.com
*Adicionado : suporte para colocar nome do campo na propriedade ITEMSOURCE do controle COMBOBOX. Requesitado por Marcelo A. L. Carlimalcarli@terra.com.br
*Adicionado: suporte para colocar nome de variável privada na propriedade ITEMS do controle COMBOBOX. Requesitado por Marcelo A. L. Carlimailto:Carlimalcarli@terra.com.br

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

Traduzido por: Marcelo Brigatti

quarta-feira, 28 de maio de 2008

Minigui - Como começar - em Português

MINIGUI - Como Começar - Links para Downloads

Requirementos:

Para instalar e usar a MiniGUI Extended, você precisará:
- Do compilador (The Borland BCC compiler (version 5.5.1) )
- Dos binários (executável) do Harbour (ou xHarbour)
- Do código fonte e binários da MiniGUI extended

Instalação:
1. Faça o Download do Borland BCC free (grátis) de:
http://www.hmgextended.com/files/MISC/FreeCommandLineTools.exe
e instale na pasta: C:\BORLAND\BCC55

NOTA: Se você instalar este compilador (e Harbour e MiniGUI) em outro drive, veja o Passo #8 abaixo.

2. Edite (ou crie) C:\BORLAND\BCC55\Bin\bcc32.cfg e inclua as seguintes linhas:
-I"c:\Borland\Bcc55\include"-L"c:\Borland\Bcc55\lib;c:\Borland\Bcc55\lib\psdk"

NOTA PARA USUÁRIOS DO xHARBOUR: Se você está instalando para xHarbour, você deve ao invés incluir as seguintes linhas:

-I"c:\Borland\Bcc55\include;c:\xharbour\include"
-L"c:\Borland\Bcc55\lib;c:\Borland\Bcc55\lib\psdk;c:\xharbour\lib"

3. Edite (ou crie) C:\BORLAND\BCC55\Bin\ilink32.cfg e inclua as seguintes linhas:

-L"c:\Borland\Bcc55\lib;c:\Borland\Bcc55\lib\psdk"

NOTA PARA USUÁRIOS DO xHARBOUR: Se você está instalando para xHarbour, você deve ao invés incluir as seguintes linhas:

-L"c:\Borland\Bcc55\lib;c:\Borland\Bcc55\lib\psdk;c:\xharbour\lib"

4. Faça o Download dos binários do compilador Harbour (ou xHarbour) (Integrated Build) de:
http://www.hmgextended.com/files/HARBOUR
ou
http://www.hmgextended.com/files/xHARBOUR
e instale na pasta C:\HARBOUR (ou C:\xHARBOUR) seguindo as diretivas do Setup Wizard.

NOTA: Existem significantes diferenças entre os binários do Harbour e xHarbour !
JF: A pasta HARBOUR contêm 3 arquivos: "Build 47", "Devel Build 1.1", e "Devel Build 1.1-1". A pasta xHARBOUR contêm 6 arquivos (Grigory's build, e compilação Lasse's, para as versões 0.99.60 e 0.99.70, mais um arquivo para cada 1.0.0 Beta e 1.1.0 Beta). Do que advêm a pergunta de qual instalar?
JF: Eu acredito que deveria ser de muito auxílio incluir um sumário de alguém que é familiar com Harbour e xHarbour, descrevendo as vantagens/desvantagens de cada plataforma para os desenvolvedores de HMGx.

5. Faça o Download dos (Fontes e Binários) da MiniGUI Extended de:
http://www.hmgextended.com/files/CONTRIB
(procure por aquivos tais como hmg-XX-setup.zip, onde XX é o número da versão).

NOTA: O conteúdos dos arquivos ZIP não podem ser extraídos usando WinZip. Você deve usar outro extrator de ZIP tal como WinRAR (http://www.rarlab.com) ou 7Zip (http://www.7-zip.org)

6. Clique em hmg-XX-setup.exe para instalar MiniGUI na pasta C:\MINIGUI seguindo as diretivas do Setup Wizard.

7. Faça o Download do arquivo:
http://tech.groups.yahoo.com/group/harbourminigui/files/CONTRIB/MakeBatch.zip
e descompacte (unzip) o arquivo batch "MakeLib" atualizado em in C:\MINIGUI

8. Se você instalou os arquivos acima em outro drive, mude todas as referencias para c:\ em:
BORLAND\BCC55\Bin\*.cfg MINIGUI\SOURCE\*.bat MINIGUI\SAMPLES\*.bat

9. Se você esta usando xHarbour, adicione a seguinte linha no AUTOEXEC.NT:

SET MG_CMP=XHARBOUR

10. Clique em \MINIGUI\SOURCE\MakeAllLibs.bat para gerar todas as libraries na pasta \MINIGUI\SOURCE e subpastas. Isto inclui as libraries do Harbour e da MiniGUI.

NOTA PARA USUÁRIOS DO xHARBOUR: Este arquivo batch cria as seguintes libraries em \xHARBOUR\lib (estes estavam anteriormente em \MINIGUI\xlib):ADORDD (na ordem para criar esta library, você deve copiar \MINIGUI\SOURCE\adordd\adordd.ch para a pasta \xHARBOUR\include)
CALLDLL
DLL
HBCOMM
HBPRINTER
HBSQLLITE3
HBXML
MINIPRINT
SHELL32
SOCKETT
MSAGENT

NOTA PARA USUÁRIOS DO xHARBOUR: Se você está usando o xHarbour, as seguintes libraries NÃO PODEM ser criadas:
JF: Esta lista deve ser completada

HBOLE.LIB: Esta library não é necessária com xHarbour
JF: Consideração sobre HBCOMM: Como em 8-01-2008 Lasse Holm reportou "retenham os antigos arquivos make_b32.bat e hbcomm.bc, Eu entendo que o Grigory irá fazer uma pequena modificação para eles, mas como estão agora os antigos funcionam"

NOTA PARA USUÁRIOS DO xHARBOUR: Arquivos de instalação para usuários que desejem usar xHarbour também estão disponíveis no Finnish xHarbour portal mantido por Lasse Holm:
http://www.the-holms.org/xharbour
Se você fizer o download dos arquivos de instalação do Finnish site, você deve ler as descrições dos arquivos para certificar-se que fez o download da versão da HMGx que corresponde a versão do xHarbour que você está usando.

11. Você pode encontrar exemplos de introdução ao trabalho com código MiniGUI em:
\MINIGUI\SAMPLES\BASIC \MINIGUI\SAMPLES\ADVANCED \MINIGUI\SAMPLES\APPLICATIONS

Clique \MINIGUI\SAMPLES\CompileAll.bat para gerar os arquivos de exemplo em MiniGUI.

NOTA PARA USUÁRIOS DO xHARBOUR: Se você está usando xHarbour, você deve mudar as referências de ziparchive.lib em \MINIGUI\BATCH\Compile.bat para hbzip.lib

NOTA PARA USUÁRIOS DO xHARBOUR: Quando gerar algum dos exemplos, usuários do xHarbour irão receber mensagens de erro se referindo a função faltante HB_FUN_CALLDLL. Este erro pode ser corrigido modificando o arquivo \MINIGUI\BATCH\Compile.bat. Sobre o label :XRSPREST insira a seguinte linha, antes da linha contendo libmisc.lib
echo %MV_HRB%\lib\dll.lib + >> _temp.rsp

NOTA PARA USUÁRIOS DO xHARBOUR: Se você não puder encontrar a DLL.LIB em \xHARBOUR\lib, copie esta library de: \MINIGUI\Lib or \MINIGUI\xlib

NOTA PARA USUÁRIOS DO xHARBOUR: O arquivo \MINIGUI\BATCH\Compile.bat contêm diferenças sobre os labels :HRSPREST e :XRSPREST. A diferença está aonde HBPRINTER.LIB, MINIPRINT.LIB, e SOCKET.LIB são esperadas para serem encontradas (sobre um label, elas são esperadas em \xHARBOUR\lib, e sobre o outro, elas são esperadas em \MINIGUI\Lib ou \MINIGUI\xlib.
JF: Como em 7-01-2008 Kevin Carmody está pesquisando sobre esta diferença.

Exemplos adicionais e arquivos de ajuda podem ser encontrados em:

http://groups.yahoo.com/group/harbourminigui/files/
http://www.hmgextended.com/files/

Licença MiniGUI:

Harbour MiniGUI (e MiniGUI Extended) tem a mesma licença como o projeto Harbour. Assim se você linkar a library Harbour Minigui com outros arquivos para produzir um executável, isto não fará com que o executável resultante seja coberto pela GNU General Public License. Seu uso daquele executável não está de maneira alguma restrito a linkagem do código da library Harbour Minigui.

Traduzido por: Marcelo Brigatti

Dica - Set Relation

Para quem tem dúvidas no Set Relation segue aqui uma dica:

Supondo uma tabela de contas a receber onde queremos relacionar cada título com seu respectivo sacado (por CPF) na tabela de clientes (a qual deverá estar indexada e com a ordem setada para CPF) e com o banco (por banco e agência) na tabela de custódias (a qual deverá estar indexada e com a ordem setada para Banco+Agencia). Veja também que a ordem setada na tabela de contas a receber não tem importância, pois o relacionamento se dá através do conteúdo de seus campos.

DBSelectArea( 1 )
Use ArqReceb Shared Alias Receb
Set Index To ArqReceb
DBSelectArea( 2 )
Use ArqClien Shared Alias Clien
Set Index To ArqClien
DBSelectArea( 3 )
Use ArqTbage Shared Alias Tbage
Set Index To ArqTbage
....

// setando a ordem selecionada (CPF)
Clien->( DBSetorder( 1 ) )
// setando a ordem selecionada (Banco+Agencia)
Tbage->( DBSetorder( 1 ) )
// este aqui pode estar em qualquer ordem
Receb->( DBSetorder( 2 ) )
// Limpa qualquer relacionamento anterior
Receb->( DBClearRel() )
// Criando os relacionamentos
Receb->( DBSetRelation( "Tbage", ;
{ Receb->Bancus + Receb->Agecus }, ;
"Receb->Bancus + Receb->Agecus" ) )

Receb->( DBSetRelation( "Clien", ;
{ SubStr( Receb->Cgccpf, 1, 11) }, ;
"SubStr( Receb->Cgccpf, 1, 11 )" ) )
// Ativando os relacionamentos
Receb->( DBGoTop() )

e pronto relacionamentos criados.

segunda-feira, 26 de maio de 2008

Minigui 1.5 Build 52 - Changelog em Português

Olá a todos,

O setup de instalação da Harbour MiniGUI 1.5 Extended Edition (Build 52) está disponível na seguine URL:
http://hmgextended.com/files/CONTRIB/hmg-1.5-52-setup.zip

e a versão Lite build 52 pelo FreeExtractor no seguinte URL: http://hmgextended.com/files/CONTRIB/hmg-1.5-52-setup-lite.zip

Este é o log das mudanças para esta versão:
2008/05/26: Build 52 (HMG 1.5 Extended Edition) Published.

* Fixado: O erro no setfocus do evento ON ENTER event com Navigation Extended no controle BUTTONEX. Reportado por Vianei Moreira de Lemos Contribuição de Grigory Filatov gfilatov@freemail.ru

* Alterado: As variáveis públicas do controle TSBrowse foram movidas para a matriz _HMG_SYSDATA array. Não há necessidade da declaração das seguintes variáveis no início de seu programa:
- _HMG_ActiveTBrowseName := ""
- _HMG_ActiveTBrowseHandle := 0
- _HMG_BeginTBrowseActive := .F.
Contribuição de Grigory Filatov gfilatov@freemail.ru

* Atualização: Código fonte da library PropGrid :
- Novo: Cláusula SUBITEM do comando GET PROPERTYITEM para obter tipo do item SIZE
- Novo: Comando ADD CATEGORY - para criar um novo tipo de item CATEGORY
- Fixado: Comando GET PROPERTYITEM agora retorna valores corettos para os tipos de itens: COLOR, ARRAY, CHECK e SIZE Contribuição de Janusz Pora januszpora@onet.eu

* Atualização: Library WinReport:
(veja código fonte na pasta \Source\WinReport). Contribuição de Pierpaolo Martinello (veja demo na pasta \samples\Advanced\REPORT_INTERPRETER e help em WinReport.chm na pasta \Doc)

* Atualização: Library MiniPrint:
- Novo: Nomes de recursos (resource) são dfinidos como constantes (veja em Source\MiniPrint\hp_images.ch)
- Alterado: Função GetFolder() foi substituída por PutFile() ao salvar páginas. Baseado em uma contribuição de Ivanil Marcelino ivanilm@terra.com.br.

* Atualização: Código fonte da Library Socket por Matteo Baccan baccan@infomedia.it:
- Fixado: Quando o arquivo binário anexo (atachado) foi finalizado com o caractere asc(26), este caracter ficava faltando após decodificação da mensagem (mail) recebido. Problema foi reportado por Jaroslav Janik jaroslav.janik@siemens.com (veja tsmtp.prg na pasta \Source\Socket)

* Atualização: Adaptação da Classe FiveWin Class TSBrowse 7.0 em HMG:
- Fixado: Problema com variável lDrawFooters no método LButtonDown. Baseado em uma contribuição de Ivanil Marcelino ivanilm@terra.com.br.
- Fixado: Problema com pesquisa incremental de valores em colunas Numericas.
- Fixado: Problema com o processamento do bloco PrevEdit no modo append para matrizes. Reportado por Vianei Moreira de Lemos cpd@colegioabc.com.br Contribuição de Grigory Filatov gfilatov@freemail.ru

* Atualização: Harbour Compiler Devel build (SVN 2008-05-22 19:00). Contribuição de Grigory Filatov (veja em 'Harbour Changelog.txt' e ReadMe.txt na pasta \harbour)

* Atualização: HMGS-IDE v.0.6.5 . Project Manager e Two-Way Visual Form Designer. Contribuição de Walter Formigoni walter.formigoni@uol.com.br (veja o changelog.txt na pasta \Ide)

* Atualização: Código fnte da HbSQLite3 (veja na pasta \Source\HbSQLite3):
- atualizado para usar SQLITE3 version 3.5.8 Contribuição de Grigory Filatov (veja demos nas pastas \samples\Advanced\SQLITE e \samples\Advanced\SQLITE_2)

* Atualização: MPMC utility typo para linkagem (linking) da library HbOle. Contribuição de Grigory Filatov (veja em \Utils\MPMC)

* Novo: 'Monitor Tester' exemplo. Contribuição de Grigory Filatov (veja na pasta \samples\Applications\MonitorTester)

* Atualizado: 'MiniGUI Biorhythms' exemplo multilingual. Contribuição de Christian T. Kurowski (veja na pasta \samples\Applications\Biorhythm)

Esta versão da MiniGUI é considerada estável e pronta para uso em produção.

ATENÇÃO. Se voce tem usado o TSBrowse em seus programas, voce *deve* remover/comentar as seguintes desnecessárias strings no topo de seus programas:
/*
Public _HMG_ActiveTBrowseName := ""
Public _HMG_ActiveTBrowseHandle := 0
Public _HMG_BeginTBrowseActive := .F.
*/

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

--Tradução: (Marcelo Brigatti)

segunda-feira, 19 de maio de 2008

Métodos da Classe TSBrowse (em português)


Segue abaixo a lista de métodos da classe TSBrowse traduzidos do .CHM

Method New() Construtor do código fonte da Classe
Parameters: nRow, nCol, nWidth, nHeigth, bLine, aHeaders, aColSizes, oWnd, cField, uVal1, uVal2, bChange, bLDblClick, bRClick, oFont, oCursor, aColors, cMsg, lUpdate, cAlias, lPixel, bWhen, lDesign, bValid, lCellBrw, nStyle, bLClick, aActions

Method ReDefine() Construtor dos recursos da Classe
Parameters: nId, bLine, oDlg, aHeaders, aColSizes, cField, uVal1, uVal2, bChange, bLDblClick, bRClick, oFont, oCursor, nClrFore, nClrBack, cMsg, lUpdate, cAlias, bWhen, bValid, lCellBrw, bLClick

Métodos:

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 ..

BeginPaint() Uso interno, Chamado a partir do método Display() .

BugUp() Chama o método UpStable().

ChangeFont( oFont, nColumn, nLevel )

DbSkipper( nToSkip ) Usado internamente; controla o ponteiro do registro do database.

Default() Uso interno; ações de inicialização do Browser.

DeleteRow()

DelColumn( nPos )

Destroy() Uso interno; Destrói o controle Browse.

Display() Uso interno- Exibe o Browse na primeira vez.

DrawLine( nRow ) Pinta a linha ativa ou nRow.

DrawSelect() Pinta o cursor na linha ativa.

DrawHeaders() Desenha Headers, Footers, e Super-Headers.

DrawFooters() Desenha o Footers.

DrawSuper() Desenha os Super-Headers.

EndPaint() Uso interno, Chamado a partir do método Display().

Exchange( nCol1, nCol2 ) Troca a posição das colunas nCol1 e nCol2.

GetColSizes() Retorna uma matriz contendo as larguras das colunas em pixels.

GetColumn( nCol ) Retorna uma referencia ao objeto TSColumn correspondente a nCol.

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.

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.

GoEnd() Posiciona o cursor na última coluna visível na tela.

GoHome() Posiciona o cursor na primeira coluna visível na tela.

GoLeft() Move o cursor uma coluna para a esquerda.

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.

GoPos( nNewRow, nNewCol ) Move o cursor para a linha definida em nNewRow e coluna definida em nNewCol.

GoRight() Move o cursor uma coluna para a direita.

GotFocus() 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.

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 ).

GoUp() Posiciona o cursor uma linha acima, movendo o ponteiro para o registro anterior do database, ou para elemento anterior de outros objetos.

HiliteCell( nCol ) Posiciona o cursor na coluna definida em nCol. Se usado quando da ativação do Browse, será exibido com o cursor nesta coluna.

InsColumn( nPos, oColumn ) Insere uma coluna (object TSColumn oColumn ) na posição definida em nPos.

KeyChar( nKey, nFlags ) Uso interno. Executa ações dependendo da tecla pressionada nKey. Avalia o código de bloco bKeyChar.

KeyDown( nKey, nFlags ) Uso interno. - Similar a KeyChar(). Avalia o código de bloco bKeyDown.

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.

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.

lEditCol( nCol, uVar, cPicture, bValid, nClrFore, nClrBack, cMsg, cError, bWhen, lSpinner, bUp, bDown, bMin, bMax ) 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.

lIgnoreKey( nKey, nFlags )

LoadFields( lEditable )

Look3D( lOnOff, nColumn, nLevel, lPhantom )

LostFocus( hCtlFocus ) Uso interno. É ativado quando o Browse perde o foco. Avalia o código de bloco bLostFocus.

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.

MoveColumn( nColPos, nNewPos ) Muda a posição da coluna dentro do Browse, se a variável ::lMoveCols for .T. .

nLogicPos() Retorna a posição lógica para o índice ativo.

nRowCount() Uso interno.- Conta as linhas exibíveis do Browse.

PageUp( ) Move o cursor e o ponteiro de registros uma página acima. É executado quando é pressionada a tecla PgUp.

PageDown( ) Move o cursor e o ponteiro de registros uma página abaixo. É executado quando é pressionada a tecla PgDn.

Paint() Uso interno.- Pinta o Browse. Chamado a partir do método Display().

PanHome() Move o cursor para a primeita coluna da linha corrente.É nativado quando pressionadas as teclas Shift+LeftArrow.

PanEnd() Move o cursor para a última coluna da linha corrente. É ativado quando pressionadas as teclas Shift+RightArrow.

PanLeft() Move o cursor para a primeira coluna visível da linha corrente. É ativado quando a tecla Home é pressionada.

PanRight() Move o cursor para a última coluna visível da linha corrente. É ativado quando a tecla End é pressionada.

RButtonDown( nRowPix, nColPix, nKeyFlags ) 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.

Report( cTitle, aCols, lPreview, lMultiple, lLandscape, lFromPos )

Reset() Move o cursor e o ponteiro de registro para o topo do Browse e executa o método
Refresh(.T.)

ResetBarPos( lInit ) Uso interno.- Define blocos de navegação do browse e ajusta a posição das barras de rolagem (scrolling bars).

ResetSeek() Restaura o valor da variável cSeek para nulo (Null), assim uma nova pesquisa incremental pode ser executada.

Seek( nKey ) Este método faz todo o trabalho da pesquisa incremental.

Set3DText( lOnOff, lRaised, nColumn, nLevel, nClrLight, nClrShadow )

SetAlign( nColumn, nLevel, nAlign )

SetBtnGet( nCol, cResName, bAction, nBmpWidth )

SetDeleteMode( lOnOff, lConfirm, bDelete )

SetAppendMode( lMode ) Ativa a inserção automática após o ultimo registro (Append).

SetArray( aArray )

SetColor( xColor1, xColor2, nColumn )

SetContext( oCtx )

SetColSize( nCol, nWidth )

SetData( nColumn, bData, aList )

SetFilter( cField, uVal1, uVal2 )

SetIndexCols( aCols )

SetoDBF( oDbf )

SetOrder( nColumn )

SetSelectMode( lOnOff, bSelected )

SetSpinner( nColumn, lOnOff, bUp, bDown, bMin, bMax )

SetTree( oTree )

SetTxtFile( oTxtFile, cTitle, lOemToAnsi )

ShowSizes()

Skip( n )

SwitchCols( nCol1, nCol2 )

SyncChild( aoChildBrw, abAction )

UpStable()

Proper( cText ) Converte o texto cText em iniciais maiúsculas.

quinta-feira, 24 de abril de 2008

xHarbour - Como começar



Para começar a trabalhar com o xHarbour primeiramente é necessário obter o programa e como aqueles que já procuraram na internet, verão que há muita informação desencontrada e poucos roteiros que realmente dão resultados.

Então coloco aqui minhas experiências, você pode obter o xharbour de três maneiras distintas:

-------------------------------------------------
1ª - Adquirir o produto em:

http://www.xharbour.com.br/ (Esta é a versão comercial do produto)
-------------------------------------------------
2ª - Baixar os Binários compilados de:


(versão estável compilada para windows)
e as Libs daqui:

Descompacte os binários em C:\ e mantenha a estrutura de pastas do arquivo compactado, as LIBs descompacte em C:\XHARBOUR\LIB.
-------------------------------------------------
3ª - Baixar os fontes do CVS e compilar:
(se escolher esse método, siga o roteiro abaixo)

1 - Obter o TORTOISE
- (é o modo para baixar os fontes do CVS) pegue a versão 1.8.25 do link:
http://www.tortoisecvs.org/download.shtml
nesta página clique na linha onde está grifado como abaixo:

Stable (for deployment) - TortoiseCVS-1.8.25.exe - 5.67 MB - 11th February2006

Você será redirecionado para uma página de mirror.
Escolha um qualquer e clique no link Dowload da coluna Download.
Em seguida instale. (Não mude nada na instalação).
Reinicie o Computador.
-------------------------------------------------
2 - Obter o BISON
- (é o parser (analisador gramatical), usado para construir ocompilador xharbour ) pegue a versão 2.1 - completa menos os fontes, no link:

nesta página clique na linha onde está grifado como abaixo:
Complete package, except sources
Setup 3008634 19 November 2005 17974bac507f85ab4072fb5ce88d640d

Você será redirecionado para uma página de mirror.
Escolha um qualquer e clique no link Dowload da coluna DownloadInstale
(Mude o diretório/pasta de instalação para C:\BISON).
Reinicie ocomputador.
-------------------------------------------------
3 - Obter o BCC55
- (é o compilador de linha de comando Free da Borland para windows)
pegue no link:


Instale-o em C:\BCC55 (mude a pasta durante a instalação)
Vá para a pasta: C:\BCC55\BIN e crie os seguintes arquivos:

BCC32.CFG, ILINK.CFG, ILINK32.CFG contendo:

BCC32.CFG
-Cole as duas linhas abaixo dentro deste arquivo.
-Ic:\xharbour\bcc55\include;c:\xharbour\include
-Lc:\xharbour\bcc55\lib;c:\xharbour\lib

ILINK.CFG
-Cole a linha abaixo dentro deste arquivo.
-Lc:\xharbour\bcc55\lib;c:\harbour\lib

ILINK32.CFG
-Cole a linha abaixo dentro deste arquivo.
-Lc:\xharbour\bcc55\lib;c:\xharbour\lib

-------------------------------------------------
4 - Obter o TASM32
- (Turbo Assembler da Borland) pegue no link:


Descompacte-o na pasta C:\BCC55\BIN

-------------------------------------------------
5 - Obter o UPX
- (é o compactador do executável gerado pelo xHarbour)
- pegue nolink:

nesta página clique na linha onde está grifado como abaixo:

upx125w.zip Win32 console version 154 kB

Descompacte-o na pasta C:\BCC55\BIN

-------------------------------------------------
6 - Obter o DJGPP
- (é um sistema para desenvolvimento 32 bits para DOS)
- "ATENÇÃO "
- Este aqui é para quem precisar gerar executáveis para a plataforma MS-DOS 32bits)
nesta página clique na linha onde está grifado como abaixo:
djdev203.zip 11-Aug-2002 01:20 1.5M
Crie uma pasta: C:\DJGPP e descompacte o arquivo acima dentro dela
(mantenha a estrutura de pastas original)

-------------------------------------------------
Pronto instalou tudo:

Agora baixe os fontes do xharbour pelo CVS.
(Para isso preferencialmente,crie uma pasta no seu HD. Ex: C:\CVS\XHARBOURFONTS).
Abra essa pasta peloWindows Explorer, em seguida clique no menu Arquivo em:

CVS Obter Módulo...
Vai abrir uma nova janela, nesta janela preencha os campos:

CVSROOT::pserver:anonymous@cvs.sourceforge.net:/cvsroot/xharbour
Protocolo: Servidor de senha (:pserver:) -> escolha na lista que já vem pronta
Servidor: cvs.sourceforge.net
Pasta do Repositório: /cvsroot/xharbour
Nome do Usuário: anonymous
Módulo: xharbour

Clique em ok.
Aguarde até que apareça uma mensagem informando que foi finalizado com sucesso

-------------------------------------------------
Se tudo correu bem até aqui você deve agora ter uma pasta \xharbour em:

C:\CVS\XHARBOURFONTS

Copie ou Mova esta pasta para C:\
Se já existir uma pasta com esse nome (C:\xharbour),
renomeie ou delete-a antes.

-------------------------------------------------
Volte ao Internet Explorer e obtenha o arquivo:

BCC640.LNK do link:


Descompacte esse arquivo em C:\xharbour\lib