Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-09-2006
Critter Critter is offline
Miembro
 
Registrado: may 2003
Posts: 60
Poder: 22
Critter Va por buen camino
Añadir a un Popup Contextual nuevas opciones

a ver si me podeis echar una manita nuevamente, pues tengo el siguiente problema:

Dispongo de una serie de TDBEdits, y como sabeis el TPopupMenu desplega el clasico "deshacer, Copiar, pegar, seleccionar todo", pues bien yo querria que al final del popupmenu en cuestion poder añadir mis opciones particulares, sin perder las predefinidas.

Gracias.
Responder Con Cita
  #2  
Antiguo 19-09-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola Critter, has echado un vistazo a los resultado que te aparecen al pie de ésta página, en especial el primero y el último que dan la misma solución.

Espero te sirva,

Saludos
Responder Con Cita
  #3  
Antiguo 19-09-2006
Critter Critter is offline
Miembro
 
Registrado: may 2003
Posts: 60
Poder: 22
Critter Va por buen camino
Cita:
Empezado por Bicho
Hola Critter, has echado un vistazo a los resultado que te aparecen al pie de ésta página, en especial el primero y el último que dan la misma solución.

Espero te sirva,

Saludos
Lo he mirado, pero ... lo malo es que utilizo Delphi 3 y hablan de Delphi 7.
Si alguien puede pasarme algo de codigo e indicarme un poco el camino.

gracias.
Responder Con Cita
  #4  
Antiguo 26-09-2006
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 23
Crandel Va por buen camino
En verdad es bastante simple, como todo cuando se tiene la solución

La idea es crear un nuevo objeto del tipo TMenuItem y darle los valores que necesitas, ej:

Código Delphi [-]
procedure TForm1.AgregarOpcion;
var
  NewItem: TMenuItem;
begin
  NewItem := TMenuItem.Create(PopupConstruir);
  PopupMenu1.Items.Add(NewItem);
  NewItem.Caption := 'Opcion 1';  // texto que aparece
  NewItem.OnClick := EventoClick; // le asignas el método que queres que se ejecute cuando se genere el evento
end;
__________________
[Crandel]
Responder Con Cita
  #5  
Antiguo 26-09-2006
Critter Critter is offline
Miembro
 
Registrado: may 2003
Posts: 60
Poder: 22
Critter Va por buen camino
Cita:
Empezado por Crandel
En verdad es bastante simple, como todo cuando se tiene la solución

La idea es crear un nuevo objeto del tipo TMenuItem y darle los valores que necesitas, ej:
Creo que no me has entendido, lo que pretendo es no rehacer el popup estandard de windows, sino añadirle mas opciones.

de todas maneras gracias por haber contestado.
Responder Con Cita
  #6  
Antiguo 26-09-2006
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Bueno, eso de añadir cosas al Popup de Windows, pues es algo complicado (digo yo, nunca lo he hecho). Pero podías poner tú mismo tu propio Popup, poniendo las opciones de Deshacer, Copiar, Cortar, Pegar y Seleccionar todo (más las que tú quieras). Implementar el código no es tan difícil. En cada caso sería:

Pegar: DBEdit1.PasteFromClipboard;
Copiar: DBEdit1.CopyFromClipboard;
Cortar: DBEdit1.CutToClipboard;
Seleccionar todo: DBEdit1.SelectAll;
Deshacer: DBEdit1.Perform(EM_UNDO,0,0);


Espero que esto te sirva, y hasta la próxima !!!
Responder Con Cita
  #7  
Antiguo 26-09-2006
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
Realmente creo que esta opción de ixMike es lo mejor. He intentado algunas cosas para añadir elementos al menú estándar sin éxito y he buscado en algunos lugares pero no he visto alguna solución.

Eso sí, para que esta opción quede bonita hay que trabajarle un poco para poder presentar las opciones correctamente, esto es, habilitar o inhabilitarlas según corresponda:
  • Deshacer - se habilita o inhabilita según el valor de Edit.CanUndo
  • Cortar, Copiar, Eliminar - se habilitan o inhabilitan según si Edit.SelLength es mayor que 0
  • Seleccionar todo - se habilita sólo si Edit.Text no está vacío
  • Pegar - se habilita o inhabilita según si hay algo o no que pegar. Esto último creo que se puede averiguar usando ClipboardHasFormat(CF_TEXT)

Por cierto, al menos en Delphi 7, los Edit ya tiene el método Undo que equivale al mensaje EM_UNDO.

Habilitar o inhabiltra las opciones podría hacerse en el evento OnPopup del PopupMenu, que se ejecuta justo antes de desplegarse.

// Saludos
Responder Con Cita
  #8  
Antiguo 26-09-2006
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
Si requieres usar el mismo menú para varios Edits, te servirá la propiedad PopupComponent del PopupMenu para sobre que control se despliega.

Otra opción es usar un ActionList al que agregas las acciones de edición estándar, y éstas las asignas a la propiedad Action de los MenuItem. Con esta opción no tienes que programar nada ya que las acciones estándar se encargan de todo.

Adjunto dos ejemplos, uno programando cada ítem y el otro usando acciones.

// Saludos
Archivos Adjuntos
Tipo de Archivo: zip EditMenus.zip (4,5 KB, 29 visitas)
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
Agregar Opciones Menu Contextual lalogrosz API de Windows 3 26-09-2006 19:20:39
Añadir opcines al popup de windows Durbed API de Windows 1 07-10-2005 20:12:44
La v del popup REHome OOP 3 06-10-2005 14:23:17
menul contextual copiar y pegar + otro... User_baja1 Varios 1 27-09-2005 10:21:43
Desactivar menu contextual de Windows en WebBrowser PTW Varios 1 11-05-2005 13:21:34


La franja horaria es GMT +2. Ahora son las 06:43:40.


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