 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Mónica Invitado
|
Publicado: Mie 11 Sep, 2002 12:53 pm Asunto: Una función para el mismo evento de varios controles |
|
|
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 |
|
 |
tecno Invitado
|
Publicado: Mie 11 Sep, 2002 1:09 pm Asunto: |
|
|
¡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  |
|
| Volver arriba |
|
 |
Mónica Invitado
|
Publicado: Mie 11 Sep, 2002 2:17 pm Asunto: |
|
|
¡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 |
|
 |
WinMan Invitado
|
Publicado: Mie 11 Sep, 2002 7:15 pm Asunto: |
|
|
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 |
|
 |
ferpb Invitado
|
Publicado: Jue 12 Sep, 2002 9:08 am Asunto: |
|
|
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 |
|
 |
Mónica Invitado
|
Publicado: Jue 12 Sep, 2002 9:16 am Asunto: |
|
|
Capto.
Funciona perfectamente. Muchas gracias.
Un saludo! |
|
| Volver arriba |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|