Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Anular el boton derecho del mouse? (https://www.clubdelphi.com/foros/showthread.php?t=47032)

marceloalegre 16-08-2007 17:28:23

Anular el boton derecho del mouse?
 
Hola Amigos:
Les consulto lo siguiente, estoy necesitando anular el click del boton derecho del mouse dentro de un memo, ya que no quiero que salga el menu contectual que tiene "deshacer - cortar - copiar - pegar" dado que he inhabilitado estas posibilidades la captura de los respectivos mensajes de windows. Dado que queda "feo" que presione copiar con el mouse y "no copie" me gustaria inhabilitar el boton en el memo.
Es esto factible?

Muchas gracias.-

Bicho 16-08-2007 17:37:30

Hola,

no es necesario desactivar el botón, basta desactivar el popup menú contextual. Prueba lo siguiente:

Código Delphi [-]
procedure TForm1.FormActivate(Sender: TObject); 
var noPopup: TPopupMenu; 
begin    
  noPopup:=TPopupMenu.Create(Nil);
  Edit1.PopupMenu := noPopup; 
end;

Espero te sirva,

Saludos

roman 16-08-2007 17:41:07

Hola Bicho, estoy pensando estrenar las tarjetitas de amonestación porque ese código que pones tiene un memory leak. :p

:D

// Saludos

seoane 16-08-2007 17:47:34

Cita:

Empezado por roman (Mensaje 223597)
Hola Bicho, estoy pensando estrenar las tarjetitas de amonestación porque ese código que pones tiene un memory leak. :p

Vamos a ver si solucionamos esos problemas de memoria :p
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject); 
begin    
  Edit1.PopupMenu:= TPopupMenu.Create(Self);
end;

roman 16-08-2007 17:49:43

Ya estaba yo con la mano en el bolsillo... Bueno, será para la próxima, estaré atento. :D :p

b3nshi 16-08-2007 19:07:56

Entre a este post para ver q solucion daban y bueno... en realidad siempre lo hice de la manera q presento seoane, ahora lo q me sorprendio, o por lo menos q es la primera vez q escucho el termino fue memory leak.

Digamos q se a q se refiere el termino... pero me gustaria entenderlo un poco mejor y como evitarlas... por ejemplo...

Si yo creo un archivo... o le asigno a una variable del tipo file un archivo y luego a esta variable no la cierro con closefile entonces eso se considera un memory leak?

Al cerrar la aplicacion se libera la memoria de los memory leak?

Y como puedo evitarlos... o sea... mas o menos cuando se cometen esos errores normalmente, porq supongo q sera un error comun no? Solo q nadie los tiene en cuenta...

{Saludos}

cHackAll 16-08-2007 19:22:06

Bueno, desde mi humilde opinion:

Código Delphi [-]
procedure TForm1.Edit1ContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);
begin
 Handled := True;
end;

0j0: OnContextPopup
Edito: interesante lo del memory leak... aprení una definición nueva, gracias roman.

seoane 16-08-2007 19:29:22

Cita:

Empezado por b3nshi (Mensaje 223634)
Si yo creo un archivo... o le asigno a una variable del tipo file un archivo y luego a esta variable no la cierro con closefile entonces eso se considera un memory leak?

Si abres un archivo y no lo cierras, lo que estas es impidiendo que otros programas trabajen normalmente con ese archivo, además de que sigues utilizando el handle (¿manejador?) correspondiente a esa apertura, y como el número de handles que se pueden utilizar es limitado, si mantienes muchos abiertos se terminara produciendo un error.

Cita:

Empezado por b3nshi (Mensaje 223634)
Al cerrar la aplicacion se libera la memoria de los memory leak?

Pues creo que si, al menos en XP, al cerrar el programa el propio windows se encarga de liberar todos los recursos que este utilizaba. En windows9x ya no estoy tan seguro ...

Cita:

Empezado por b3nshi (Mensaje 223634)
Y como puedo evitarlos... o sea... mas o menos cuando se cometen esos errores normalmente, porq supongo q sera un error comun no? Solo q nadie los tiene en cuenta...

Asegurate de destruir todo lo que creas y de cerrar todo lo que abres. No des por supuesto nada, siempre que puedas utiliza un bloque try ... finally para asegurarte.

b3nshi 16-08-2007 21:35:35

Muchisimas Gracias Seoane...

Justimamente ahora estaba programando una aplicacione en donde manejo muchos archivos binarios... y bueno... por eso era mi duda...

Ahora... como puedo saber la cantidad de manejadores (handles) q puedo utilizar? Varia de acuerdo a la cantidad de memoria del PC verdad?

{Saludos}

Chris 16-08-2007 21:55:10

Cita:

Empezado por b3nshi (Mensaje 223767)
como puedo saber la cantidad de manejadores (handles) q puedo utilizar? Varia de acuerdo a la cantidad de memoria del PC verdad?
{Saludos}

No es lo que tu puedas utilizar, sino lo que pueda utilizar el sistema. Los sistemas de 32 bits solo puede usar el numero mayor alcanzado por los 32 bits (no sé cuanto es, pero sé que son varios millones), solo en sistemas de 64 es en donde puedes manejar trillones.

roman 16-08-2007 22:39:48

Para detectar las pérdidas de memoria, yo recomiendo el MemProof que se acopla muy bien al código delphi y nos indica en qué puntos exactamente tenemos una fuga.

// Saludos


La franja horaria es GMT +2. Ahora son las 05:09:40.

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