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 13-11-2009
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Ordenar OpenDialog

Hola club...

Estuve buscando en google y aqui en el club y no encuentro una forma de ordenar el listado de un TOpenDialog...

En mi programa tengo un cuadro dialogo donde selecciono de una carpeta una imagen para subir desde el equipo a la base de datos y generar carnets... el problema es que esta carpeta se llena todo el tiempo y quisiera ordenar (por fecha de creación DESC) el listado que aparece en el cuadro de dialogo.

Lo que quisiera en si es que las primeras fotos del listado sean las ultimas que he tomado.

Cualquier ayuda prestada de verdad que seria muy bien recibida.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #2  
Antiguo 13-11-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.278
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Yo lo más que he conseguido es abrirlo cambiando el sestilo a modi report, para luego sólo tener que pulsar sobre la columna (tenía el mismo problema que tú). Lo conseguí con este procedimiento, pero sigue faltándome lo de ordenar.

Código Delphi [-]
{: Modificar el sistema de apertura de los diálogos.}
procedure OpenDialogStyle(ASender:TCommonDialog; AStyle:TViewStyle=vsReport);
var
  Dlg: HWND;
begin
  // Ventana
  Dlg := GetParent((ASender as TCommonDialog).Handle);
  // Enviar un mensaje a la ventana principal
  PostMessage(Application.MainForm.Handle, WM_DIALOG_STYLE, Dlg, Ord(AStyle));
end;

Utilizando los eventos del diálogo, al abrirlo lo llamo así:

Código Delphi [-]
procedure TFormBrBase.SaveDialogShow(Sender: TObject);
begin
  // Abrir la vista de detalles.
  OpenDialogStyle(Sender as TCommonDialog);
end;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 13-11-2009
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
Germán, ¿dónde está declarada la constante WM_DIALOG_STYLE? No la encuentro en ninguna parte. ¡Ni en Google!

// Saludos
Responder Con Cita
  #4  
Antiguo 13-11-2009
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
La vista de reporte no me srive de mucho pq en algunos casos se toman varias fotos, en este caso me ha servido mucho la vista de miniaturas... aqui mismo en el club encontré un codigo que me ayudo a desplegar la vista de miniaturas :

Código Delphi [-]
procedure TFrmPhotoCapture.OpenDialogFolderChange(Sender: TObject);
const
  FCIDM_SHVIEW_LARGEICON = $7029;
  FCIDM_SHVIEW_SMALLICON = $702A;
  FCIDM_SHVIEW_LIST = $702B;
  FCIDM_SHVIEW_REPORT = $702C;
  FCIDM_SHVIEW_THUMBNAIL = $702D;
  FCIDM_SHVIEW_TILE = $702E;
var
  newStyle: dWord;
begin
  newStyle := FCIDM_SHVIEW_THUMBNAIL;
  SendMessage(FindWindowEx(GetParent(OpenDialog.Handle), 0, 'SHELLDLL_DefView', nil), WM_COMMAND, newStyle, 0);
end;

Pero me aparecen en orden de creación ASC y yo lo quiero al contrario...
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #5  
Antiguo 16-11-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.278
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por roman Ver Mensaje
Germán, ¿dónde está declarada la constante WM_DIALOG_STYLE? No la encuentro en ninguna parte. ¡Ni en Google!
¡Perdón! Se me olvidó colocarla.

Código Delphi [-]
  // Mensaje para ventanas de dialogo
  WM_DIALOG_STYLE = WM_USER + 510;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 16-11-2009
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
Hola Germán,

No sé si estoy lento de entendimiento o es que falta algo. Al principio pensé que WM_DIALOG_STYLE era una constante predefinida pero ahora veo que tú mismo la defines, por lo que supongo que tienes un manejador para ese mensaje y que es ahí donde cambias el estilo, pero lo más que he podido hacer de esa manera es encontrar el ListView contenido dentro del diálogo y cambiarle el estilo a LVS_REPORT. Pero así sólo "desaparecen" los ítems.

¿Podrías poner cómo lo haces?

// Saludos
Responder Con Cita
  #7  
Antiguo 17-11-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.278
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Efectívamente con las prisas me descuidé la "mitad" de las cosas por el camino...
No eres tú el que está lento de entendimiento, Román, soy yo...

Efectívamente falta el "manejador" que capture ese mensaje y que haga lo que tiene que hacer. En mi caso está en el form principal para "centralizar" ese comportamiento.

Os pongo el ejemplo completo donde está todo lo necesario. Lo "sencillo" es que a partir de ahora cualquier diálogo al que se llame basta con programarle en el OnShow la llamada a:

Código Delphi [-]
  // Abrir la vista de detalles.
  OpenDialogStyle(Sender as TCommonDialog, aStyle);

Siendo sStyle, uno de los estilos definidos por:

Código Delphi [-]
  // Definido en ComCtrls
  TViewStyle = (vsIcon, vsSmallIcon, vsList, vsReport);

Un saludo y perdonad por el despiste.
Archivos Adjuntos
Tipo de Archivo: zip Cuadros de diálogo.zip (1,7 KB, 19 visitas)
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #8  
Antiguo 17-11-2009
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
Gracias por la respuesta Germán, pruebo al rato. Por lo que veo, mi error estaba en que intentaba lidiar, no con la ventana SHELLDLL_DefView, si no con la hija SysListView32.

// Saludos
Responder Con Cita
  #9  
Antiguo 26-11-2009
xio xio is offline
Miembro
 
Registrado: dic 2006
Posts: 87
Poder: 18
xio Va por buen camino
Ummmm! Necesito abrir un cuadro de dialogo y que me lo muestre con la vista de windows en miniaturas, pero no tengo forma de hacerlo. He estado viendo este post y he visto que hay forma de hacerlo pero no lo consigo.

Podriais echarme una mano??

Código Delphi [-]
  if OpenDialog.Execute then begin
    OpenDialog.InitialDir := ExtractFilePath(OpenDialog.FileName);
  end;

Asi es como abro yo el dialogo, podria adaptar esa forma que exponeis??
Responder Con Cita
  #10  
Antiguo 26-11-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.278
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por xio Ver Mensaje
Asi es como abro yo el dialogo, podria adaptar esa forma que exponeis??
¿Has mirado el ejemplo que hay un poco más arriba?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #11  
Antiguo 26-11-2009
xio xio is offline
Miembro
 
Registrado: dic 2006
Posts: 87
Poder: 18
xio Va por buen camino
Si, pero no se como integrarlo en mi codigo, soy un pelin torpe para estas cosas.....
He estado haciendo pruebas pero no se como integrarlo, lo siento
Responder Con Cita
  #12  
Antiguo 26-11-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.278
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Lo que tú estás haciendo es lo que en el ejemplo está como:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  OpenDialog1.Execute;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  OpenDialog2.Execute;
end;

El resto sólo tienes que copiarlo como está ahí.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #13  
Antiguo 26-11-2009
xio xio is offline
Miembro
 
Registrado: dic 2006
Posts: 87
Poder: 18
xio Va por buen camino
Pues perdona mi torpeza pero no me funciona. Podrias pasarme un ejemplo en codigo??
Responder Con Cita
  #14  
Antiguo 26-11-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.278
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto


Sí, aquí lo tienes.
Archivos Adjuntos
Tipo de Archivo: zip Cuadros de diálogo.zip (1,7 KB, 12 visitas)
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #15  
Antiguo 26-11-2009
xio xio is offline
Miembro
 
Registrado: dic 2006
Posts: 87
Poder: 18
xio Va por buen camino
Descargo el fichero y tiene un archivo que no tiene extension, con que programa debo abrirlo??
Responder Con Cita
  #16  
Antiguo 26-11-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.278
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
ok. es un problema conocido en los foros con algunos ficheros ZIP.

Te subo un RAR con el nombre: "Cuadros de diálogo.rar.txt"
Quítale la extensión TXT y descomprímelo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #17  
Antiguo 27-11-2009
xio xio is offline
Miembro
 
Registrado: dic 2006
Posts: 87
Poder: 18
xio Va por buen camino
Ok, cuando lo subas me avisas. O dime donde lo has subido.

Un saludo y muchas gracias....
Responder Con Cita
  #18  
Antiguo 27-11-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.278
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por xio Ver Mensaje
Ok, cuando lo subas me avisas. O dime donde lo has subido.
Perdón. No doy "pié con bola" y me lo he dejado sin subir.

Los he vuelto a subir (un ZIP y un RAR); Quítales la última extensión y prueba.
También lo tienes aquí, subidos a i web (1, 2)
Archivos Adjuntos
Tipo de Archivo: zip Cuadros de diálogo.rar.zip (1,7 KB, 5 visitas)
Tipo de Archivo: zip Cuadros de diálogo.zip.zip (3,6 KB, 7 visitas)
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #19  
Antiguo 30-11-2009
xio xio is offline
Miembro
 
Registrado: dic 2006
Posts: 87
Poder: 18
xio Va por buen camino
Muchisimas gracias!!!!!
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Error en OpenDialog JoseFco Varios 20 02-05-2008 04:56:10
problema con opendialog lina maria Varios 5 15-04-2008 01:04:48
problema con opendialog rzf1983 Varios 3 24-10-2007 15:59:57
personalizar un opendialog ebeltete OOP 15 06-07-2006 23:58:53
OpenDialog GIVO Varios 1 29-09-2003 23:20:23


La franja horaria es GMT +2. Ahora son las 07:32:14.


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