Página 1 de 3

Começando com Harbour + HMG

Enviado: 13 Fev 2015 18:59
por Clipper
Vou aqui postar minhas considerações sobre meu começo com Harbour + Minigui.

Instalação : Sem problemas, simples e rápida, logo que terminou abri um projeto da pasta samples e compilou/rodou tranquilo.

1º Projeto : Comecei logo com uma das telas de entrada de dados que vou precisar no meu sistema. Como não conheço bem o uso de IDE´s, fui apertando, montando e testando, basicamente é simples, tenho apenas que aprender o que cada coisa faz, montei uma tela com entrada de dados, labels, textboxs, radiogroup e mais algumas coisinhas, esse arrastar e soltar foi simples e compreendi a maioria das propriedades, não entendi como funcionam os eventos. Abri o formulário criado e com o manual da HMG percebi que tudo podia ser feita mais rapidamente na mão (a IDE não permite copiar e colar, fazendo na mão posso), então praticamente rescrevi tudo na mão e foi rápido. A tela apesar de não ter ficado com uma aparência profissional, ficou bem funcional e simples como eu queria (depois eu vou me dedicar a aparência).

Impressão final : Me arrependo amargamente de não ter metido a mão na massa a mais tempo, o bicho de feio só tem a cara, mas depois que você conhece ele não assusta mais.

Aqui o meu projeto, se alguém puder dar uma olhada e se quiser dar umas dicas e ou efetuar algumas criticas, todas serão bem-vindas.
www.phrep.com.br/marcelo.zip

Bem, caros colegas, por enquanto é só.

Agradeço desde já a atenção de todos.

Até logo.

Marcelo

Começando com Harbour + HMG

Enviado: 14 Fev 2015 21:48
por Pablo César
Oi Marcelo, eu já dei o parabéns de como você está evoluindo tão rapidamente (não exagero e nem muito menos subestimando a sua capacidade). Mas eu acho que levei mais tempo em entender... rs
Clipper escreveu:.. o bicho de feio só tem a cara, mas depois que você conhece ele não assusta mais
Na minha opinião, trata-se que você teve sorte e soube começar com uma ferramenta que se adapta ao seu estilo. Porque existe muitas outras boas ferramentas como eu disse antes e quando sentimos dificuldades, sentimos-nos muito frustrados.
Por isso Roberto Lopez fez esta ferramenta mais para facilitar a compreensão daqueles que programaram em Clipper.

Sobre o seu projeto, achei meio estranho assim do começo utilizar tantos RadioGroup. Cabe saber se essas opções são exclusivista, quero dizer: se precisa ter apenas uma opção e não vária em cada item. Acho que no outro tópico você optou por CheckBox e este permite multi seleção. Não sei o que seu usuário precisa. Mas também existe outros controles exclusivistas como: ListBox e ComboBox e eu os disporia de outra forma. Isto é:

Mucosa:
Septo:
Cornetos inferiores:

Fica mais entendivel, na minha opinião.

Começando com Harbour + HMG

Enviado: 19 Fev 2015 01:57
por Clipper
Prezado Pablo

Obrigado por seu elogio. Se estou aprendendo rapidamente é porque tenho aqui neste fórum o auxilio de pessoas como você que contribuem com este aprendizado.

Com relação aos RadiosGroup, pelo projeto está certo, é que na verdade é um laudo em que Cada Item (Aba) tem que haver a seleção de um único subitem (Radio Button), em alguns casos dependendo do RadioButton escolhido eu preciso colocar uma observação (Textbox). Na penúltima aba (Checkbox) a coisa muda de figura pois é uma opção que o médico pode escolher entre nenhuma das 2 opções ou então uma das opções, mas nunca as duas, sendo que se for escolhida uma a outra não poderá ser, por isso eu desabilito uma quando a outra for escolhida, e habilito as duas quando nenhuma foi escolhida, e sendo uma escolhida então eu habilito o seu respectivo Textbox para que possa ser inserida uma observação obrigatória.

O projeto está indo bem, aprendi muita coisa, quebrei um pouco a cabeça com algumas "besterinhas" mas é só questão de adaptação, preciso aprender direito o funcionamento dos eventos, os métodos e as propriedades tem sido mais simples (sinto falta de uma literatura mais amplas destes conceitos). basicamente o que tá pegando agora é aprender os benditos eventos.

Sei que nesse projeto cometi vários vícios de programação procedural, mas de fato isso não está me preocupando no momento, assim que eu aprender bem a base do ambiente visual e dominar bem os conceitos de métodos, eventos e propriedades eu aplicarei bem dentro de uma programação OOP.

Ah ! Ia esquecendo... Tô levando uma surra no bendito EditBox - A questão é que ele grava bonitinho no arquivo, recupera bonitinho pra ser editado, mas na hora de imprimir concatena tudo.
Eu poderia usar a SUBSTR para separar e imprimir dividido, mas eu gostaria que fosse impresso como o usuário colocou (do mesmo jeito que aparece na tela).

Com relação a versão da Hmg. Estou usando a 3.0.35, baixei e instalei a Unicode 1.0.8, mas quando compilo com ela, desconfigura tudo que tenha acentuação e eu não soube como resolver (na verdade nem parei pra ver isso), na versão 3.0.35 roda tudo tranquilo.

Também gostaria de saber qual a diferença da versão Unicode para a versão Extended.

No link segue o projeto como está (19.02.2015 - 01:28) - Não repare nos EDIT EXTENDED's que estou usando, isso é provisório.

www.phrep.com.br/projetos.rar

Agradeço imensamente a sua ajuda, bem como a de todos os colegas aqui do fórum, e afirmo com certeza que sem essa ajuda e o incentivo que me foi dado esse projeto possivelmente estaria muito mais distante de ser concretizado ou talvez fadado ao fracasso.

Até logo.

Marcelo

Começando com Harbour + HMG

Enviado: 19 Fev 2015 09:28
por Pablo César
Oi Marcelo,

Gostei muito do seu projeto, muito caprichado. Acho que você abusou dos EDIT EXTENDED hihihi eu também gosto deles mas veja o que estaria deixando lento... (relendo a sua mensagem você já me antecipou que seria provisório).
Estou usando a 3.0.35, baixei e instalei a Unicode 1.0.8
Versão 1.0.8 ? Nunca vi essa versão, acho que você quis dizer a 3.4.0 ?
A versão ANSI mais atualizada e estável é 3.0.46.
.. mas quando compilo com ela, desconfigura tudo que tenha acentuação e eu não soube como resolver
Acontece que em ANSI você vai precisar dos codepages e setar a sua configuração para a linguagem português.
Mas em UNICODE, o ambiente como em internet não precisa disso e pode rodar com toda acentuações em multilingua.
Então o padrão de caracteres entre ANSI e UNICODE são diferentes, principalmente nos caracteres de acentuações.
Para poder trabalhar em UNICODE, você precisa acertar o seu editor de código para codificação UTF-8.
Se você utiliza Notepad++ (o mais indicado) você ao carregar por primeira vez o seu código em ANSI pode converter para UTF-8, nós usamos o (sem BOM). Veja no menu Formatar para converter para UTF-8 (sem BOM).

Eu sempre uso a ultima versão porque é a que possui mais recursos.
Também gostaria de saber qual a diferença da versão Unicode para a versão Extended.
Não entendi a sua pergunta.
UNICODE é um padrão formato de caracteres.
Versão Extended, não sei ao que você se refere. Existe a Minigui Extended que é da familia Minigui. HMG originou-se com compilador MinGW e depois veio outra versão que utiliza o compilador BCC do Grigory Filatov com muitas inovações mas que a HMG quis se manter mais conservadora digamos.
Minigui Extended não adotou o padrão UNICODE nem o 64bits como na HMG.
E se você quis se referir a EDIT Extended, isto é apenas funções de edição internas da biblioteca HMG e Minigui Extended.

Marcelo, você está em bom caminho e evoluindo muito rapidamente. Espero que você torne-se um expert e possa vir a ser um contribuidor na nossa comunidade HMG ou em qualquer outra que mais agradar.

Parabéns colega !

Começando com Harbour + HMG

Enviado: 19 Fev 2015 11:20
por Clipper
Prezado Pablo

Mais uma vez obrigado pela a atenção.

A versão Unicode é a 3.4.0 - É que aparece lá na barra HMG UNICODE 1.0.8 por isso meu engano

Mas de fato estou tendo problemas com ela, primeiro foi a questão da acentuação. Fiz como você disse, abri pele Notepad++ e converti para UTF-8 (Sem BOM), mas aí é que ficou ruim...(desculpe o trocadilho). Aí desconfigura na versão 3.0.35 e na 3.4.0 quando compilo fica "Building in 32 Bits" e não sai disso, tenho que clicar com o botão direito e finalizar na marra.

Voltei para ANSI e na versão 3.0.35 compila e executa tudo bonitinho e agora na versão 3.4.0 nem compila mais, fica no bendito..."Building in 32 Bits"

Fiz algumas alterações significativas na tela de Nasofibroscopia (melhorou bastante a questão de edição e visualização) graças a você que me alertou das benesses da SetProperty() e GetProperty().

A propósito...Não é que eu vou desistir do EDIT EXTENDED, é que assim que estiver dominando o bicho eu vou fazer algumas adaptações as minhas necessidades no fonte do EDIT.

Em relação a HMG e a HMG Extended, eu só queria saber se tem muita diferença, é que observei que a Extended tem algumas opções que a 'normal' não tem, mas isso deixa pra depois, por enquanto estou muito satisfeito com o que tenho em mãos.

Segue link do projeto atualizado.

www.phrep.com.br/projetos.rar
**********
Ps. Tô levando surra para mostrar o último e o Primeiro registro, Funções Primeiro() e Ultimo() do sistema, no Clipper tenho função igual e funciona perfeitamente.
Atualizei para a versão 3.0.46 e tá funcionado blz agora.

Obrigado mais uma vez.

Até logo.

Marcelo

Começando com Harbour + HMG

Enviado: 19 Fev 2015 13:18
por Clipper
Prezados Colegas

Vamos lá...

O que tem de errado aqui ?

Código: Selecionar todos

REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_UTF8EX
HB_LANGSELECT( 'PT' )
hb_cdpSelect( "UTF8EX" )
HB_LANGSELECT("PT")
 HB_SETCODEPAGE("PT850")
SET CODEPAGE TO PORTUGUESE
SET LANGUAGE TO PORTUGUESE
Compilei na versão 3.4.0 Unicode e na 3.4.0 Ansi e nas duas ocorre o seguinte problema :

Imagem

Imagem

Agradeço a atenção.

Até logo.

Marcelo

Começando com Harbour + HMG

Enviado: 19 Fev 2015 13:54
por Pablo César
Clipper escreveu:A versão Unicode é a 3.4.0 - É que aparece lá na barra HMG UNICODE 1.0.8 por isso meu engano
Putz como não pensei nisso... Aquela é a versão da IDE não da HMG.
Mas de fato estou tendo problemas com ela, primeiro foi a questão da acentuação. Fiz como você disse, abri pele Notepad++ e converti para UTF-8 (Sem BOM), mas aí é que ficou ruim...(desculpe o trocadilho).
Mas a acentuação converteu bem em UNICODE ?
Aí desconfigura na versão 3.0.35
Sim claro, uma vez que passa para UNICODE as outras versões em ANSI terão os seus caracteres acentuados de forma diferente.
na 3.4.0 quando compilo fica "Building in 32 Bits" e não sai disso, tenho que clicar com o botão direito e finalizar na marra.
Nossa amigo, desculpe. Esse release ficou devendo o Build.bat. Ficou com um bug grosseiro que fica empacando e tudo parece um caos ao menos desavisados. Mas faça o seguinte:

1. Abaixa este Build.bat
2. Descompacte e substitua pelo atual que está na pasta C:\hmg.3.4.0
A propósito...Não é que eu vou desistir do EDIT EXTENDED, é que assim que estiver dominando o bicho eu vou fazer algumas adaptações as minhas necessidades no fonte do EDIT.
Está certo.
Ps. Tô levando surra para mostrar o último e o Primeiro registro, Funções Primeiro() e Ultimo() do sistema, no Clipper tenho função igual e funciona perfeitamente.
Indique o código que talvez possa eu ajudar.
Atualizei para a versão 3.0.46 e tá funcionado blz agora.
Se você se sente melhor em ANSI, então deixe como está.
É que na versão UNICODE, você precisa tratar as strings com funçõe sinternas como: HMG_Upper()... etc e hb_USubStr() do Harbour para UNICODE.

Mas uma vez dominado isso, você passa acmpanhar as mudanças atuais.

Começando com Harbour + HMG

Enviado: 19 Fev 2015 14:18
por Pablo César
Compilei na versão 3.4.0 Unicode e na 3.4.0 Ansi e nas duas ocorre o seguinte problema
Wow man ! Você não perde tempo... vai longe assim. Esqueci de dizer que tem essa opção, mas quer um consellho ? Eu não faria isso.

Dá para trabalhar normalmente em UNICODE em perfeita harmonia. Vejo muitos colegas que ainda usam versões anteriores só pelo único caso de saberem trabalhar com ANSI.

Se você utiliza HMG em ANSI, o seu código fonte tem que estar em ANSI. Se usa HMG em UNICODE o seu código também tem que estar em UNICODE.
Não dá pra ficar trocando uma hora ANSI outra UNICODE. Tem que decidir qual ficar.

Tem mais outro detalhe, quando você cria teus FMGs (teus forms) em ANSI, você precisa recarregá-los na IDE UNICODE caso você queira mudar para UNICODE. E caso você tenha criado em UNICODE e queira compilar em ANSI terá que reccarregar e gravá-los em ANSI para que tudo mude novamente.

Outra coisa que está pensando na decisão de passar para UNICODE. Os seus DBFs estão em ANSI e tudo que for em UNICODE terá que ser tratado com funções de conversão para UNICODE.

Eu seu que tudo parece um bicho de sete cabeças mas tudo que é novo é assim. Leva um tempo para digerir.

Começando com Harbour + HMG

Enviado: 19 Fev 2015 16:00
por Antonio
Boa tarde!

Aproveitando o tópico gostaria que me fosse esclarecido sobre o seguinte:

Ha diferenças entre as versões 3.3.1 e a 3.4.0?
As duas são do Roberto Lopez?

O que mais pode ser dito entre essas duas versões da HMG?

Grato.

Começando com Harbour + HMG

Enviado: 19 Fev 2015 16:58
por Pablo César
Oi Antonio,

Eu ensino HMG e você me ensina Java que mesmo na faculdade eu teimo em não digerir bem OOP... rs
Mas gosto e desejo aprender a fundo Java !
Antonio escreveu:Ha diferenças entre as versões 3.3.1 e a 3.4.0?
As duas são do Roberto Lopez?
Com certeza há diferenças, toda diferença de versão tem suas implementações e ambas são do Roberto Lopez, o criador.

A 3.4.0 tem mais recursos como já disse.

Um abraço

Começando com Harbour + HMG

Enviado: 19 Fev 2015 17:15
por Toledo
Antonio escreveu:Ha diferenças entre as versões 3.3.1 e a 3.4.0?
Só para complementar a mensagem do Pablo... para ver quais as diferenças e implementações ocorridas em uma versão da HMG, veja o arquivo changelog.txt que está na pasta da versão 3.4.0 (\hmg.3.4.0\):

Código: Selecionar todos

-HMG 3.4.0 2015/01/18
   - Updated to latest Harbour Nightly Build (2015-01-14)
   - Updated to latest MingW Compiler 
   - New HMG IDE version 1.0.8 
      - now stops build app if app is running
      - if not specified text editor, search for text editor associate with PRG files
   - New in Grid control
      - <ParentWindowName>.<GridControlName>.PaintDoubleBuffer [ := | -->] lBoolean   // Paints via double-buffering, which reduces flicker
      - New Groups in Grid (see samples in grid samples folder) Note: Grid Group is not available when application is running on Windows versions of 32-bits You can check if your application is running on Win32 with the function HMG_IsRunAppInWin32() In Win32 GroupEnabled := .T. is ignored whitout needs to change the code.
         - <ParentWindowName>.<GridControlName>.GroupEnabled [ := | -->] lBoolean
         - <ParentWindowName>.<GridControlName>.GroupDeleteAll
         - <ParentWindowName>.<GridControlName>.GroupDelete ( nGroupID )
         - <ParentWindowName>.<GridControlName>.GroupExpand ( nGroupID )
         - <ParentWindowName>.<GridControlName>.GroupCollapsed ( nGroupID )
         - <ParentWindowName>.<GridControlName>.GroupAdd    ( nGroupID [, nPosition ] )
         - <ParentWindowName>.<GridControlName>.GroupInfo   ( nGroupID ) [ := | -->] { [ cHeader ] , [ nAlignHeader ] , [ cFooter ] , [ nAlingFooter ] , [ nState ] }
         - <ParentWindowName>.<GridControlName>.GroupItemID ( nItem )    [ := | -->] nGroupID
            - nAlignHeader & nAlingFooter   -->   GRID_GROUP_LEFT | GRID_GROUP_CENTER | GRID_GROUP_RIGHT
            - nState -->   GRID_GROUP_NORMAL | GRID_GROUP_COLLAPSED
         - <ParentWindowName>.<GridControlName>.GroupDeleteAllItems ( nGroupID )
         - <ParentWindowName>.<GridControlName>.GroupGetAllItemIndex ( nGroupID ) --> anItemIndex
         - <ParentWindowName>.<GridControlName>.GroupCheckBoxAllItems ( nGroupID ) := lCheck            
      - New CheckBox to select item(s) in Grid (see samples in grid samples folder)     
         - <ParentWindowName>.<GridControlName>.CheckBoxEnabled [ := | -->] lBoolean
         - <ParentWindowName>.<GridControlName>.CheckBoxItem ( nRow ) [ := | -->] lBoolean
         - <ParentWindowName>.<GridControlName>.CheckBoxAllItems := lCheck 
         - Method ON CHECKBOXCLICKED()
      - New DynamicFont property to have any text font and style in any cell/header.
         - <ParentWindowName>.<GridControlName>.HeaderDYNAMICFONT      ( nCol ) := {|| {cFontName, nFontSize, [ lBold, lItalic, lUnderline, lStrikeOut ]} }
      - New HeaderDynamicForeColor and HeaderDynamicForeColor         
         - <ParentWindowName>.<GridControlName>.HeaderDYNAMICFORECOLOR ( nCol ) := {|| aColor }
         - <ParentWindowName>.<GridControlName>.HeaderDYNAMICBACKCOLOR ( nCol ) := {|| aColor }   // not work
      - Miscellaneous Features
         - <ParentWindowName>.<GridControlName>.Image ( lTransparent ) := { "image1.png", "image2.bmp", ... }
         - <ParentWindowName>.<GridControlName>.ImageIndex ( nRow , nCol ) [ := | -->] nIndex
         - <ParentWindowName>.<GridControlName>.ImageList [ := | -->] hImageList
         - <ParentWindowName>.<GridControlName>.ColumnDYNAMICFONT ( nCol ) := {|| {cFontName, nFontSize, [ lBold, lItalic, lUnderline, lStrikeOut ]} }
         - <ParentWindowName>.<GridControlName>.HeaderImageIndex ( nCol ) [ := | -->] nIndex
         - <ParentWindowName>.<GridControlName>.ChangeFontSize := nSize | NIL  // Useful for use Dynamic Font with more (less) Height than the size of font the Grid control
   - New Dynamic Font (in Grid and Tree controls see respective samples in Grid and Tree sample folders )      
   - New ToolTip Menu
      - SET TOOLTIPMENU    ON|OFF  --> For default ToolTip MENU is ON
      - SET TOOLTIPMENU TO <lOn>
      - ToolTipMenuIsActive ()
   - New ToolTip Custom Draw (see DOC\Misc. Commands\Set ToolTipCustomDraw)   
   - New Method ON ENTER in CheckBox and CheckButton
   - New concept of Array Font for various uses described elsewhere below.
      - aFont := ARRAY FONT <cFontName> SIZE <nFontSize> [ BOLD ] [ ITALIC ] [ UNDERLINE ] [ STRIKEOUT ] --> { cFontName, nFontSize, lBold, lItalic, lUnderline, lStrikeout }
      - aFont := CREATE ARRAY FONT <cFontName> SIZE <nFontSize> [ BOLD <lBold> ] [ ITALIC <lItalic> ] [ UNDERLINE <lUnderline> ] [ STRIKEOUT <lStrikeout> ] --> { cFontName, nFontSize, lBold, lIitalic, lUnderline, lStrikeout }
   - New Functions:
      - FindFirstChangeNotification()
      - FindNextChangeNotification()
      - FindCloseChangeNotification()
      - WaitForSingleObject()
      - WaitForMultipleObjects()
      - SetCursorSystem()
      - SetWindowTheme (hWnd, cSubAppName, cSubIdList)
      - HMG_StrCmp ( Text1 , Text2 , [ lCaseSensitive ] ) --> CmpValue
      - HMG_IsValidFileName ( cFileName )   // cFileName --> ONLY FILE NAME without Path
      - HMG_GetFileAssociatedWithExtension ( cExt ) --> return the full file name associated with extension (extension with point, e.g. ".TXT")
      - HMG_IsRunAppInWin32() --> lBoolean
      - HMG_IsWinVistaOrLater() --> lBoolean
      - HMG_GetCompileVersion32 ( HMG_cPath ) --> cVersion
      - HMG_GetCompileVersion64 ( HMG_cPath ) --> cVersion
      - HMG_GetCompileVersionRaw ( HMG_cPath ) --> acVersion
      - HMG_GetPrivateProfileSectionNames ( cFileName ) ---> return array { "SectionName1", "SectionName2", ... }      
      - HMG_GetPrivateProfileSection ( cFileName, cSectionName ) ---> return array { "Key1=string1", "Key2=string2", ... }      
   - New in SPLITBOX functions:
      - REBAR_GETHEIGHT()
      - REBAR_GETBANDCOUNT()
      - REBAR_GETBARRECT()
      - REBAR_GETBANDBORDERS()
      - REBAR_SETMINCHILDSIZE()
      - REBAR_GETBANDINFO()      
   - New Set icon of StatusBar item
      - <ParentWindowName>.StatusBar.IconHandle (nItem) := hIcon      
   - New Addition of 455 new colors definitions, see INCLUDE\i_color.ch (contrib by Grigory Filatov)
   - New GetFile() and PutFile() functions support parameter nFilterIndex, this is an index of the filter array (based upon a contribution of Kevin Carmody)      
   - New in PLAYER control :
      - Volume (Set/Get)
      - Seek (Set)   
   - New in Tree Control
      - New Events
         - ON EXPAND
         - ON COLLAPSE
         - This.TreeItemValue  // available for OnExpand and OnCollapse events and DynamicForeColor, DynamicBackColor and DynamicFont properties.
      - New DynamicFont, DynamicForeColor and DynamicBackColor
         - <ParentWindowName>.<TreeControlName>.DynamicForeColor := {|| aColor }
         - <ParentWindowName>.<TreeControlName>.DynamicBackColor := {|| aColor }
         - <ParentWindowName>.<TreeControlName>.DynamicFont      := {|| {cFontName, nFontSize, [ lBold, lItalic, lUnderline, lStrikeOut ]} }
         - <ParentWindowName>.<TreeControlName>.ChangeFontSize   := nSize | NIL  // Useful for use Dynamic Font with more (less) Height than the size of font the Tree control
      - New properties
         - <ParentWindowName>.<TreeControlName>.IsExpand ( nValue ) --> lBoolean
         - <ParentWindowName>.<TreeControlName>.ImageList     [ := | --> ] hImageList
         - <ParentWindowName>.<TreeControlName>.HasLines      [ := | --> ] lBoolean
         - <ParentWindowName>.<TreeControlName>.FullRowSelect [ := | --> ] lBoolean
         - <ParentWindowName>.<TreeControlName>.HasButton ( nValue ) [ := | --> ] lBoolean
         - <ParentWindowName>.<TreeControlName>.Cargo ( nValue ) [ := | --> ] xData
         - <ParentWindowName>.<TreeControlName>.CargoScan ( xData ) -->  nValue | NIL
         - <ParentWindowName>.<TreeControlName>.GetPathValue     ( nValue ) --> anPathValue | NIL
         - <ParentWindowName>.<TreeControlName>.GetPathName      ( nValue ) --> acPathName | NIL
         - <ParentWindowName>.<TreeControlName>.GetDisplayLevel  ( nValue ) --> nDisplayColumn | NIL
   - New Printer Features
      - Select Printer PDF (Directly print to a pdf file)
      - Select Printer DialogFileName and SaveAs
         - SELECT PRINTER <cPrinter> [ PREVIEW ] [ NOSAVEBUTTON ] [ DIALOGFILENAME <cDialogFileName> ] [ SAVEAS <cFullFileName> ]
            - cDialogFileName --> [ cPath\ ] cFileName + [ cExt ] --> ".PDF" | ".BMP" | ".JPG" | ".GIF" | ".TIF" |".PNG" | ".EMF"
            - cFullFileName   --> [ cPath\ ] cFileName +   cExt   --> ".PDF" | ".BMP" | ".JPG" | ".GIF" | ".TIF" |".PNG" | ".EMF"
      - New property ANGLE <nAngle> in PRINT DATA (nAngle: are in degrees and counterclockwise)
   - New BosTaurus Functions 
      - BT_ToolBarBottomHeight (Win)
      - BT_ToolBarBottomWidth  (Win)
      - BT_ToolBarTopHeight    (Win)
      - BT_ToolBarTopWidth     (Win)
      - BT_MathPI ()
      - BT_MathSIN ( AngleInDegrees )
      - BT_MathCOS ( AngleInDegrees )
      - BT_MathTAN ( AngleInDegrees )
      - BT_MathCircumferenceY ( Radius, AngleInDegrees ) --> nRow
      - BT_MathCircumferenceX ( Radius, AngleInDegrees ) --> nCol
      - BT_MathCircumferenceArcAngle ( Radius, Arc ) --> AngleInDegrees
      - BT_SelectObject (hDC, hGDIobj)
      - BT_DeleteObject (hGDIobj)
      - BT_DrawTextSize (hDC, cText, cFontName, nFontSize, nTypeText) --> { w , h , ABC of first character }
      - BT_RegionCreateElliptic (nCol1, nRow1, nCol2, nRow2)
      - BT_RegionCombine ( @hRgnDest, hRgnSrc1, hRgnSrc2, nCombineMode ) --> nResult
      - BT_RegionFrame (hDC, hRgn, aColor, nWidth, nHeight)
      - BT_ImageListGetSystemIcon ( [ lLargeIcon ] ) --> hImageList ( You NEVER add, remove or delete icons from the System Imagelist )
      - BT_ImageListExtractIcon (hImageList, nIndex) --> hIcon
      - BT_DirectoryInfo ( [nCSIDL | cPath] , [nTypeList] , @nIndexRoot, @CSIDL_Name ) --> { { Data1, Data2, Data3, ... } , ... }
   - New Demos      
      - MiniWriter (RichEditBox demo in Applications contributed by Eduardo L. Azar)
   - Enhanced BUILD.BAT and BUILD64.BAT stops build app if app is running (contrib by Pablo César)  
   - Enhanced DEFINE WINDOW: now AT, ROW, COL, WIDTH and HEIGHT parameters are optional (contrib by Pablo César)   
   - Enanced InputBox() and InputWindow() functions (contrib by Pablo César)
   - Fixed bug in RichEdit Control Justify text and in ParaNumberingStyle constants (contrib by Kevin Carmody)   
-HMG 3.3.1 (Stable) 2014/07/15...

Começando com Harbour + HMG

Enviado: 19 Fev 2015 18:26
por Clipper
É por isso que eu bebo...

Depois de quebrar a cabeça para implementar o projeto para uso com Unicode, tudo resolveu-se na base do : "vai tentando gambiarra que uma hora ou lasca tudo ou acerta de vez".

1 - Converti para Unicode (s/BOM) pelo Notepad++ - Faiô
2 - No Notepad++ Habilitei o Unicode s/Bom e reescrevi onde tava desconfigurado - Faiô de novo
3 - Converti para Unicode (s/BOM) pelo Lope Edit - Faiô di novo......vou desistir...vô não....
4 - No Lope Edit Habilitei o Unicode s/Bom e reescrevi onde tava desconfigurado, e não é que... faiô di nono... tô me arretando... :?
5 - Abri o Crimson Editor (o do cachorrinho) - Ele não tem conversor para Unicode (na verdade não tem conversor para nenhum formato), bem, quem tá na chuva é pra se queimar...
6 - No Crimson Editor Habilitei o Unicode s/Bom e reescrevi onde tava desconfigurado :*

Vai entender... :)´

:{ Crimson Editor

Agora compilando na versão 3.4.0 Unicode e funcionado perfeitamente....

Valeu a ajuda.

Até logo.

Marcelo

Começando com Harbour + HMG

Enviado: 19 Fev 2015 19:50
por Antonio
Obrigado por responder Toledo e Plabo Cesar.

Parece que esta é ainda uma versão de teste e sera substituida em breve, é isso mesmo?

Pablo Cesar eu estudei java num curso técnico de analise de sistemas na ETEC e C# foi por conta mesmo.
São duas linguagens muito boas e nem tanto ao mesmo tempo.

Se tivessemos no harbour um editor com interlicense como se tem nas duas acima eu diria que o harbour não estaria devendo nada a nenhuma linguagem e quem sabe, de repente não esta devendo mesmo ja que não sou profundo conhecedor de nenhuma linguagem de programação.

Começando com Harbour + HMG

Enviado: 19 Fev 2015 19:59
por Pablo César
Grande garoto !

Você é persistente e inteligente !

Mas não entendo por quê não daria certo pelo Notepad++

Eu peguei ose seus dois prg, apenas carrguei no Notepad++, executei a conversão para UTF-8 (sem/Bom), gravei e re-compilei.

Deu certo para mim, em anexo os dois prgs.

Começando com Harbour + HMG

Enviado: 19 Fev 2015 20:15
por Pablo César
Antonio escreveu:Parece que esta é ainda uma versão de teste e sera substituida em breve, é isso mesmo?
Eu não sei por quê na HMG lançam as versões da HMG com a nomenclatura "TESTE"... fico pé da vida com essa mer...

Na verdade todo, mas todo release são de certa forma também de teste, não acham ou eu estou enganado ?

Sei que o Dr. Claudio Soto irá lançar um remendo (Patch) consertando algumas coisas e implementando outras novas.
Antonio escreveu:Se tivessemos no harbour um editor com interlicense como se tem nas duas acima eu diria que o harbour não estaria devendo nada a nenhuma linguagem
Editor com Intellisense ?

Imagem
Bom pelo que eu sei, existe o projeto scintilla http://www.scintilla.org/ScintillaDoc.html que no momento a FiveWin (em Harbour) está desenvolvendo o próprio editor atarvés de dlls.

http://forums.fivetechsupport.com/viewt ... 57#p171557

Na HMG utilizamos o Notepad++ que também é OPENSOURCE e possui os mesmo recursos e até mais.

Mas já haverá colega daqui mesmo no fórum que poderão indicar IDE com seu próprio edito (verifique HBIDE) mas claro nada se compara com NetBeans ou Eclipse que são verdadeiros ambiente de desenvolvimento integrados.