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 

Una función para el mismo evento de varios controles

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Una función para el mismo evento de varios controles Responder citando

A ver si me explico:

Tengo un Form con varios TMemo. Para controlar la escritura en esos TMEmo quiero crear una función que no permita que se escriban ciertos caracteres. La función sería exactamente igual para todos, pero en lugar de crear una para cada TMemo quiero hacer una que valga para todos y llamarla en el evento OnKeyPress de cada TMemo.
Lo que no sé es cómo acceder a los parámetros del TMemo que llamó a la función en ese momento.

Es decir, si fuera para un solo TMemo en lugar de ser genérica pondría:
Memo1->Text=....
Pero en la función que quiero hacer, ¿cómo hago?

Espero haberme explicado y a ver si me podeis ayudar.

Muchas gracias
Volver arriba
Mensaje    Asunto: Responder citando

¡Hola Mónica!

No se si ésto te valdrá. En el evento OnKeyPress de uno de los Memos (el que quieras) escribes el código que controla los caracteres a escribir. Luego, en los demás Memos, lo que tienes que hacer es asociar su evento OnKeyPress al que ya has codificado. Para ello, te vas al Inspector de propiedades y eventos (F11), selecciona la pestaña de eventos y selecciona el evento OnKeyPress. Deberá aparecerte una flecha para desplegar una lista. Despliégala y selecciona el evento OnKeyPress que ya has codificdo. Pues ya está. Haz lo mismo con todos los Memos y listo.

Espero que te sirva Wink
Volver arriba
Mensaje    Asunto: Responder citando

¡Hola tecno!

Gracias por la respuesta, pero creo que no me he explicado bien. Lo que tu dices es exactamente lo que quiero hacer. Digamos que hasta ahí llego. Mi pregunta es cómo hago referencia a cada Memo. Es decir, imagina que hago esa función para el evento OnKeyPress de Memo1 y que necesito poner la siguiente línea:

Memo1->Text=".";

Si hago una función diferente para cada Memo no tengo problema porque en la función correspondiente al Memo2, pondría:

Memo2->Text=".";

y listo.

Mi problema es que quiero poner esa línea para un Memo "genérico", por llamarle de alguna manera, para así poder hacer lo que tu dices.

He intentado poner:

Sender->Text=".";

sé que es una burrada (Sender es un TObject), lo sospechaba, pero era para ver si colaba...
Ya sé que me explico fatal, pero a ver si alguien me ha entendido ahora.

Saludos!
Volver arriba
Mensaje    Asunto: Responder citando

1.- Crea una aplicación.
2.- Incluye esta función como miembro del TForm

void __fastcall TForm1::ButtonClick(TObject *Sender)
{
ShowMessage(AnsiString("Boton: ") +
((TButton *)Sender)->Caption +
" Oprimido");
}

3.- Incluye varios objetos TButton a la forma.
4.- Asigna la función del punto 2 al evento OnClick de lo botones que incluiste.
5.- ejecuta la aplicación y haz click en los botones.

Listo, captas la idea?

Suerte.

WinMan
Volver arriba
Mensaje    Asunto: Responder citando

bueno, quizas mi solucion es mas chapucera pero igual te sirve

yo crearia un puntero a un TMemo en el archivo.h TMemo *aux;


TuMemoOnKeyPress{

aux=TuMemo;
FuncionKeLLamas(); //puedes pasar el memo como parametro si quieres
}

FuncionKeLLamas()
{
trabajas con aux...
}
Volver arriba
Mensaje    Asunto: Responder citando

Capto.

Funciona perfectamente. Muchas gracias.

Un saludo!
Volver arriba
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.