Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-08-2003
esocrates esocrates is offline
Miembro
 
Registrado: may 2003
Ubicación: Argentina
Posts: 210
Poder: 21
esocrates Va por buen camino
Uso del ShellListView

Hola a todos:
Tengo en un form [Delphi 6] Un Componente ShellTreeView un ShellListView y un Memo.
Cuando hago clic en una carpeta del ShellTreeView se muestran en el ShelListView las subcarpetas y los archivos que contienen.
Les pido me ayuden con el código necesario para que al hacer doble clic sobre el nombre de un archivo txt que se muestra en el ShellListView se muestre en el Memo.
Muchas gracias
Responder Con Cita
  #2  
Antiguo 06-08-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 22
andres1569 Va por buen camino
Hola:

No conozco estos componentes, pero suponiendo que el ShellListView tiene una propiedad FileName donde se apunta al fichero seleccionado, y omitiendo comprobaciones de si es un fichero de texto, harías así:

Memo1.Lines.LoadFromFile (SellListView1.FileName);
__________________
Guía de Estilo
Responder Con Cita
  #3  
Antiguo 07-08-2003
esocrates esocrates is offline
Miembro
 
Registrado: may 2003
Ubicación: Argentina
Posts: 210
Poder: 21
esocrates Va por buen camino
Estos controles se encuentran en Delphi 6 en la paleta Samples.
Mi dificultad radica en que la propiedad FileName no se encuentra en el ShelListView.
No sé de qué modo puedo cargar en un Memo el contenido de un txt al hacer doble clic.
Un saludo
Responder Con Cita
  #4  
Antiguo 07-08-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
¿Qué te parece algo así?

Código:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if (ShellListView1.SelectedFolder <> nil) and
     (not ShellListView1.SelectedFolder.IsFolder) Then
  begin
    Memo1.Lines.LoadFromFile(ShellListView1.SelectedFolder.PathName);
  end;
end;
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 07-08-2003
esocrates esocrates is offline
Miembro
 
Registrado: may 2003
Ubicación: Argentina
Posts: 210
Poder: 21
esocrates Va por buen camino
Me parece muy bueno delphi.com.ar. Es la solución que buscaba.
Un saludo y muchas gracias.
Responder Con Cita
  #6  
Antiguo 01-07-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Question

Hola:

Con PathName traes el nombre de la ruta..
Como se pueden cargar los nombres de archivos que se encuentran en las carpetas de un ShellTreeView .

Saludos.
Responder Con Cita
  #7  
Antiguo 01-07-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por lucasarts_18
¿Por qué te enojas?

PathName es la ruta y el nombre del archivo. Para quedarte sólo con el nombre usa la función ExtractFileName:


Código Delphi [-]
ExtractFileName(ShellListView1.SelectedFolder.PathName)

// Saludos
Responder Con Cita
  #8  
Antiguo 01-07-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
No Me resulta!!!!!

Hola Roman:

En ningún caso me he enojado, solo puse esa carita por frustración al ver que el ejemplo no hacía como proponía Delphi.com.ar.

Tengo algunas dudas:
  1. En éste mensaje porqué se hace referencia a ShellListView sí sé está preguntando por ShellTreeView? .
  2. Lo otro sería algo así (ShellTreeView.ShellListView) como podrás ver en el código de más abajo.
Código Delphi [-]
 
 
if (ShellTreeView.ShellListView.SelectedFolder <> nil) and
(not ShellTreeView.ShellListView.SelectedFolder.IsFolder) then
//FrmArchivos.LstBoxFile.Items.Add (ShellTreeView.ShellListView.SelectedFolder.PathName);
Memo1.Lines.LoadFromFile(ShellTreeView.ShellListView.SelectedFolder.PathName);

Cómo puedes ver, hay una línea que se encuentra comentada porque esa es mi idea, pasar todos los nombres de archivos a un ListBox.
Pero como no me resulta con el listbox, hicé el intento de ejecutarlo como lo proponen en éste hilo.

Al momento de ejecutarlo como dice Delphi.Com.Ar me lanza una excepción de violación de acceso a dirección......

Bueno...Ese es mi drama...No estoy enojado A ésta hora me baja el sueño..

Saludos.

Última edición por lucasarts_18 fecha: 01-07-2005 a las 21:40:15.
Responder Con Cita
  #9  
Antiguo 01-07-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por lucasarts_18
  1. En éste mensaje porqué se hace referencia a ShellListView sí sé está preguntando por ShellTreeView.
Cita:
Empezado por esocrates
Les pido me ayuden con el código necesario para que al hacer doble clic sobre el nombre de un archivo txt que se muestra en el ShellListView se muestre en el Memo.
Por otro lado, tu código no tendría que producir un error si es que tienes asignada la propiedad ShellListView de tu ShellTreeView. ¿Porqué accedes a través de esta propiedad pudiendo acceder directamente al ShellListView como en mi ejemplo?

Código Delphi [-]
if Assigned(ShellTreeView.ShellListView) and
(ShellTreeView.ShellListView.SelectedFolder <> nil) and
(not ShellTreeView.ShellListView.SelectedFolder.IsFolder) then
...


Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #10  
Antiguo 01-07-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por lucasarts_18
al ver que el ejemplo no hacía como proponía Delphi.com.ar.
El ejemplo hace correctamente lo que Federico indica. Lo sé porque a mi me pasó lo mismo que a ti .

Originalmente se pedía:


Cita:
Empezado por esocrates
que al hacer doble clic sobre el nombre de un archivo txt que se muestra en el ShellListView se muestre en el Memo
lo cual tiene dos interpretaciones:

- que se muestre el nombre del archivo en el memo
- que se muestre el contenido del archivo en el memo

pero más adelante aclaró que era lo segundo:


Cita:
Empezado por esocrates
No sé de qué modo puedo cargar en un Memo el contenido de un txt al hacer doble clic
y a esto es a lo que contestó Federico.

Según entiendo tú quieres la otra opción.


Cita:
Empezado por lucasarts_18
En éste mensaje porqué se hace referencia a ShellListView sí sé está preguntando por ShellTreeView
No, pues ni idea de algo que aconteció hace dos años

Lo que tú necesitas creo que es


Código Delphi [-]
Memo1.Lines.Add(ExtractFileName(ShellListView.SelectedFolder.PathName));

Quité la referencia a ShellTreeView pues me gusta más acceder directamente que através de otra componente.

// Saludos
Responder Con Cita
  #11  
Antiguo 01-07-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Se me adelantó Federico unos segundos pero veo que básicamente pensamos igual en este aspecto.

// Saludos
Responder Con Cita
  #12  
Antiguo 01-07-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Cita:
Empezado por roman
Quité la referencia a ShellTreeView pues me gusta más acceder directamente que a través de otra componente.
Hice esto:

Código Delphi [-]
 
var
ShellListView : TShellListView;
begin
   if (ShellListView.SelectedFolder <> nil) and
     (not ShellListView.SelectedFolder.IsFolder) then
      Memo1.Lines.Add(ExtractFileName(ShellListView.SelectedFolder.PathName));
end;
Al momento de sacar el ShellTreeView me dice que el identificador no está declarado,por eso me ví obligado a declararlo, pero sigo con el problema de violación en la dirección de memoria.... Estoy totalmente confundido
Responder Con Cita
  #13  
Antiguo 01-07-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Y por qué piensas que una variable local que no ha sido construida te va a funcionar?

Debes tener una componente TShellListView en tu formulario o sino no sé de qué estamos hablando. Si la componente se llama de otra manera entonces ese nombre es el que tienes que usar.

// Saludos
Responder Con Cita
  #14  
Antiguo 01-07-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Parece que no me expliqué muy bien, no tengo ningún ShellListView, solo estoy trabajando con un ShellTreeView y mí idea es que al momento de selecionar una carpeta pueda traerme los nombres de archivos a un TListBox .

Y otra gran duda, acaso Borland no puso la ayuda de éste componente en su Help de Delphi.
No encuentro ninguna referencia de éste componente en la ayuda.

Responder Con Cita
  #15  
Antiguo 01-07-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por lucasarts_18
Parece que no me expliqué muy bien, no tengo ningún ShellListView, solo estoy trabajando con un ShellTreeView y mí idea es que al momento de selecionar una carpeta pueda traerme los nombres de archivos a un TListBox
La propiedad ShellListView del ShellTreeView es para enlazar un ShellListView y que estos componentes interactúen.


Cita:
Empezado por lucasarts_18
Y otra gran duda, acaso Borland no puso la ayuda de éste componente en su Help de Delphi.
No encuentro ninguna referencia de éste componente en la ayuda.
Borland no puso ayuda, porque estos componentes son una Demo

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #16  
Antiguo 01-07-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Hola:

He colocado el componente ShellListView y al momento de ir navegando por el ShellTreeView se visualizan los archivos en el ShellListView, todo bien hasta aquí.

Ahora quiero traerme todos los nombres de los archivos que estoy visualizando en el ShellListView un ListBox, Se entiende ??.

Saludos.

Responder Con Cita
  #17  
Antiguo 13-03-2011
ctrl_attack ctrl_attack is offline
Miembro
 
Registrado: feb 2007
Posts: 49
Poder: 0
ctrl_attack Va por buen camino
Hola, alguien sabe donde esta ShellListView en delphi 2010 ? o cual es el equivalente, ya le estoy agarrando mas la onda a este delphi pero nomas no encuentro a ShellListView jejeje, alguien sabe por donde anda?
Responder Con Cita
  #18  
Antiguo 13-03-2011
ctrl_attack ctrl_attack is offline
Miembro
 
Registrado: feb 2007
Posts: 49
Poder: 0
ctrl_attack Va por buen camino
Vale, ya le encontre la forma, sucede que estos componentes no vienen instalados por defecto y uno los tiene que instalar manualmente, en mi caso que tengo windows seven los encontre en:

C:\Users\Public\Documents\RAD Studio\7.0\Demos\DelphiWin32\VCLWin32\ShellControls

lo que hice primero fue abrir vclshlctrls.dproj y compilar

despues abri y compile dclshlctrls.dproj

despues sin cerrar este ultimo, en el project manager instale dclshlctrls140.bpl

despues me salio mi ventanita que ya estaba instalado, corrobore y todo bien.

dejo el comentario por si las dudas a alguien le sucede igual, saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 11:19:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi