quarta-feira, 30 de março de 2016

Uncle Pete’s Corner – Embedding a HF Classic Table in Your EXE / Pdf



Fonte - thenextage.com/wordpress/

 
unclepetecorner
I recently needed to embed several PDF files in our executable so we didn’t have to ship them individually with application and keep track of updating them separately. The original plan was to try to do something similar to what pcSoft does with the DLLs in the executable, where they “self-extract” with the first run. However I ran into a few issues.
1. FExtractResource() looked promising but is only for Mobile
2. You can embed and use images (PNG, etc) easily. just referencing their names for using DLoadImage, but it doesn’t work with PDFs
3. Embedding the PDF in the EXE is easy, but since there is not a native function to extract them, it would require a couple of different Windows API calls to handle, which started making my head hurt.
I finally discovered that there is a little known feature of HF Classic files that lets you embed them in your executable and then the standard Hxxxx commands will access the files just like as if the HF was on disk.
So what I did was create a HF table that has a binary memo where I store the PDF. I then embed that HF table in my EXE. Then I use HReadxxxx commands to get the PDFs.
The last challenge was to use ShellExecute to display the PDF in acrobat etc. the PDF has to be on disk, so I created my own PDF viewer in WD, so that I could display the PDFs without ever writing them to disk.

I recently needed to embed several PDF files in our executable so we didn’t have to ship them individually with application and keep track of updating them separately. The original plan was to try to do something similar to what pcSoft does with the DLLs in the executable, where they “self-extract” with the first run. However I ran into a few issues.
1. FExtractResource() looked promising but is only for Mobile
2. You can embed and use images (PNG, etc) easily. just referencing their names for using DLoadImage, but it doesn’t work with PDFs
3. Embedding the PDF in the EXE is easy, but since there is not a native function to extract them, it would require a couple of different Windows API calls to handle, which started making my head hurt.
I finally discovered that there is a little known feature of HF Classic files that lets you embed them in your executable and then the standard Hxxxx commands will access the files just like as if the HF was on disk.
So what I did was create a HF table that has a binary memo where I store the PDF. I then embed that HF table in my EXE. Then I use HReadxxxx commands to get the PDFs.
The last challenge was to use ShellExecute to display the PDF in acrobat etc. the PDF has to be on disk, so I created my own PDF viewer in WD, so that I could display the PDFs without ever writing them to disk.


So let’s take a look at the demo application I put together for all of this.
2016-03-17_1910
This is  a simple screen that displays a browse of our HF table that has the binary memo in it. The first two buttons allow you to add either a file, or an entire directory of PDFs to the HF table. This includes storing the PDF in a binary memo field. The Delete button is fairly self explanatory.  The refresh button updates the binary memo using the current PDF located in the original location recorded when the file was first added. This is useful for updating the HF table after the PDFs have been updated. As I mentioned this system was created for distributing PDF help files with an executable, so with each release of the executable some of the help files are updated to cover new features, so its a simple matter to run the refresh button before generating the executable so that the latest PDFs will be included. Finally the view button is viewing the PDF using a “native” PDF viewer I created. Note: this viewer is actually displaying the PDF stored in the HF binary memo, not the physical file on the drive.
The layout for the HF table is very simple.
2016-03-17_1916
First there is a autonumbered id field, which all your tables should have after hearing Andy and I harp on that for years! Then the filename, and location are in separate fields. You could store them as one field if desired, but in my production application we are referring to the PDFs by their name so I need it as an independent field.  And last is a Binary memo field to store the actual contents of the PDF file. This is a HF Classic table.
Now for the code. First a bit of project code.
2016-03-17_1922
If you read the help (which I KNOW you do!), you will discover that by default WinDev looks for HF classic files embed in the EXE first and then on disk, but for the sake of the developer that comes after me, I wanted to make this a little more obvious. So if we are in TestMode(), the Green Go button in the IDE, then I want to use the HF from the disk. That means that when I run via the GO mode I am updating the physical HF table. In my production application I have slightly different logic to handle this as I have a small help application that is only on the developers machine for updating the HF table.
The real magic happens when we are not in test mode, the hWDL constant says to look the the HF table embed in the library either your a WDL file or the EXE file. As mentioned this is actually the default access mode for HF classic tables, and if it doesn’t find it in embed it will search for it on the disk, so you have to be careful that you have really accomplished what you think you have when testing. We will discuss that more latter.
Let’s look at adding PDFs to the HF table. The code behind the Add Directory looks like this. The code behind Add a file is just a simpler version of this that doesn’t need to step through a directory so we will only look at the Add Directory code.
2016-03-17_1930
Line 1 turns on the hourglass, in case this is a large directory that could take a few moments to process. Line 2 opens the standard windows dialog to select a directory. If a directory was selected the real work begins with line 4 which uses the fListFile function to get a carriage return separated list of all PDF files in the directory. If there were PDF files in the directory the Line 6 begins looping through the list and adding them to the HF table. If you haven’t seen a For Loop like this before spend a few minutes studying it and reading the help files as it can be very handy. It takes a string of values separated by a character in this case a carriage return (CR) it places them into a single string (tmpFullFileName) one at a time with each pass of the Loop.
Line 8 and 9 use a few handy string functions from WX to separate the FileName from the Path.
Line 10 checks to see if there is already a record with this file name and if so it updates the record in lines 11-13, otherwise a new record is added via lines 15-18. The only line that we should really need to take a look at in that code is line 12 and 17. What they are doing is using another great WX function (fLoadBuffer) to load the physical PDF into the binary memo. This could be any physical file, so you could use this to store word docs, other applications, whatever you might need store inside your HF table.
When the Loop as completed Line 23 refreshes the table display, then we give the user a message to let them know it is done and turn off the hour glass.
At this point we have our physical HF table with the PDF stored in the binary memo. Before we take a look at my PDF viewer, lets look at how to embed this HF table in the EXE we are going to make.
I am sure there are several ways to do this via the IDE, but I tend to use the Project Explorer for most things. Notice in the project explorer there is a “Other” folder, anything that we add to this folder will be incorporated into our executable as a resource.
2016-03-17_1943
This opens the Windows file picker and lets you select files to add, and you can see in this screen shot that I have selected the 3 files that make up our HF table, the actual file (FIC), the Index (NDX) , and the Memo (MMO).
2016-03-17_1945
Afterwards the files are shown in my project explorer
2016-03-17_1948
Now we can generate the EXE
2016-03-17_1949
This takes you through several screens, I will assume you have made a WinDev executable before, so I will only mention a few items from this screens. First notice on the content of the EXE our HF files are shown.
2016-03-17_1952
For simplicity of this demonstration, and because I have UAC turned off on my system, I will set the directory of the data files to reside with the executable.
2016-03-17_1953
Also to make this demonstration easier, I will include the DLLs in the EXE
2016-03-17_1955
After a few more screens we have an executable. And if you run the executable and View one of the PDFs it will be displaying the PDF from the Binary Memo from the HF table that is embed in the EXE. If you don’t believe me and want to verify this, you can move the EXE to a different directory and even delete the HF table and the PDFs, and the EXE will still perform fine and display the records.
NOTE: a “downside” to this is that the HF tables that are included in your EXE are read only, you can not update them. Which when you think about it makes a lot of sense, as it would be fairly dangerous writing new data inside an EXE file while you are running it!!! This does provide yet another way to tell that we are actually using the embed HF table, if we try to add a file, we will get an error like this
2016-03-17_1959
Which again tells us the file is in read only mode because it is embed.
So that is all there is to embedding a HF table inside your Executable, and I could end the article now, but you know I always have to give you some bonus material. In our production app we of course wanted the user to be able to view the PDF files, originally when we were distributing physical PDF files we would use ShellExecute to accomplish that using whatever PDF viewer they had installed, the only problem with that is the files have to physically exists on the drive, which sort of defeats the purpose of our cool new ability. So I decide to create my own PDF viewer to display the PDF from the Binary memo field without ever writing the PDF to disk.
The code behind the view button is pretty simple. If a record is selected in the table, it performs an HReadSeekFirst to get the record and then calls my PDFViewer window pass the binary memo as a parameter.
2016-03-17_2007
The viewer is a simple window with a toolbar of useful buttons, and an image control.
2016-03-17_2008
The display mode of the Image is Homothetic without enlargement and the Anchoring is set to expand both by width and height.
2016-03-17_2010
2016-03-17_2011
The initialization code of the window, moves the passed binary memo into the Image control, and sets the zoom mode to fit by width.
2016-03-17_2013
The InitTittleBarandPageNumber procedure set the caption to the display both the current page # and the total number of pages. It also has some logic to enable/disable the page up / down buttons based on what page is being displayed. This is done as a procedure so that it can be called from all of the controls in the toolbar.
2016-03-17_2014
If you were expecting some fancy, complicated image/PDF manipulation code next then you haven’t been paying attention to me going on and on about how easy WX makes my life!!
Here is the code from the 3 controls that change which page is displayed. The Page up and down buttons and the page number edit control. As you see all they do is change the PageNumber property of the image control and then call the InitTittleBarandPageNumber function to change the caption and enable/disable the page up/down buttons.
2016-03-17_2018
So there must be some complicated code behind the zoom buttons at least, right? WRONG!!! If it seems hard in WX you are probably doing it wrong!!! Here is the code for all five zoom buttons.
2016-03-17_2022
Again all they are doing is changing the value of the Zoom property, it can’t get much easier than that can it?
And that is the all of the code of my “native” PDF viewer. Nothing fancy, but it sure is handy!.
Hopefully this has inspired you and got you thinking about how you could use this technique in your projects. Along with distributing PDF help files like we are doing, some thoughts that come to mind is perhaps distributing images that you want somewhat protected and don’t want the user to have direct access to the image files. You could also create a electronic catalog of products, that could be distributed as a single EXE file, even if your actually catalog uses several HF tables. Perhaps this could be used for some type of high end individual licensing of executable prior to them being shipped. And I am sure there are even more imaginative ways to use this technique, so be sure to come back and let us know what you used it for!!!
And as a final bonus, here is a link where you can download this entire project! http://thenextage.com/opensource/PDFHelp.zip
Uncle Pete’s Corner is webinar series on all things WX, to watch the watch the Uncle Pete’s corner webinar that is the companion to this article, and many other WX related webinars go to the WinDev US YouTube Channel and be sure to also join the WxLive – US Communityon Google+ to get notices about upcoming webinars. On the Google+ community you will find a active group developers discussing all things WX.

Pete Halsted - NextAge
Pete HalstedPete Halsted has been developing custom business management applications for small to medium-sized companies, since 1987. His focus is on client/server, distributed and cloud based development utilizing WinDev, WebDev, and PostgreSQL. Pete is a Clarion Certified Developer with 25 years in the industry, has spoken at several Developers conferences, and provided Developer training and mentoring on a one on one basis. He has served companies both large and small as Project Manager, Lead Architect, Lead Developer and Chief Technology Officer. Pete is currently living the beach life in Biloxi, MS with his wife and dog, enjoying the freedom provided by cloud based technologies. Pete is available for Project Management, Custom Design, Development, Training, and Speaking assignments. For more information please visit www.thenextage.com or follow his blog at www.thenextage.com/wordpress






Webservices -- a quick and easy way to develop Session 3.



Video No Youtube - Falta 50 Horas




Youtube.com


so, where from here, we have created the webservice, setup procedures to call , setup your return structures and tested the results.
Now, we need to use the information in an application, adding and changing records/ updating remote information.

We will put together an android application to do just that. we will build the basic screens and setup the Android to consume
the webservice and show data/ add and update remote information.

yes, I know it is April Fools day, but this is no joke..have a great day!!!

assim, onde a partir daqui, nós criamos o serviço web, procedimentos de configuração para ligar, configurar suas estruturas de retorno e testados os resultados.
Agora, precisamos usar as informações em um aplicativo, adicionar e alterar registros / atualização de informações remoto.
Vamos montar uma aplicação android para fazer exatamente isso. vamos construir as telas básicas e de instalação do Android para consumir
os dados webservice e mostrar / adicionar e atualizar informações remoto.
sim, eu sei que é April Fools Day, mas isso não é joke..have um grande dia !!!





WinDev21 - Curso - 236 - ..InputEnabled - Permitir ou Não Digitação






Video youtube


http://doc.windev.com/en-US/?1000019649&name=InputEnabled
http://doc.pcsoft.fr/fr-FR/?1000019649&name=ensaisie_propriete

Nessa Aula vou mostrar como fazer para permitir ou não digitação campo

This class will show you how to allow or disallow typing field

Cette classe va vous montrer comment autoriser ou interdire champ de saisie

//Permitir Digitação
EDT_Base_Faturamento..InputEnabled=True
EDT_Base_Faturamento..Color=Argent
//Não permitir Digitação
EDT_Base_Faturamento..InputEnabled=False
EDT_Base_Faturamento..Color=Bronze

//Frances
//Permitir Digitação
EDT_Base_Faturamento..EnSaisie=Vrai
EDT_Base_Faturamento..Couleur=Argent
//Não permitir Digitação
EDT_Base_Faturamento..EnSaisie=Faux
EDT_Base_Faturamento..Couleur=Bronze



















Blog - Curso Iniciante /1/... - Inicio
Blog - Curso Iniciante /2/... - Menu
Blog - Curso Iniciante /3/... Campos  
Blog - Curso Iniciante /4/... - Duvida/Style
Blog - Curso Iniciante /5/... - Menu
Blog - Curso Iniciante /6/... - Menu 2
Blog - Curso Iniciante /7/... - If / ShellExecute  
Blog - Curso Iniciante /8/... - ReturntoCapture 
Blog - Curso Iniciante /9/... - Info
Blog - Curso Iniciante /10/.. - DateSys - Now
Blog - Curso Iniciante /11/... - Criando Analise Agenda 
Blog - Curso Iniciante /12/... - Menu , Agenda
Blog - curso Iniciante /13/... - HreadSeek  
Blog - curso Iniciante /14/... - For Each - Percorrer Tabela 
Blog - Curso Iniciante /15/... - Query Consultas
Blog - Curso Iniciante /16/... - Tabela Relatorio
Blog - Curso Iniciante /17/... - Relatorio Criando 
Blog - Curso Iniciante /18/... - Relatorio Manual 
Blog - Curso Iniciante /19/.. - Menu Popup
Blog - Curso Iniciante /20/... - Data - Separar dia mes e ano
Blog - Curso Iniciante /21/... - Time - Separar hora/min/seg 
Blog - Curso Iniciante /22/... - Operadores
Blog - Curso Iniciante /23/... - String Igualdade 
Blog - Curso Iniciante /24/... - Switch / Case
Blog - Curso Iniciante /25/... - LOOP 
Blog - Curso Iniciante /26/... - FOR
Blog - Curso /27/... - Extern 
Blog - Curso /28/... - My 
Blog - Curso /29/... Procedures
Blog - Curso /30/... HSave  .. - Inclui Um Registro
Blog - Curso /31/... - Hsave - Altera um Registro
Blog - Curso /32/... - HDelete - Exclui Registro(s)
Blog - Curso /33/... - Relatorio
Blog - Curso /34/... - Dialog 
Blog - Curso /35/... - Input
blog - Curso /36/... - Combox 
Blog - Curso /37/... Combox Tabela 
Blog - Curso /38/... List Box
Blog - Curso /39/... - Analise Agenda/Ligacoes
Blog - Curso /40/... - Rad - Tabela Relacionada Agenda/Ligações
Blog - Curso /41/... - Tabela Relacionada Manual
Blog - Curso /42/... - Dica Tela/Code Separado
Blog - Curso /43/... - Mapa /1..
Blog - Curso /44/... - Mapa /2.. Imprime
Blog - Curso /45/... - Fechar Programa - EndPrograma()
Blog - Curso /46/... - Camera Habilita/Desabilita 
Blog - Curso /47/... - Tabela e Formulario - Configurar Cnpj
Blog - Curso /48/... - Camera - Tirar Uma Foto e Gravar Imagem
Blog - Curso /49/... - Reports e Queies - Instalacao
Blog - Curso /50/... Reports e Queies - Relatorio - Como Gerar 
Blog - Curso /51/... Pedidos/Orcamento 1/... Analise
Blog - Curso /52/... Pedidos/Orcamento 2/.. Analise Windev
Blog - Curso /53/... Pedidos/Orcamento 3/... Relacionamento
Blog - Curso /54/... Pedidos Orcamento 4/... Rad
Blog - Curso /55/... Pegar Quantidade e Codigo - Separador * 
Blog - Curso /56/... Pegar Retorno de Uma Tabela e colocar Campo 
Blog - Curso /57/... Xml - Ler Conteudo Tags e Importar Pedido
Blog - Curso /58/... Ini - Ler e Gravar 
Blog - Curso /59/... Pedidos Orcamento 5/... Inicio Digitacao Pedido
Blog - Curso /60/... Pedidos Orcamento 6/... Digitando Iten Pedido
Blog - Curso /61/... Pedidos orcamento 7/... Gravando Pedido e Itens   
Blog - Curso /62/... Pedido Orcamento 8/... Consulta cliente   
Blog - Curso /63/... Tabela - Ancorar Coluna
Blog - Curso /64/... Tabela - Esconder ou Mostrar Coluna 
Blog - Curso /65/... RSS 
Blog - Curso /66/... Pedido Orcamento 9/... Consulta Material
Blog - Curso /67/... Tabelas, Control F Pesquisa Toda Tabela /Contenha/Cor Fundo
Blog - Curso /68/... Pedidos Orcamento 10/... Planos - Condições Pagamento 
Blog - Curso /69/... - Calculadora dentro do Campo Valor 
Blog - Curso /70/... Mapa - Itinerario
Blog - Curso /71/... Tabela - Alterar Nome Coluna
Blog - Curso /72/... Botal Fazer Menu popup 
Blog - Curso /73/... Debug - Como Usar
Blog - Curso /74/... Tabela Alinhar Coluna Lado Esquerdo 
Blog - Curso /75/... Pedidos Orcamento 11/... Quantidade /Mascara/Mudar
Blog - Curso /76/... YesNo - Pergunta Se Deseja Eliminar 
Blog - Curso /77/... Select - Case - Query
Blog - Curso /78/... Pedido/Orcamento 12/... - Analise Cond.Pagto
Blog - Curso /79/... Campos - Como Alterar configuracao via Codigo
Blog - Curso /80/... Pedido/Orcamento 13/... - Tabela,Gerar Condicoes/Parcelas
Blog - Curso /81/... Configuracao Trocar Exe para Wdl ou outro 
Blog - Curso /82/... Utilitarios - PopUp - Aumento Precos Materiais 
Blog - Curso /83/... TableEnableFilter - Digita Nome e Filtra 
Blog - Curso /84/... Dica Copiar Colar Texto Ou Imagen Pdf
Blog - Curso /85/... SElect Como Usar Wizard 
Blog - Curso /86/... Radio - Colocar tudo Mesma Linha
Blog - Curso /87/... Procedure - Melhoria Versao20 - Parametros
Blog - Curso /88/... Style - Tabela Como Alterar
Blog - Curso /89/... Style - Tab Como Alterar
Blog - Curso /90/... Pedido/Orcamento 14/... - Style - Mudando Botao Procura
Blog - Curso /91/... - Pedido/Orcamento 15/... - Pedido - Totalizar Colunas Tabela
Blog - Curso /92/... Backup - Hyperfile 
Blog - Curso /93/... Debug - STOP 
Blog - Curso /94/... Tabela - Alterar Cor da Coluna - Texto
Blog - Curso /95/... Select Max - Pegar o Numero Proxima Nota 
Blog - Curso /96/... Tabela Divisao de Muitas Colunas 
Blog - Curso /97/... Analise - Configurar Campo para Vir Automatico Combox 
Blog - Curso /98/... Tabela - Double click - Entrar direto Alteração do Cliente 
Blog - Curso /99/... Tabela MultiSeleção
Blog - Curso/100/... Tabela - TableMoveLine - Move Linha Baixou ou Cima
Blog - Curso/101/... TableAjust - Ajustar Tabela com Colunas
Blog - Curso/102/... TableSort - Ordem nas Colunas
Blog - Curso/103/... Tabelas Somar Manualmente rowTotal 
Blog - Curso/104/... Pedidos/Orcamento 16/... Melhorando Visual Incluir Pedido 
Blog - Curso/105/... Pedidos 17/... Digitacao Iten e Gera Tabela
Blog - Curso/106/... Fazer Tecla Atalho Direto no Cliente
Blog - Curso/107/... Como Fazer para nao passar Campo
Blog - Curso/108/... Pedido 18/... Menu Inicial Ajustando Tela
Blog - Curso/109/... Select Color - Como Selecionar uma Cor 
Blog - Curso/110/... SelectionColor - Mudar cor Seleção Table/Combox/Listbox
Blog - Curso/111/... Stc - Como fazer como se fosses uma ajuda para dar dica Cliente 
Blog - Curso/112/... ListBox - Mostrar como se fosse ajuda e selecionar 
Blog - Curso/113/... Close - Window - Como mandar Varios Retornos 
Blog - Curso/114/... Pedido 19/... Salvar Digitacao do pedido
Blog - Curso/115/... Converter Code de Frances para Ingles ou Contrario 
Blog - Curso/116/... Pedido 20/... Recuperar Pedido Digitado 
Blog - Curso/117/... Pedido 21/... Gravar Pedido/Tabela pedidos e itens pedido 
Blog - Curso/118/... Como Nao Mudar Nome Variavel Windev 
Blog - Curso/119/... Pedido 22/... Calcular Titulos no Pedido 
Blog - Curso/120/... Pedido 23/... Pedido - Calculo condições 
Blog - Curso/121/... Faltou Luz e Recuperei uma Window do Projeto Windev 
Blog - Curso/122/... Pedido 24/... Calcular Titulo Modelo2  
Blog - Curso/123/... Pedido 25/... Tabela - Criando Duplicata Receber
Blog - Curso/124/... Pedido 26/... Duplicata Linkando com Pedido e cliente 
Blog - Curso/125/... Pedido 27/... Criando Tabela Contas Receber 
Blog - Curso/126/... Pedido 28/... Gravando Duplicatas ao Gerar Pedido
Blog - Curso/127/... ExecuteProcess 
Blog - Curso/128/... Code - Marcar Pontos - MARK 
Blog - Curso/129/... Pedido 29/... Pedido - Iniciando Relatorio 
Blog - Curso/130/... Menu Ribbon - Alterar Cor Seleção 
Blog - Curso/131/... Pedido 30/... Pedido Gerar Tabela Relatorio
Blog - Curso/132/... Pedido 31 - Listar Pedido 
Blog - Curso/133/... Pedido 32 - Windows Mdi
Blog - Curso/134/... Code Bricks
Blog - Curso/135/... Menu Ribbon 
Blog - Curso/136/... Dicas
Blog - Curso/137/... Dicas de Analise 
Blog - Curso/138/... Relatorio Filtrar Dados-Ex.Material Saldo
Blog - Curso/139/... Duas Tabelas - Arrastar de uma Tabela Para Outra Os Dados
Blog - Curso/140/... Code - Procedures - Como diferenciar com  Cores
Blog - Curso/141/... Wdk - Como Criar
Blog - Curso/142/... Internetconnection - Verificar Conexão
Blog - Curso/143/... TableEnableFilter
Blog - Curso/144/... ChaveComposta
Blog - Curso/145/... Detais - Mantatory Input - Campo Obrigatorio
Blog - Curso/146/... Datas - pegar String Nfe e Jogar no Date 
Blog - Curso/147/... Tabela Asc, Fazer em WinDev 
Blog - Curso/148/... SuperControle 
Blog - Curso/149/... Calendario
Blog - Curso/150/... Xml - Como Montar sem Comandos 
Blog - Curso/151/... Tabela Como Tirar Colunas 
Blog - Curso/152/... Tab - SideBar 
Blog - Curso/153/... String Para Numero -> VAL 
Blog - Curso/154/... Internet - HTML 
Blog - Curso/155/... Descontos Nos itens - nfe - Nfce
Blog - Curso/156/... Wdm - Mensagem de Ingles Para Portugues WinDev 
Blog - Curso/157/... Tabela Somar Valores com Condição
Blog - Curso/158/... Tabela Container
Blog - Curso/159/... Desabilitar Campo
Blog - Curso/160/... Mudar Cor do botao
Blog - Curso/161/... Window Mdi - Focus goin-
Blog - Curso/162/... Botao Seta Abaixo, Menu
Blog - Curso/163/... Separar Dia Mes Ano Na Data Arquivo Remessa Banco
Blog - Curso/164/... WinDev - Dashboard / Window Interna
Blog - Curso/165/... WinDev - Importar Ncm Site Olho Imposto 
Blog - Curso/166/... WinDev - Combox Fazer Manual e Selecionar Banco
Blog - Curso/167/... WinDev Tabela Coluna Check Style 
Blog - Curso/168/... Criar Varios Titulos Automatico -  Duplicatas
Blog - Curso/169/... HFilter - Combox Bancos Filtar por Empresa 
Blog - Curso/170/... Table Pai e Filho - Grupo e Materiais 
Blog - Curso/171/.. Email - Como Fazer Componente e Usar 
Blog - Curso/172/... Email - Componente - Anexo - Array 
Blog - Curso/173/... Boleto Pegar Retorno Banco
Blog - Curso/174/... Sistema Bandeja no Windows - SysIconAdd 
Blog - Curso/175/... Técnica Conversao Dados - Qual Versão no Cliente 
Blog - Curso/176/... TwainToJppeg - Digitalizar Documento 
Blog - Curso/177/ Backup Sistema 
Blog - Curso/178/... FOR ALL - PERCORRER TABELA 
Blog - Curso/179/... Hread -> Percorrer Arquivo Frente e para Traz 
Blog - Curso/180/... Hread -> Colocar No Dicionario - SuperControle
Blog - Curso/181/... Registro - Code Briques
Blog - Curso/182/... Registro Adicionar Manualmente
Blog - Curso/183/... Alterar Registro Manualmente
Blog - Curso/184/... Excluir Registro Manualmente
Blog - Curso/185/... Trocar Imagens automatico WinDev 
Blog - Curso/186/... RestartProgram - Reinizaliza  
Blog - Curso/187/... Limpar Lixeira - Recyclebinclear
Blog - Curso/188/... ExecuteProcess - Forcar Execução botao 
Blog - Curso/189/... Diretorio e Drive Atual Mostrar 
Blog - Curso/190/... Copiar Style 
Blog - Curso/191/...  Nao Executar Mais 1 Vez Programa -> ExeRunning
Blog - Curso/192/...  Processos Windows Mostrar - ExeListProcess - Parte 1/...
Blog - Curso/193/... processos Windows - Ver Se existe - Terminar Servico - Parte 2/Final
Blog - Curso/194/... Ftp - Atualizar Sistema Cliente - Parte 1/... 
Blog - Curso/195/... Ftp - Atualizar Sistema Cliente - Parte 2/... 
Blog - Curso/196/... 174/3 Bandeja Windows - tirado da Barra de Tarefas 
Blog - Curso/197/... Ftp - Atualizar Sistema Cliente - Parte 3/... 
Blog - Curso/198/... Ftp - Ajustes Parte 4/... 
Blog - Curso/199/... Ftp - Conectar Parte 5/... 
Blog - Curso/200/... Ftp - Criando Tabela Local e Remoto Parte 6/... 
Blog - Curso/201/... Ftp - Mostrar Arquivos Na Tabela Local - Parte 7/...
Blog - Curso/202/... Ftp - Mostrar Arquivos Na Tabela Remoto - Parte 8/... 
Blog - Curso/203/... Gauge - Progresso - Barra de Status
Blog - Curso/204/... Barra de Progresso Visual
Blog - Curso/205/... Ftp - Ajustes - Parte 9/... 
Blog - Curso/206/... Ftp - Transfrindo Servidor - FtpSend - Parte 10/... 
Blog - Curso/207/... Ftp - Transferindo Para Local - FtpGet - Parte 11/... 
Blog - Curso/208/... Ftp - Fechando Conexao - FtpDisconnect - Parte 12/... 
Blog - Curso/209/... Zip - Compactar Arquivo - ZipAddFile / ZipCreate 
Blog - Curso/210/... Zip - Descompactar Arquivo - zipOpen zipExtractFile 
Blog - Curso/211/... Table - Ajustar Altura e y da Tabela Manualmente 
Blog - Curso/212/... Ftp - Criando Diretorio Servidor - FTPMAKEDIR - Parte 13/... 
Blog - Curso/213/... Ftp - Eliminando Diretorio Servidor - FTPRemoveDir - Parte 14 
Blog - Curso/214/... Excel - Ler e Importar Para Tabela 
Blog - Curso/215/... ListDll -> Listar Dll do programa 
Blog - Curso/216/... ExeListeDll - > Lista dll dos processos 
Blog - Curso/217/... Combox - SqlCode - Cidade 
Blog - Curso/218/... String - upper Maisculo - No Accent Sem Acento 
Blog - Curso/219/... ExtractString - Separa Antes de depois FROM 
Blog - Curso/220/... Como Achar Proximo Cliente 
Blog - Curso/221/... Colocar Codigo Cliente no CODEBRICKS 
Blog - Curso/222/... Placa Veiculo - LLL9999
Blog - Curso/223/... Remover Acentos NoAccent 
Blog - Curso/224/... Cep - Importar Cep  
Blog - Curso/225/... Cep WebService - 
Blog - Curso/226/... Analiza Performe
Blog - Curso/227/... Botao Liga/Desliga - Dicionario
Blog - Curso/228/... Informações do Projeto / Componente /Versão
Blog - Curso/229/... Result - Pegar Mais de um Valor 
Blog - Curso/230/... Calcular Dia Da Semana da Data, Somar ou Diminuir Dia 
Blog - Curso/231/... Chave Composta Municipio 
Blog - Curso/232/... Tab - Pane - Mostrar ou Esconder
Blog - Curso/233/... Window - Fechar ou Não - X
Blog - Curso/234/... Valores Arrendondar - Round
Blog - Curso/235/... Edt Caption Cima
Blog - Curso/236/... InputEnabled - Permitir ou Não Digitação
Blog - Curso/237/... Dica - Ordenar Campos Tela
Blog - Curso/238/... Dica - Static - Fazer Caixa

Teste

Teste
teste