Programando em Clarion .NЕТ
Transcrição
Programando em Clarion .NЕТ
3URJUDPDQGRHP&ODULRQ1(7 -XOLR&pVDU3HGURVR 6HXSULPHLURSURJUDPDHP&ODULRQ1(7 O Clarion.NET foi criado para auxiliá-lo na criação de aplicações que se utilizam do .NET Framework usando uma ferramenta RAD (Rapid Applicat ion Developm ent ) que você j á conhece há m uit o t em po. Est e capít ulo é um a int rodução ao am bient e int egrado de desenvolvim ent o do Clarion.NET, o que cham am os de I DE, e dem onst ra um a aplicação m uit o sim ples de console, o fam oso “ ALO MUNDO” . ,QLFLDQGR Na IDE, selecione $UTXLYR, 1RYR, 6ROXomR. (sim a IDE do Clarion.NET está em português), se o seu Windows for em português). Uma caixa de diálogo, 1RYR3URMHWR, semelhante à figura ao lado será apresentada. Na árvore 7LSRV GH 3URMHWRV (Categorias), escolha a opção &ODULRQ1HW e expanda o nó da árvore. Escolha agora a opção $SOLFDo}HV :LQGRZV No painel 0RGHORV que fica no painel da direita são mostrados 4 itens: %LEOLRWHFD GH &ODVVHV, %LEOLRWHFD GH &RQWUROHV, $SOLFDomR :LQGRZV e $SOLFDomR&RQVROH. Clique em $SOLFDomR&RQVROH e entre um nome para o seu programa. Você pode escolher uma localização para o seu projeto, ou deixar o padrão no campo /RFDOL]DomR. Nosso projeto foi chamado de ALOMUNDO. Depois, é só clicar no botão &ULDU e o seguinte módulo-fonte é mostrado. !~ ~ Criado em Clarion ~ Autor: Julio César Pedroso ~ Em: 05 de março de 2008. ~! 352*5$0 1$0(63$&((ALOMUNDO) 0$3 1 3URJUDPDQGRHP&ODULRQ1(7 (1' -XOLR&pVDU3HGURVR &2'( System.Console.:ULWH/LQH( +HOOR:RUOG ) System.Console.5HDG.H\() Alteramos o texto (‘Hello World’) gerado, para (‘Alo Mundo’) As primeiras linhas exibidas em cor verde no nosso exemplo mostram a nova sintaxe para blocos de comentário. Para comentar apenas a linha atual use o til ~ , mas para criar um bloco de comentário no código, utilize !~ no início do bloco e ~! no final do bloco. Para quem já conhece Clarion, a sentença PROGRAM não é nova, mas o que vem a seguir sim, a diretiva NAMESPACE. NAMESPACE é uma forma de agrupar o seu código e reduzir a possibilidade de colisão de nomes. Se você não especificar um NAMESPACE o compilador automaticamente irá gerar um para você usando o mesmo nome do projeto, concatenado com a expressão NS. No nosso exemplo se não fosse especificado um NAMESPACE seria gerado um ALOMUNDONS. As sentenças MAP e END, que se seguem, são velhas conhecidas dos programadores Clarion. Da mesma forma a sentença CODE, que todos nós já estamos acostumados a usar. Em seguida, logo após o CODE, você tem o seu primeiro contato com a livraria Framework. São duas linhas System.Console.:ULWH/LQH( $OR0XQGR ) System.Console.5HDG.H\() System é um Namespace, Console é uma classe contida no Namespace System enquanto que Writeline e Readkey são métodos desta classe. Fica claro que ‘Alo Mundo’ é o argumento do método WriteLine. 'LFDSDUDTXHPHVWiFRPHoDQGR 2V QDPHVSDFHV IRUQHFHP XP HVTXHPD OyJLFR GH QRPHDomR TXH SHUPLWHPDGLFLRQDUVREXP~QLFRJUXSRRVWLSRVGHGDGRVUHODFLRQDGRV 0XLWR VHPHOKDQWH DRV ³SDFRWHV´ GD OLQJXDJHP -DYD 2 1(7 )UDPHZRUN XVD XP HVTXHPD GH QRPHDomR KLHUiUTXLFD SDUD DJUXSDU RV WLSRV HP FDWHJRULDV OyJLFDV GH IXQFLRQDOLGDGH UHODFLRQDGD WDLV FRPR DFHVVR GH GDGRV *8, UHODWyULRV HWF $V IHUUDPHQWDV GH SURMHWR SRGHP XVDU QDPHVSDFHVSDUDIDFLOLWDUDRVGHVHQYROYHGRUHVDQDYHJDomRHRVWLSRVGH UHIHUrQFLD QR FyGLJR 1R 1(7 )UDPHZRUN XPD QDPHVSDFH p XPD FRQYHQLrQFLD GH QRPHDomR HP WHPSR GH SURMHWR OyJLFD QD TXDO XP DVVHPEO\ HVWDEHOHFH R HVFRSR GR QRPH SDUD RV WLSRV HP WHPSR GH H[HFXomR 2V QDPHVSDFHV WDPEpP DMXGDP R &/5 QD VHOHomR GR DVVHPEO\ FRUUHWR D VHU FDUUHJDGR TXDQGR SRU H[HPSOR YiULRV DVVHPEOLHVSRVVXHPRPHVPRQRPH 3RU H[HPSOR TXDQGR YRFr TXHU DFHVVDU XPD FODVVH ORFDOL]DGD QR 1(7 )UDPHZRUN XWLOL]D R QRPH FRPSOHWR TXH LQFOXL R QDPHVSDFH 1D UHIHUrQFLD 6\VWHP'DWD'DWDVHW D SDUWHFRUUHVSRQGHQWHDR QDPHVSDFHp 6\VWHP'DWDHQTXDQWRDSDUWHFRUUHVSRQGHQWHDRQRPHGRWLSRp'DWDVHW $ 0LFURVRIW DGRWRX XP SDGUmR QR TXDO WRGRV RV QDPHVSDFHV GLVSRQLELOL]DGRVSRUHODLQLFLDPFRP6\VWHPRX0LFURVRIW &RPRRVQDPHVSDFHVIRUQHFHPRHVFRSRSDUDVHXVWLSRVRSDGUmR p DJUXSDU RV WLSRV FRP IXQFLRQDOLGDGH UHODFLRQDGD HP QDPHVSDFHV 2 3URJUDPDQGRHP&ODULRQ1(7 -XOLR&pVDU3HGURVR VHSDUDGRV 6\VWHP'DWD 6\VWHP;PO 6\VWHP&ROOHFWFLRQV 6\VWHP:HE 6\VWHP1HW 6\VWHP7UKHDGLQJ H 6\VWHP6HFXULW\ VmR yWLPRV H[HPSORV GH FULDomR GH QDPHVSDFHV FRP DJUXSDPHQWRV OyJLFRV (OHV HVWmR ORFDOL]DGRV QD %DVH&ODVV/LEUDU\ TXH D 0LFURVRIW IRUQHFH FRPR SDUWH GR 1(7)UDPHZRUN Pressione &WUO) para compilar e executar nossa aplicação. Você pode utilizar o botão X na Barra de Ferramentas. Observe a seguir o resultado da compilação. Você escreveu o seu primeiro código usando o novo Clarion.NET . 'LFDVSDUDTXHPHVWiFRPHoDQGR 8PIUDPHZRUNRXDUFDERXoRpXPDHVWUXWXUDGHVXSRUWHGHILQLGDHPTXH XP RXWUR SURMHWR GH VRIWZDUH SRGH VHU RUJDQL]DGR H GHVHQYROYLGR 8P IUDPHZRUN SRGH LQFOXLU SURJUDPDV GH VXSRUWH ELEOLRWHFDV GH FyGLJR OLQJXDJHQVGHVFULSWRXWURVVRIWZDUHVSDUDDMXGDUDGHVHQYROYHUHMXQWDU GLIHUHQWHVFRPSRQHQWHVGHXPSURMHWRGHVRIWZDUH )UDPHZRUNV VmR SURMHWDGRV FRP D LQWHQomR GH IDFLOLWDU R GHVHQYROYLPHQWR GH VRIWZDUH KDELOLWDQGR GHVLJQHUV H SURJUDPDGRUHV D JDVWDUHP PDLV WHPSR GHWHUPLQDQGR DV H[LJrQFLDV GR VRIWZDUH GR TXH FRPGHWDOKHVGHEDL[RQtYHOGRVLVWHPD $ORPXQGRFRPIRUPXOiULRV:LQGRZVZLQIRUPV Vamos introduzir novas técnicas de programação, criando uma aplicação Alo mundo, só que agora com janelas. Na IDE selecione 1RYR , 6ROXomR. À exemplo do nosso programa anterior, a caixa 1RYR 3URMHWR será mostrada. Na árvore que aparece do lado esquerdo clique sobre o nó &ODULRQ1HW e em seguida selecione $SOLFDo}HV:LQGRZV. 3 3URJUDPDQGRHP&ODULRQ1(7 -XOLR&pVDU3HGURVR No painel do lado direito, na área são apresentados quatro ícones representativos de aplicações. Escolha $SOLFDomR:LQGRZV. No campo 1RPH, na parte debaixo da tela, vamos definir um nome para o nosso projeto. Achei bastante “sugestivo” o nome :LQ$OR0XQGR, indicando ser um programa Alo Mundo, só que usando Win Forms. No campo localização, deixe como está, adotando o local escolhido pelo Clarion, mas é claro que, se você quiser, pode mudar o nome e a localização para a pasta que bem entender. Em seguida, pressione o botão &ULDU. Em pouco tempo o Clarion irá gerar um novo projeto com as seguintes linhas de código: Na minha geração aparece uma linha ${StandardHeader.Clarion#} Eu retiro esta linha, por que me dá um erro de compilação. Tive que retirar “isso” de todas as janelas geradas. Ainda preciso descobrir o porque dessa linha. As demais linhas, as que restam são as seguintes: !~ ~ Criado em Clarion ~ Autor: Julio César Pedroso ~ Em: 05 de março de 2008. ~! 352*5$0 1$0(63$&((WinAloMundo) 86,1*(System) 86,1*(System.Drawing) 86,1*(System.Windows.Forms) &2'( !Estas funções são usadas para habilitar os efeitos visuais do Windows XP para a aplicação. Application.(QDEOH9LVXDO6W\OHV() Application.6HW&RPSDWLEOH7H[W5HQGHULQJ'HIDXOW(IDOVH) Application.5XQ(1(:0DLQ)RUP()) Adicionei as linhas de comentário no início e fiz a tradução do comentário que se refere aos estilos visuais do Windows XP. Vamos comentar o código gerado, de acordo com a documentação da Soft Velocity. 4 3URJUDPDQGRHP&ODULRQ1(7 -XOLR&pVDU3HGURVR No nosso primeiro contato com o Clarion NET explicamos alguma coisa sobre 1$0(63$&(. Após o NAMESPACE temos 86,1*. 86,1* referencia outros assemblies no .NET Framework. Pense nele como um novo INCLUDE para as aplicações Clarion# 'LFDVSDUDTXHPHVWiFRPHoDQGR 2 XVLQJ DWHQGH D OLEHUDomR GH UHFXUVRV QmR JHUHQFLDGRV 2 REMHWR TXH VHUi LQVWDQFLDGR QR FRPDQGR ³XVLQJ´ p OLEHUDGR DXWRPDWLFDPHQWH RX VHMD p FKDPDGR R ³'LVSRVH´ GHVWH REMHWR GH IRUPD WRWDOPHQWH DXWRPiWLFDGRFRQWUiULRYRFrWHULDTXHID]HULVVRPDQXDOPHQWH 1XQFDVHHVTXHoDGH6(035(XVDUR³XVLQJ´TXDQGRHVWLYHUWUDEDOKDQGR FRPUHFXUVRVQmRJHUHQFLDGRV No nosso pequeno exemplo, três namespaces do 6\VWHP são referenciados. O namespace 6\VWHP contém as classes fundamentais e as classes básicas que definem os valores usados comumente e tipos de dados de referencia, eventos e manipuladores de eventos, interfaces, atributos e processamentos de exceção. Este namespace é o básico do básico para todas as aplicações Clarion#. Note que os namespaces estão sendo chamados por 86,1*, após um namespace WinAloMundo, que é a nossa aplicação. O namespace 6\VWHP'UDZLQJ dá acesso a livraria da Interface GDI+ e as suas funcionalidades gráficas básicas. 3RU LVVR VH YRFr TXLVHU TXDOTXHU FRLVD YLVXDO HP VXD DSOLFDomR YRFr SUHFLVDLQFOXLUHVWHQDPHVSDFHQRVHXSURJUDPD. O último USING referencia o namespace 6\VWHP:LQGRZV)RUPV Todos os elementos visuais e dados relacionados estão contidos neste namespace, incluindo o suporte à controles, menus, data binding (atribuição de um controle a um elemento de dado específico), e muito mais. Abaixo seguem um link que será memorizado por você muito rapidamente. ht t p: / / m sdn2.m icrosoft .com / en- us/ librar y/ syst em .aspx Neste link está toda a documentação disponibilizada pela Microsoft para todos os namespaces contidos em 6\VWHP. 'LFDVSDUDTXHPHVWiFRPHoDQGR 2'DWD%LQGLQJSHUPLWHOLJDUSURSULHGDGHVGHXPREMHWRDGLYHUVRVWLSRV GH IRQWHV GH GDGRV SURYHQLHQWHV WDQWR GR SUySULR SURJUDPD FRPR QR FDVRGHSURSULHGDGHVGHRXWURVREMHWRVTXDQWRGHGDGRVH[WHUQRVFRPR DUTXLYRV;0/RXWDEHODVGHEDQFRVGHGDGRV (VWD OLJDomRp IHLWDVHP TXHVHMD QHFHVViULD DFULDomR GHFyGLJR H SRGH VHU XQLGLUHFLRQDO RQGH DSHQDV D SURSULHGDGH GR REMHWR p DOWHUDGD RX ELGLUHFLRQDORQGHDDOWHUDomRGDSURSULHGDGHDOWHUDDIRQWHGHGDGRV 8P H[HPSOR GH 'DWD %LQGLQJ SRGH VHU D OLJDomR GD SURSULHGDGH 7H[W GH XPD 7H[W%R[ D XP FDPSR GH XPD WDEHOD GH XP EDQFR GH GDGRV 2 FRQWH~GRGD7H[W%R[pLQLFLDOL]DGRFRPRFRQWH~GRGRFDPSRHTXDQGR DOWHUDPRVRYDORUGD7H[W%R[HVWDDOWHUDomRpSURSDJDGDSDUDREDQFRGH GDGRV Voltando às sentenças do nosso código temos: $SSOLFDWLRQ(QDEOH9LVXDO6W\OHV A que método esta linha está fazendo referência. 5 3URJUDPDQGRHP&ODULRQ1(7 -XOLR&pVDU3HGURVR Isto é muito interessante! Mova o ponteiro do seu mouse para a primeira linha de código, abaixo da sentença CODE, e observará que aparecerá um balão explicativo (tooltip). Grande! Isto significa que a classe $SSOLFDWLRQ faz parte do namespace 6\VWHP:LQGRZV)RUPV A ajuda do MSDN para a classe Application diz eu o propósito desta é providenciar “métodos estáticos e propriedades para gerenciar uma aplicação, tais como métodos para iniciar e parar uma aplicação, para processar as mensagens de Janelas e as propriedades para recuperar informações sobre uma aplicação”. Se parar o mouse sobre EnableVisualStyles() será apresentado o tooltip referente a este método da classe. O próximo método, 6HW&RPSDWLEOH7H[W5HQGHULQJ'HIDXOW é usado para configurar todos os controles visuais da nova livraria GDI+ . Este método foi adicionado posteriormente, no release do .NET Framework, de maneira que é possível que você não tenha um tooltip para este método. Finalmente, vemos uma chamada para o método 5XQ. $SSOLFDWLRQ5XQ1(:0DLQ)RUP Quem é usuário Clarion e trabalha com o template ABC, deve lembrar desta linha de código: $EUHDMDQHODHLQLFLDR/RRSGR$FFHSW *OREDO5HVSRQVH 7KLV:LQGRZ5XQ O método Run do .NET também é usado iniciar um programa. De acordo com o MSDN, o formato do método Run mostrado acima, inicia com o envio de um laço “message” na thread corrente e faz com que o formulário especificado (Form Principal) seja visível. Quando criamos o nosso projeto, o gerenciador de modelos gerou alguns arquivos, que vamos ver mais de perto agora. Mas, onde posso ver estes arquivos? Na IDE do Clarion# abra o 9LVXDOL]DGRU GH 3URMHWRV, se ainda não estiver aberto, O 9LVXDOL]DGRU GH 3URMHWRV pode ser aberto rapidamente pressionando <Control Alt L> ou simplesmente selecionando 9LVXDOL]DU ! 3URMHWRV a partir do menu da IDE. A árvore de projetos, para a nossa solução é mostrada, semelhante à figura ao lado. O nível mais alto identifica o nome da nossa Solução. Imagine uma solução como uma coleção de projetos. Na 6 3URJUDPDQGRHP&ODULRQ1(7 -XOLR&pVDU3HGURVR maioria das vezes, o número de projetos em uma Solução é 1 (um), mas em projetos multi assemblies, este número pode mudar. O próximo identificador na árvore de projetos é o nosso projeto WinAloMundo. Logo abaixo, nós vemos as Referências do Projeto, e vemos que o Gerenciador de Modelos adicionou um certo número de referências do 6\VWHP que são usadas por este projeto. Estas referências são códigos source em Clarion# . Todos estes arquivos possuem a extensão .CLN (de Clarion .NET) e novamente foram gerados pelo Gerenciador de Modelos (se é que posso chamá-lo assim, a versão em inglês chama isto de “Quick Start”). 2DUTXLYR$VVHPEO\,QIRFOQ Este arquivo é comum em todas as plataformas de desenvolvimento.NET e inclui uma grande variedade de atributos assemblies, tais como: número da versão, chaves de nomes de arquivos fortes, títulos assemblies e cultura. Embora você possa colocar esses atributos em qualquer lugar do seu código fonte, o convencional, em programação .NET, é colocar todos eles em um arquivo AssemblyInfo, de forma que você tenha um lugar centralizado e específico para eles. O convencional também é HYLWDU FRORFDUFyGLJRDGLFLRQDOno arquivo AssemblyInfo. Em quase todos os casos, deixa-se este arquivo sozinho. 2DUTXLYR0DLQFOQ Vimos acima este arquivo. Este é o module do programa Clarion#, e contém apenas alguns poucos itens/comandos, necessários para iniciar a aplicação. 2DUTXLYR0DLQ)RUPFOQ O objetivo deste capítulo é justamente dar uma introdução aos Winforms. Este arquivo também é automaticamente gerado pelo Gerenciador de Modelos (quick start), Da mesma forma que o arquivo AssemblyInfo, constitui um padrão na indústria de desenvolvimento .NET, é usado para armazenar a janela principal de sua aplicação. Junto com o source MainForm é gerado um arquivo de Designer (0DLQ)RUP'HVLJQHU). Nele são armazenados todos os componentes de janela e as classes que são automaticamente geradas pela pelo :LQ)RUP'HVLJQHU. Da mesma forma que no arquivo AssemblyInfo, evite colocar códigos adicionais neste arquivo, mantendo o “sozinho”, na medida do possível. Dadas estas explicações, vamos completar o nosso “Programa”. $EULQGRDMDQHOD0DLQ)RUP Na janela do 9LVXDOL]DGRU GH 3URMHWRV, faça um duplo clique sobre a entrada 0DLQ)RUPFOQ, na árvore de projetos. Por default, na IDE, a abertura do 7 3URJUDPDQGRHP&ODULRQ1(7 -XOLR&pVDU3HGURVR source deste arquivo, automaticamente inicia o )RUPDWDGRU GH -DQHODV na realidade muito mais que isso, trata-se de um ³'HVHQKDGRUGH)RUPXOiULRV´. A qualquer momento você pode alternar entre o modo source e o modo desenho, clicando nas tabs que ficam do lado inferior esquerdo do módulo., Veja na figura abaixo a janela com o form designer ativo, mostrando o nosso formulário principal, onde poderemos adicionar alguns componentes. $GLFLRQDQGRXPERWmRQDMDQHOD Bem, acho que a maioria dos programadores Clarion sabe colocar um botão em uma janela. Mas tratamos aqui de um ambiente novo, o Clarion#. Eu prefiro aprender desde a base, começando pelas coisas simples até chegar às mais complexas. Entretanto, como era de se esperar, colocar um botão em um formulário do Clarion# é muito simples. Inicialmente vamos ativar uma caixa de ferramentas (Toolbox) como janela flutuante, no lado esquerdo da nossa área de desenho. A partir do menu, escolha 9LVXDOL]DU!7RROER[. Quem já trabalhou com o Visual Stúdio 2005 já percebeu que “tem tudo a ver”. O Atalho para chamar esta caixa de ferramentas é a seqüência <Control Alt X>. A caixa de ferramentas é divida em seções. Na seção :LQGRZV )RUPV, escolha o controle Button, clicando sobre ele com o mouse. Em seguida arraste o botão para a janela do formulário, posicionando-o no lugar desejado e liberando o ponteiro do mouse. O botão se fixará no lugar desejado. Uma vez 8 3URJUDPDQGRHP&ODULRQ1(7 -XOLR&pVDU3HGURVR que o botão esteja posicionado no lugar desejado, você pode redimensioná-lo arrastando o mouse sobre os pontinhos que ficam em volta do botão (alças de redimensionamento). Você também pode mudar o botão de posição clicando com o botão esquerdo do mouse sobre ele, e arrastando para o lugar desejado. Para alterar qualquer uma das propriedades do botão, clique sobre ele para que fique selecionado e pressione a tecla <Control F4>. Naturalmente, como na grande maioria dos ambientes de desenvolvimento Windows, se você clicar com o botão direito do mouse sobre o botão, a caixa de propriedades também é apresentada. Como você pode ver, existem muitas propriedades associadas com o botão, mas nesta altura, a que queremos é aquela que muda o texto do botão. Localize a propriedade 7H[W e substitua o texto “button 1” pelo texto “Dar um alo e sair”. Sei que você está “doido” para escrever algum código, afinal, até agora as coisas foram todas na base do “automático”, mas, você é programador e seu negócio é codificar. Então vamos lá! Vamos adicionar alguma funcionalidade ao botão via código. Faça um duplo clique com o botão esquerdo do mouse sobre o botão. Automaticamente será gerado um evento 0DLQ)RUP%XWWRQB&OLFN. É claro que agora estamos trabalhando com um objeto button, com eventos, propriedades e métodos. Se o seu objetivo é trabalhar com o Clarion#, vá se acostumando com isso. Mais ou menos como se fosse um embed das versões anteriores do Clarion. Na realidade o nosso código vai exibir uma mensagem na tela, e em seguida o formulário será fechado. Como a nossa “aplicação” possui apenas um formulário, significa que a aplicação será fechada. 9 3URJUDPDQGRHP&ODULRQ1(7 -XOLR&pVDU3HGURVR Vamos ao nosso código. Como a nossa “aplicação” é uma aplicação Win32, vamos usar o comando Message para apresentar “alguma coisa na tela”. Logo abaixo do &RGH, entre as seguintes linhas de programação: 0HVVDJHµ$OR0XQGRGHVGHXPD-DQHOD&ODULRQ¶ 6(/)&ORVH Mais nada. NÃO TEM PONTO, NEM PONTO E VÍRGULA, NEM END. Só isso. Observou a figura? Mas assim fica muito fácil! Fica sim. Finalmente o Clarion tem esse recurso nativamente. Fazia muito tempo que eu queria este recurso no meu editor de códigos. Eu até tinha, mas não tinha a performance e a praticidade do que é apresentado pelo Clarion#. Elogios à parte, veja a imagem do código final. Observou a numeração das linhas, a organização estruturada do código? Emprestado do Sharp Develop, mas o que interessa é que está aí. Na verdade a Soft Velocity licenciou o Sharp Develop para adicionar ao código do Clarion#. A sentença Self.Close() , é um método construtor da classe 6\VWHP:LQGRZV)RUPV)RUP e uma vez que o nosso form 0DLQ)RUP é derivado dela, isso é tudo o que precisamos para fechar a janela. Pessoal que é fã do Legacy. Vamos aprender as Classes ABC. Vai ajudar muito! Na figura ao lado, nossa aplicação depois que foi compilada e executada. Para compilar, clique em %XLOG, no botão X ou pressione a seqüência <Control F5>. Quando o usuário clica no botão 2. a janela é fechada, como qualquer outra janela de mensagem. 10 3URJUDPDQGRHP&ODULRQ1(7 ([WHQV}HVGRV$UTXLYRV&ODULRQ1(7 -XOLR&pVDU3HGURVR Apresentamos um pequeno manual de referência sobre as extensões dos arquivos do Clarion .NET. $UTXLYRVFRPH[WHQVmRFOQ São os arquivos que contém os fontes do código de qualquer aplicação Clarion#. Algo como os arquivos .clw do Clarion 16 bit. $UTXLYRVFRPDH[WHQVmRGHVLJQHUFOQ São arquivos associados aos arquivos .cln que contém uma janela do tipo WinForm ou uma janela do tipo CompactForm (para aplicações PDA, smart phone, pocket pc, tablet pc, etc...). Qualquer controle que você adiciona ao seu form é GHFODUDGR para este arquivo pelo 'HVLJQHU. Por padrão você não deve editar este arquivo, pois modificações ou inclusões mal formadas podem impedir que você possa recarregar este arquivo para o 'HVLJQHU. Resumindo, se você mexer neste arquivo e fizer o que chamamos de “barbeiragem”, já era. Vai ter que refazer o arquivo pelo 'HVLJQHU. $UTXLYRVFRPDH[WHQVmRUHV[ Traduzimos como um arquivo de recursos da aplicação. Quando você adiciona imagens, ícones, semelhantes, o 'HVLJQHU cria este arquivo para armazená-las. É natural que possamos editar estes arquivos e “adicionar recursos” a ele como parte da nossa estratégia de desenvolvimento. Quando executamos um duplo clique sobre um arquivo com a extensão .resx será aberto um (GLWRU GH 5HFXUVRV, para que você possa editar um arquivo existente, adicionar novos recursos, alterar os existentes, ou excluir recursos. $UTXLYRVFRPDH[WHQVmRFQSURM Identifica os arquivos de projeto das aplicações Clarion .NET. $UTXLYRVFRPDH[WHQVmRVOQ Identifica um arquivo de soluções. Em Clarion.NET uma solução pode conter um ou mais projetos. 11