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 01-01-2014
Histri Histri is offline
Registrado
NULL
 
Registrado: dic 2013
Posts: 8
Poder: 0
Histri Va por buen camino
Filelistbox y popupmenu

Saludos de nuevo

Al pulsar el botón derecho del ratón sobre un DBMemo, se me abre una ventanita con: deshacer, pegar, cortar etc etc, sin embargo en el Filelistbox no me ocurre lo mismo.

Hay que modificar alguna propiedad en el inspector de objetos en el Form o en el Filelistbox? Porque sobre el DBMemo no he modificado nada y sin embargo me sale ese popupmenu

Gracias
Responder Con Cita
  #2  
Antiguo 02-01-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Histri.

Es el comportamiento por defecto de los controles de edición (TEdit, TMemo, TMaskEdit, TDBMemo, etc). Si deseas desactivarlo, estándo seleccionado el DBMemo, dirigite al Object Inspector -> Pestaña Events -> Doble click en OnContextPopup y agrega:
Código Delphi [-]
procedure TForm1.DBMemo1ContextPopup(Sender: TObject; MousePos: TPoint;
  var Handled: Boolean);
begin
   Handled := True;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 02-01-2014
Histri Histri is offline
Registrado
NULL
 
Registrado: dic 2013
Posts: 8
Poder: 0
Histri Va por buen camino
Hola ecfisa

Gracias por responderme.

Creo que no me he expresado bien, lo que pretendo, no es desactivar la ventanita en el DBMemo, sino que me aparezca en el control Filelistbox, sin tener que usar un popumenu.

Gracias
Responder Con Cita
  #4  
Antiguo 02-01-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Histri.

El TFileListBox no posee asociado un menú contextual estándar de edición, lo cuál es lógico ya que lo que muestra no son líneas de texto sino Items (TStrings) cuyo contenido (la parte que muestra) se corresponde con algún nombre de archivo existente en la carpeta que tiene asignada actualmente.

Carece de sentido copiar o pegar el contenido de este control como si de texto se tratase ya que no es su función. Lo lógico es asignarle un popup menu personalizado en donde los ítems copiar, pegar, borrar, etc. se relacionen al tratamiento de archivos.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 02-01-2014
Histri Histri is offline
Registrado
NULL
 
Registrado: dic 2013
Posts: 8
Poder: 0
Histri Va por buen camino
Gracias ecfisa por dedicarme tu tiempo.

Si no es mucho pedir, me podrías poner un ejemplo?

Muchas gracias por tu ayuda
Responder Con Cita
  #6  
Antiguo 02-01-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Histri.

Un ejemplo básico con dos items:
Código Delphi [-]
type
  TForm1 = class(TForm)
    FileListBox1: TFileListBox;
    PopupMenu1: TPopupMenu;
    Edit1: TEdit;
    ...
  private
    procedure miCopyClick(Sender: TObject);
    procedure miDeleteClick(Sender: TObject);
  public
  end;

...

implementation

procedure TForm1.miCopyClick(Sender: TObject);
var
  i: Integer;
begin
  if not DirectoryExists(Edit1.Text) then
    raise Exception.Create('Ruta inválida');
  with FileListBox1 do
  begin
    if Directory = Edit1.Text then
      raise Exception.Create('Las carpetas de origen y destino son las mismas');
    for i := 0 to Items.Count-1 do
      if Selected[i] then
        if not CopyFile(PChar(Directory+'\'+Items[i]),
                        PChar(Edit1.Text +'\'+ Items[i]), True) then
          MessageBox(Handle,PChar('Error: '+SysErrorMessage(GetLastError)),'',
                     MB_ICONERROR);
  end;
end;

procedure TForm1.miDeleteClick(Sender: TObject);
const
  MSG = '¿ Desea borrar el archivo %s ?';
var
  i: Integer;
begin
  with FileListBox1 do
  begin
    for i := 0 to Items.Count-1 do
      if Selected[i] then
        if MessageBox(Handle, PChar(Format(MSG,[Directory+'\'+Items[i]])),
                      '', MB_ICONQUESTION+MB_YESNO) = IDYES then
          if not DeleteFile(PChar(Directory+'\'+Items[i])) then
            MessageBox(Handle,PChar('Error: '+SysErrorMessage(GetLastError)),'',
                       MB_ICONERROR);
    Directory := '.';
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  miCopy, miDelete: TMenuItem;
begin

  miCopy := TMenuItem.Create(Self);
  miCopy.Caption := '&Copiar';
  miCopy.OnClick := miCopyClick;
  PopupMenu1.Items.Add(miCopy);

  miDelete := TMenuItem.Create(Self);
  miDelete.Caption := '&Borrar';
  miDelete.OnClick := miDeleteClick;
  PopupMenu1.Items.Add(miDelete);

  FileListBox1.Directory := 'C:\Una_Carpeta'; // Orígen
  FileListBox1.MultiSelect := True;   // Selección múltiple
  FileListBox1.PopupMenu := PopupMenu1;
end;
...
Cree los ítems y eventos de PopupMenu1 en tiempo de ejecución para darle mas claridad al ejemplo, pero lo podes realizar en tiempo de diseño.
Para que la copia se realice, el edit debe contener una carpeta de destino válida.

Saludos

Edito: Pero el ejemplo no evita el uso de un PopupMenu como solicitabas en el mensaje #3.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 02-01-2014 a las 14:00:20.
Responder Con Cita
  #7  
Antiguo 02-01-2014
Histri Histri is offline
Registrado
NULL
 
Registrado: dic 2013
Posts: 8
Poder: 0
Histri Va por buen camino
Mil gracias ecfisa

Voy a ponerme manos a la obra.



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema con un FileListBox. CRIS Varios 5 28-11-2005 12:48:03
ordenar archivos en filelistbox rob1 Varios 5 27-09-2005 14:52:20
AYUDA CON FILELISTBOX(buscar) rob1 Varios 1 20-09-2005 03:56:00
Ayuda Con Busqueda En Un Filelistbox rob1 Varios 4 20-09-2005 01:47:02
Ayuda con un filelistbox Jorghino reyes Varios 3 26-08-2005 06:28:03


La franja horaria es GMT +2. Ahora son las 21:04:54.


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