Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Deshabilitar Pegar en un Edit

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Deshabilitar Pegar en un Edit Responder citando

Hola, alguien sabe como se puede, si se puede, desactivar la opcion de que el usuario pegue texto en un edti????

Probé un monton de pijadas, y miré mil movidas en eventos y no encuentro nada, si alguien me puede contar algo sería un detallazo pq estoy pelín apuraoy esto me solucionaría unos cuantos problemas.

Graias
Volver arriba
Mensaje    Asunto: Responder citando

Hola, creo que lo puedes solucionar con Edit1->Enabled=false, así el usuario no podrá escribir ni pegar nada en el Edit.

Un saludo

Por cierto, ¿why don´t you wanna be you? Wink
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

HOLA:

Creo recordar que se podia sobreescrir una parte del codigo para ello, pero como no recuerdo como, te voy a dar una solucion algo chapuza,
Inserta un TPopupMenu y en la propiedad del Edit popupmenu le asignas el nuevo PopupMenu, asi lo deshabilitaras.

By.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Respuesta para tu problema Responder citando

Buenas:

Fácil oye mira crea una variable auxiliar que contenga la información del edit, es decir el texto que te interesa mostrar a ti y en el evento OnChange escribes Edit1->Text = auxiliar; así cada ves que alguien trate cambiar tu texto tu vuelves a escribir lo que tu quieres que este allí....

Si eres tu el que quiere cambiar el texto basta hacer:

actual = nuevoTexto;
Edit->Text = "";


donde nuevo sera el texto que a ti te interesa y la llamada a Edit1->Text = ""; se hace para que el Edit1 cambie y caiga en el evento OnChage que es el que a ti te interesa. Esta solucion solo tiene el problema de que es burda. Es decir hace que el edit parpadee un poco... Claro es que no esta echa en API. Otra solución es construir un Edit echo por ti en Api pero esto ya es algo mas Complejo y no tengo time para hacértelo ok. Si puedes busca la pregunta que hice yo y tírame una ayuda si.
P.D: Lo que dice monica abajo esta bien para la entrada por teclado pero falla para cuando pegas algo.
_________________
Saludos para todos recuerden pueden contactarme por correo en la direccion >> lcarballlo@ghost.matcom.uh.cu


Ultima edición por Vampire el Vie 27 Jun, 2003 11:13 am, editado 1 vez
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Se me ocurre otra cosa que a lo mejor te sirve: en el evento OnKeyDown pones:
Key=0; //es decir, ignoras la pulsación
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

HOLA:

Vale seamos un poco profesionales:

TFarProc PrevWndProc ;

LRESULT EditWndProc(HWND Handle , UINT Msg , WPARAM wParam , LPARAM lParam )
{
if (Msg == WM_PASTE)
return 0;
else
CallWindowProc((FARPROC) PrevWndProc , Handle, Msg, wParam, lParam);
}


void __fastcall TForm1::FormCreate(TObject *Sender)
{
PrevWndProc = TFarProc(GetWindowLong(Edit1->Handle, GWL_WNDPROC));
SetWindowLong(Edit1 -> Handle, GWL_WNDPROC, (long )EditWndProc);
}


By.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Muchas Gracias Responder citando

Gracias a todos por las alternativas. Solo una cosita más para Toño, no tengo ni puta idea de lo que hace ese codigo. Si por favor me pudieras orientar un poco.... Si no, gracias de todos modos por la ayuda.

De cualquier forma, un modo que encontre de restringir lo que se pega en el edit es utilizar el evento KeyDown y controlar si se pulsa Ctrl+V. El problema ahora es q desde el menu del edit se puede pegar. ¿Alguien sabe como contolar eso?.
Volver arriba
Mensaje    Asunto: Re: Muchas Gracias Responder citando

HOLA:

Como bien sabras todo el sistema de herramientas para windowss funciona mediante la accion de mensajes, haz esto si has recibido tal mensaje, luego se interpreta el mensaje, si estoy en un tedit y se ha pulsado una tecla haz lo siguiente..... Los evento OnMouseEnter, OnKeypress, etc lo que hacen es preguntar que hacer antes de procesar la informacion.

I Don't Wanna Be Me escribió:
El problema ahora es q desde el menu del edit se puede pegar.



Precisamente el codigo que te escribi lo que hace es interceptar el mensaje antes de que se produzca la accion WM_PASTE la accion de pegar y procesarla de la manera que tu quieras.


if (Msg == WM_PASTE)
{
ShowMessage("Voy a pulsar el boton de autodestruccion del mundo");
AutoDestruccionMundial();
return 0;
}

if (Msg == WM_DEL)
{
.....
}

Si no es ninguno, procesalo normalmente
CallWindowProc (.....);



By.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.