Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Manejo de ShellTreeView (ayuda please) (https://www.clubdelphi.com/foros/showthread.php?t=53769)

Rafe 29-02-2008 02:13:31

Manejo de ShellTreeView (ayuda please)
 
Hola que tal ? como les va, quiseira preguntarles si alguno me puede ayudar, lo que necesito es lo siguiente......

tengo un ShellTreeView y un image en un formulario y quiero que cuando valle seleccionando archivos de imagen en el ShellTreeView me las muestre en el image, yo hice lo siguiente

image1.Picture.LoadFromFile( ??? );

en los signitos deberia ir la ruta de la imagen (el archivo que voy seleccioando del ShellTreeView) pero que pasa uno si lo primero que selecicono n oes una imagen me tira error, como hago para ahcer un if que solo si el archivo es una imagen haga algo sino no ????

Muchas gracias!!!

dec 29-02-2008 02:23:26

Hola,

Tal vez sería posible indicar al componente que no muestre sino cierto tipo de archivos (de imagen) en base a sus extensiones. ¿No? Si no me equivoco esto es posible.

keyboy 29-02-2008 03:49:04

Pienso, como dec, que lo mejor sería filtrar el ShellTreeView, aunque esto no es tan directo como ajustar una propiedad Filter. Debes usar el evento OnAdd del control:

Código Delphi [-]
procedure TForm1.ShellTreeView1AddFolder(
  Sender: TObject;
  AFolder: TShellFolder; var CanAdd: Boolean);
begin
  if not AFolder.IsFolder and (fpFileSystem in AFolder.Properties) then
    CanAdd := LowerCase(ExtractFileExt(AFolder.DisplayName)) = '.jpg';
end;

Claro que el filtro lo haces por la extensión del archivo, cosa que también puedes hacer para "determinar" si es o no un archivo de imagen:

Código Delphi [-]
with ShellTreeView1.SelectedFolder do
  if LowerCase(ExtractFileExt(DisplayName)) = '.jpg' then
    Image1.Picture.LoadFromFile(DisplayName);

Pero, que un archivo tenga una extensión como jpg, png, gif, etc., no necesariamente significa que sea una imagen, y no veo forma sencilla de determinarlo, pero en esos casos extremos, no pasa nada si dejas que se muestre la excepción.

Bye


La franja horaria es GMT +2. Ahora son las 20:41:45.

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