Ver Mensaje Individual
  #2  
Antiguo 12-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.141
Reputación: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Código Delphi [-]
procedure TForm1.PopupMenu1Popup(Sender: TObject);
 begin
   // Podrías usar "TAction's", de forma que en el evento
   // "OnUpdate" de la acción "remobrarArchivo" (es un nombre
   /// de ejemplo) hicieras que dicha acción estuviera habilitada
   // o no dependiendo de que exista algún item seleccionado.
   //
   // Si dicha acción está asignada al item "renombrar archivo"
   // del "TPopupMenu" conseguirás que al deshabilitarse aquella
   // se deshabilite también este, por eso lo dicho arriba.
   //
   itemRenombrarArchivo.Enabled := (FileListBox1.ItemIndex <> -1);
 end;
 
 procedure TForm1.itemRenombrarArchivoClick(Sender: TObject);
 var
   i: integer;
   dir: string;
   nombreAntiguo,
   nuevoNombre: string;
 begin
 
   i := FileListBox1.ItemIndex;
 
   if i = -1 then
     Exit; // Si haces lo de más arriba esto no tendrá sentido
 
   dir := IncludeTrailingPathDelimiter(FileListBox1.Directory);
 
   // Formamos el nombre "antiguo"
   nombreAntiguo := dir + FileListBox1.Items[i];
 
   // Solicitamos el nuevo nombre al usuario
   nuevoNombre := InputBox('Renombrar archivo', 'Nuevo nombre:', '');
 
   if nuevoNombre = '' then
     Exit; // No hay para qué seguir
 
   // Formamos el nuevo nombre del archivo
   nuevoNombre := dir + nuevoNombre + ExtractFileExt(nombreAntiguo);
 
   RenameFile(nombreAntiguo, nuevoNombre); // Renombramos el archivo
 
   FileListBox1.Update; // Actualizamos la lista de archivos
 
 end;
Nota: Revisa cuanto quieras el código. Ten en cuenta que se hizo en un rato y que pueden cambiarse acaso algunas cosas, optimizarse otras y adaptar buena parte a tus necesidades y/o preferencias, cuando no arreglar los posibles desperfectos que contenga el código. En todo caso creo que la idea de cómo implementar el asunto te la he dado: merezco las gracias eternas... una pena que eso sea algo imposible... o quizá no...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita