Clipper On Line • Ver Tópico - Listar Arquivos em uma Grid

Listar Arquivos em uma Grid

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Listar Arquivos em uma Grid

Mensagempor guanabara » 17 Mar 2013 11:47

Bom dia a todos, estou aqui de novo com uma nova dúvida, tenho uma pasta no seguinte caminho C:\imagens\tif e dentro dela milhares de arquivos com a extensão *.TIF, gostaria de um comando que listasse todos esses arquivos em uma grid e conforme eu selecionasse os itens dessa grid me mostrasse a foto selecionada... Tentei o Adir só que não consegui colocar o resultado dele na grid, segue exemplo do formulário que ainda não funciona.
Imagem.jpg
guanabara
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 49
Data de registro: 03 Mar 2013 17:33
Cidade/Estado: Aracatuba-SP
Curtiu: 35 vezes
Mens.Curtidas: 2 vezes

Listar Arquivos em uma Grid

Mensagempor Pablo César » 17 Mar 2013 12:24

guanabara escreveu:tenho uma pasta no seguinte caminho C:\imagens\tif e dentro dela milhares de arquivos com a extensão *.TIF, gostaria de um comando que listasse todos esses arquivos em uma grid e conforme eu selecionasse os itens dessa grid me mostrasse a foto selecionada...
Comando só ? Isso parece mágica... rs (desculpe, parece aqueles clientes resumem com um "programinha" tudo o que eles querem... rs). Isso é relativamente fácil. Você precisará do ADIR como você mesmo mencionou. Adicione os nomes no grid e depois faça uma função no ON CHANGE do grid, que a medida mudar de arquivo você apena visualize ao lado.

Aqui tem um bom exemplo: C:\MiniGUI\SAMPLES\Advanced\FreeImage

E outro exemplo, mas elaborado é este: http://hmgforum.com/viewtopic.php?p=6734#p6734
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Listar Arquivos em uma Grid

Mensagempor alxsts » 17 Mar 2013 12:42

Olá!

A função ADir() é obsoleta desde os tempos do Clipper. Recomenda-se utilizar Directory():
#include "directry.ch"
PROCEDURE FileList()
  LOCAL aFList := DIRECTORY( "C:\Harbour\*.*" )
  LOCAL a1File

  FOR EACH a1File IN aFList
     ? SPACE( 4 ),;
       PAD( a1File[ F_NAME ], 13 ),; /* File name */
       TRAN( a1File[ F_SIZE ], "999,999,999" ),; /* File size */
       a1File[ F_DATE ],; /* File date */
       a1File[ F_TIME ],; /* File time */
       a1File[ F_ATTR ] /* File attribute */
NEXT

RETURN // FileList()
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2945
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Listar Arquivos em uma Grid

Mensagempor Pablo César » 17 Mar 2013 12:48

Ahhh esqueci de complementar: coloque o path completo para abertura das imagens, senão não vai encontrá-las...
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Listar Arquivos em uma Grid (HMG)

Mensagempor guanabara » 17 Mar 2013 15:38

Boa tarde, desculpe em dizer "gostaria de um comando" , não quis dizer como se fosse "só" um comando, sei que são vários comandos e funções para chegar onde quero, foi força de expressão. Sempre esqueço de dizer que é pra HMG mas vou verificar pois instalei o Minigui também, estou algum tempo pesquisando sobre isso e não localizei nada. Obrigado pela força de todas num domingão deste....

Pablo a solução pelo C:\MiniGUI\SAMPLES\Advanced\FreeImage não consegui rodar, é muito complexo pra mim, não consegui compilar... a solução pelo site: http://hmgforum.com/viewtopic.php?p=6734#p6734 o link para o download está quebrado....

alxsts, iseri o código, não deu erro algum mas também não me retornou informação nenhuma, como faço, tentei inserir ITEMS FileList() na grid, só que a grid ainda permanece vazia... Como faço....
guanabara
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 49
Data de registro: 03 Mar 2013 17:33
Cidade/Estado: Aracatuba-SP
Curtiu: 35 vezes
Mens.Curtidas: 2 vezes

Listar Arquivos em uma Grid

Mensagempor Pablo César » 17 Mar 2013 16:42

Oi Wellington,

Fiz um tutorial passo a passo de como fazer um exemplo simples e creio que vai atender as suas expectativas. Na verdade é um segundo vídeo, pois o primeiro eu não tinha disponíveis os arquivo tif e o cursor no vídeo não estava aparecendo, mas fiz um roteiro e regravei para ser apresentado aqui (acho que um dos primeiros vídeo tutoriais utilizando a IDE da HMG).

O vídeo encontra-se neste tópico

Espero que tenham gostado, agora é com você, digitar tudo o que tem no vídeo, acho que é pouca coisa graças a IDE que faz a maior parte.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Listar Arquivos em uma Grid

Mensagempor guanabara » 17 Mar 2013 18:10

Que legal :{ , não achei o vídeo do tutorial, não está anexo, fica aonde.....
guanabara
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 49
Data de registro: 03 Mar 2013 17:33
Cidade/Estado: Aracatuba-SP
Curtiu: 35 vezes
Mens.Curtidas: 2 vezes

Listar Arquivos em uma Grid

Mensagempor Pablo César » 17 Mar 2013 18:37

Veja agora na minha mensagem anterior, o link do vídeo. Talvez tenha que baixar o vídeo pela questão da qualidade no 4Shared.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Listar Arquivos em uma Grid

Mensagempor guanabara » 17 Mar 2013 18:46

Já to baixando 20 minutos de ensinamento, sabedoria e esquema tático de programação via HMG IDE... Ancioso..... heheheheh...... X:) Eh carroça de Wirelless, Agora sim, sessão das 10...
guanabara
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 49
Data de registro: 03 Mar 2013 17:33
Cidade/Estado: Aracatuba-SP
Curtiu: 35 vezes
Mens.Curtidas: 2 vezes

Listar Arquivos em uma Grid

Mensagempor Pablo César » 17 Mar 2013 19:50

Lamento pelo inconveniente, mas com o Sr. Toledo iremos buscar uma forma mais prática de visualizar os vídeos.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Listar Arquivos em uma Grid

Mensagempor guanabara » 17 Mar 2013 21:05

Que massa esse vídeo, adorei, nunca havia visto alguém programar, ao vivo, aprendi muita coisa que não sabia, parabéns, não entendi "Lamento pelo inconveniente....", o que quis dizer....
guanabara
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 49
Data de registro: 03 Mar 2013 17:33
Cidade/Estado: Aracatuba-SP
Curtiu: 35 vezes
Mens.Curtidas: 2 vezes

Listar Arquivos em uma Grid

Mensagempor Pablo César » 17 Mar 2013 21:31

Quê bom que você gostou Wellington. Sobre o inconveniente, referia-me a ter que baixar o vídeo ao invés de poder rodá-lo.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Listar Arquivos em uma Grid

Mensagempor guanabara » 17 Mar 2013 22:43

Que nada, poderia demorar a noite toda que eu iria aguardar, demora porque minha net é muito lenta, ela é via Wirelless que vem de algum prédio do centro da cidade, aqui na periferia de Araçatuba-SP não tem Speedy (ADSL da Vivo) e nem NET (Internet a Cabo), vou descobrir onde o Sr. Toledo mora (meu conterrâneo) e vou passar por lá uma tarde inteira, daí não fico mais te perturbando... hehehehe... Lá tem speedy de no minimo 10MB e conhecimento farto para concluir meus programinhas doidos... heheheheh...
guanabara
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 49
Data de registro: 03 Mar 2013 17:33
Cidade/Estado: Aracatuba-SP
Curtiu: 35 vezes
Mens.Curtidas: 2 vezes

Listar Arquivos em uma Grid

Mensagempor Pablo César » 18 Mar 2013 10:50

Agora só falta saber se você conseguiu o código pelo vídeo que apresentei. Era isso mesmo ?
Você até pode ampliar com maiores recursos, ao invés de limitar o tipo de arquivo tif para outros do tipo: jpg, bmp, pdf, texto enfim. Para cada extensão utilizar uma forma de abrir ou visualizar. Mas também terá que mudar a pasta onde os arquivos se encontram. Outra coisa que fiquei em dúvida se o tamanho do elemento IMAGE foi suficiente, senão ficou muito pequeno. Daí você pode ampliar a janela e consequentemente o tamanho do IMAGE.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Listar Arquivos em uma Grid

Mensagempor guanabara » 18 Mar 2013 14:29

Pablo César escreveu:Agora só falta saber se você conseguiu o código pelo vídeo que apresentei. Era isso mesmo ?

Baixei, assisti o vídeo e fui fazendo igualzinho você fez, era mesmo o que eu queria sim. Já estou editando as fotos..

Pablo César escreveu:Você até pode ampliar com maiores recursos, ao invés de limitar o tipo de arquivo tif para outros do tipo: jpg, bmp, pdf, texto enfim. Para cada extensão utilizar uma forma de abrir ou visualizar. Mas também terá que mudar a pasta onde os arquivos se encontram.

Por enquanto meu trabalho se baseia em arquivos *.Tif, mas entendi como mudar para visualizar arquivos de imagem com outra extensão.

Pablo César escreveu: Outra coisa que fiquei em dúvida se o tamanho do elemento IMAGE foi suficiente, senão ficou muito pequeno. Daí você pode ampliar a janela e consequentemente o tamanho do IMAGE.

Já alterei as dimensões da imagem e consigo visualiza-la perfeitamente.

Outra coisa, inseri um textbox para que eu possa digitar um novo nome para o arquivo e que apos o enter o mesmo renomei-e e mova para uma pasta com o mesmo nome, tá funcionando perfeitamente, só que quando chega mais o menos em 150 registros modificados a imagem da tela não é mais substituida pela próxima imagem, as linhas do grid se movimentam mais a imagem permanece a mesma, não consegui descobrir o erro, tem algum clear paras as imagens zerarem, deve ser isso, deve ter sobrecarregado de imagens....

Segue código alterado:

#include <hmg.ch>
#include "Directry.ch"

Function Main(cPath)
Public aFiles:={}, aTemp, nTam, I

If cPath=Nil
   cPath:="C:\IMAGENS\TIF"
Endif

aTemp:=Directory(cPath + "\*.tif")
nTam:=Len(aTemp)
For I=1 To nTam
    AaDd(aFiles,{aTemp[I,1]})
Next

        DEFINE WINDOW Form_1 AT 211 , 242 WIDTH 698 HEIGHT 449;
        TITLE "Visualizador de Imagens" ICON NIL MAIN
       

    DEFINE GRID Grid_1
        ROW    10
        COL    10
        WIDTH  300
        HEIGHT 670
        ITEMS aFiles
        VALUE 1
        WIDTHS { 300 }
        HEADERS {'Nome do Arquivo'}
        FONTNAME "Arial"
        FONTSIZE 9
        TOOLTIP ""
        ONCHANGE Exibir(cPath, This.Value)
        ONENTER nil
        ONGOTFOCUS Nil
        ONLOSTFOCUS Nil
        FONTBOLD .F.
        FONTITALIC .F.
        FONTUNDERLINE .F.
        FONTSTRIKEOUT .F.
        ONDBLCLICK nil
        ONHEADCLICK Nil
        ONQUERYDATA Nil
        MULTISELECT .F.
        ALLOWEDIT .F.
        VIRTUAL .F.
        DYNAMICBACKCOLOR Nil
        DYNAMICFORECOLOR Nil
        COLUMNWHEN Nil
        COLUMNVALID Nil
        COLUMNCONTROLS Nil
        SHOWHEADERS .T.
        CELLNAVIGATION .F.
        NOLINES .F.
        HELPID Nil
        IMAGE Nil
        JUSTIFY Nil
        ITEMCOUNT Nil
        BACKCOLOR NIL
        FONTCOLOR NIL
        HEADERIMAGES Nil
        ROWSOURCE Nil
        COLUMNFIELDS Nil
        ALLOWAPPEND .F.
        ALLOWDELETE .F.
        BUFFERED .F.
        DYNAMICDISPLAY Nil
        ONSAVE Nil
        LOCKCOLUMNS NIL
    END GRID

    DEFINE IMAGE Image_1
        ROW    80
        COL    330
        WIDTH  1500
        HEIGHT 1500
        PICTURE ""
        HELPID Nil
        VISIBLE .T.
        STRETCH .F.
        ACTION Nil
    END IMAGE
   
    DEFINE TEXTBOX Text_1
        ROW    40
        COL    500
        WIDTH  680
        HEIGHT 30
        FONTNAME "Arial"
        FONTSIZE 9
        TOOLTIP ""
        ONCHANGE nil
        ONGOTFOCUS Nil
        ONLOSTFOCUS Nil
        FONTBOLD .F.
        FONTITALIC .F.
        FONTUNDERLINE .F.
        FONTSTRIKEOUT .F.
        ONENTER RENOMEAR()
        HELPID Nil
        TABSTOP .T.
        VISIBLE .T.
        READONLY .F.
        RIGHTALIGN .F.
        DISABLEDBACKCOLOR Nil
        DISABLEDFONTCOLOR Nil
        CASECONVERT NONE
        BACKCOLOR NIL
        FONTCOLOR NIL
        INPUTMASK Nil
        FORMAT Nil
        UPPERCASE   .T.
        VALUE ""
    END TEXTBOX
   
      DEFINE LABEL NomeAgencia
        ROW    40
        COL    360
        WIDTH  200
        HEIGHT 30
        VALUE "Nome da Agencia:"
        FONTNAME "Arial"
        FONTSIZE 10
        TOOLTIP ""
        FONTBOLD .T.
        FONTITALIC .F.
        FONTUNDERLINE .F.
        FONTSTRIKEOUT .F.
        HELPID Nil
        VISIBLE .T.
        TRANSPARENT .F.
        ACTION Nil
        AUTOSIZE .F.
        BACKCOLOR Nil
        FONTCOLOR Nil
    END LABEL

END WINDOW

MAXIMIZE WINDOW FORM_1

        Exibir(cPath,1)
        Form_1.Text_1.SetFocus
        Form_1.Center
        Form_1.Activate

Return nil

Function Exibir(cPath,nItem)

     Public cImagem:= GetProperty("Form_1","Grid_1","Item",nItem)[1]

     If IsControlDefined(Image_1,Form_1)
        SetProperty("Form_1","Image_1","Picture",cPath + "\" + cImagem)
     Endif

Return Nil

Function Renomear()

   Public cProcura:=GetProperty("form_1","text_1","Value")

   If Empty ( Form_1.Text_1.Value )
      MsgInfo("Nome do Arquivo Em Branco, Digite o novo nome do arquivo confor imagem abaixo...")
      Return
   EndIf
   
   
   DIRMAKE(CProcura)
   RENAMEFILE('C:\IMAGENS\TIF\' + cimagem, 'C:\IMAGENS\'+ cProcura +'\' + cProcura + ' - ' + cImagem + '.JPG')
 
 
   SetProperty("Form_1","Text_1","Value", "")

   Valor:=GetProperty("form_1","GRID_1","Value")
 
   SetProperty("Form_1","GRID_1","VALUE", VALOR + 1)
   SetProperty("Form_1","Image_1","Picture", "")
 
 
    Msgbox((STR(VALOR)))  // PARA VER EM QUAL REGISTRO PAROU DE TROCAR AS IMAGENS //
 

Return Nil
guanabara
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 49
Data de registro: 03 Mar 2013 17:33
Cidade/Estado: Aracatuba-SP
Curtiu: 35 vezes
Mens.Curtidas: 2 vezes

Próximo



Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 8 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro