Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   TMemo y menu (https://www.clubdelphi.com/foros/showthread.php?t=58553)

Peri 23-07-2008 20:00:17

TMemo y menu
 
Quería saber si con un TMeno se puede controlar lo que se señale con el ratón, para que de esta forma, activar una opción en el menú que por defecto está desactivada. Es decir, cuando señale algo con el ratón y teclado -para copiar, pegar, etc...- , pues activar un elemento del menú.

LO consigo hacer con un TRichEdit mediante el evento OnSelectionchange, pero no con un TMemo puesto que no tiene este evento.
Gracias

dec 23-07-2008 20:15:59

1 Archivos Adjunto(s)
Hola,

Lo más sencillo puede ser usar acciones, o sea un componente "TActionList", al que podríamos añadir una acción, por ejemplo, que se "habilitara" y "deshabilitara" en función de si hay texto seleccionado en el "TMemo". Para esto, entre otras cosas, son muy útiles las acciones.

De este modo, si asignamos una acción a un determinado "item" del menú, podríamos aprovechar el evento "OnUpdate" de la acción para codificar algo similar a esto, donde "sampleAct" es un "TAction" y "mSample" es el "TMemo":

Código Delphi [-]
procedure TfrmMain.sampleAccUpdate(Sender: TObject);
begin
  sampleAct.Enabled := (mSample.SelLength > 0);
end;

Recuerda que si una acción se deshabilita, el "item" del menú que tiene asignada dicha acción, también se deshabilitará, automáticamente, sin que tengas que hacer nada. Adjunto un sencillo ejemplo que muestra esto de que hablo y creo que se aproxima a lo que necesitas, al menos tal como yo lo he entendido.

Peri 23-07-2008 21:19:50

Muchas gracias dec, probaré lo que dices. Efectivamente TACtionList te evita el trabajo repetitivo cuando una misma acción está en varios sitios, pero aún no he trabajo con este componente, aún no lo conozco. Me meteré en ello y veré.

Gracias dec.

Peri 24-07-2008 20:16:07

Ya he probado hacer lo que decías, dec. Funciona perfectamente. Y lo he adaptado a mi ejemplo que estaba haciendo, trataba de emular lo que hacía el menú edición del bloc de notas, y lo he conseguido. Delphi mola...:)

Gracias dec.


La franja horaria es GMT +2. Ahora son las 18:48:08.

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