| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
tool Invitado
|
Publicado: Sab 17 Ago, 2002 10:49 am Asunto: copiar, cortar, pegar... |
|
|
hola, mis dudas son:
¿Se puede hacer copiar, pegar, cortar... en cualquier objeto que almacene texto (Edit, Combobox, memo, etc)?
Encontre las propiedades CutToClipboard(), CopyToClipboard() y tal
¿Como puedo recoger una referencia a un objeto del cual desconozco el nombre pero que tiene el focus?
gracias!  |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 19 Ago, 2002 12:02 am Asunto: |
|
|
EL control que tiene el foco esta en la propiedad ActiveControl del Form.
Por ejemplo, añade un TSpeedButton al Form y en su evento OnClick mete el siguiente código:
TCustomEdit *edit = dynamic_cast<TCustomEdit*>(ActiveControl);
if (edit)
edit->CutToClipboard();
esto hace que estemos en el control de edición que estemos "corta" el texto al portapapeles. Lo mismo con el resto de funciones...
Lo de que sea un TSpeedButton es que debe ser algún control que no "robe" el foco.
De todos modos antes de hacer todo esto te será mas simple usar el componente TActionList donde todo esto esta resuelto de manera mucho mas comoda. Mira en el directorio de ejemplos del builder, veras que en varios de ellos se usa esto. |
|
| Volver arriba |
|
 |
tOOL Cdt

Registrado: 18 Ago 2002Mensajes: 17Ubicación: Grao de Castellón
|
Publicado: Mar 20 Ago, 2002 6:04 pm Asunto: no me va |
|
|
Hola Leo,
El directorio de ejemplos lo borre por falta de espacio y no tengo mucho tiempo para investigar el ActionList (tengo que entregar el programa dentro de muy poco).
Intento cortar de un TDBMemo con lo que me dijiste pero imposible.
¿Se te ocurre como podria ser?
Gracias por responder! _________________ tOOL
billhicks@ono.com |
|
| Volver arriba |
|
 |
R. Porcar Site Admin

Registrado: 08 Ago 2002Mensajes: 113Ubicación: Castellón (España)
|
Publicado: Mar 20 Ago, 2002 10:25 pm Asunto: |
|
|
| Código: | void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{
TDBMemo *edit = dynamic_cast<TDBMemo*>(ActiveControl);
if (edit)
edit->CutToClipboard();
} |
|
|
| Volver arriba |
|
 |
tOOL Cdt

Registrado: 18 Ago 2002Mensajes: 17Ubicación: Grao de Castellón
|
Publicado: Mar 20 Ago, 2002 10:53 pm Asunto: tampoco |
|
|
Nada! Que no quiere ir!
Lo pongo en un SpeedButton tal como me decis! y el codigo en el evento OnClick y como si nada.
 _________________ tOOL
billhicks@ono.com |
|
| Volver arriba |
|
 |
R. Porcar Site Admin

Registrado: 08 Ago 2002Mensajes: 113Ubicación: Castellón (España)
|
Publicado: Mar 20 Ago, 2002 11:02 pm Asunto: |
|
|
Seleccionas texto para que lo corte/copie?
Puedes coger todo el contenido haciendo un edit->SelectAll() antes de cortarlo o copiarlo. |
|
| Volver arriba |
|
 |
tOOL Cdt

Registrado: 18 Ago 2002Mensajes: 17Ubicación: Grao de Castellón
|
Publicado: Mar 20 Ago, 2002 11:21 pm Asunto: |
|
|
selecciono texto y le doy al boton y nada!
he probado forzando la seleccion como tu me has dicho y tampoco!
esto ya es cosa del diablo!
Podria aprender a usar un ActionList pero leer en ingles en la ayuda del Builder me da dolor de cabeza y ad+ me qeda poco tiempo!
Estoy desesperao!  _________________ tOOL
billhicks@ono.com |
|
| Volver arriba |
|
 |
tOOL Cdt

Registrado: 18 Ago 2002Mensajes: 17Ubicación: Grao de Castellón
|
Publicado: Jue 22 Ago, 2002 8:44 pm Asunto: |
|
|
Sigo teniendo la misma duda. ¿Alguien sabe porque no me funciona o que puedo hacer?
Al que me ayude le monto un piso donde quiera!  _________________ tOOL
billhicks@ono.com |
|
| Volver arriba |
|
 |
BITMAN Invitado
|
Publicado: Mie 05 Mar, 2003 6:53 pm Asunto: |
|
|
Hola,
Continuando este hilo, alguien sabe por que puede dar problemas el realizar el casting mediante dynamic_cast<> y reemplazandolo por un casting 'tradicional' funciona ok?
Tengo la siguiente funcion para cambiar el color a un determinado control, puede ser un TEdit o un TMaskEdit(en este caso da el problema).
Ejemplo:
void Pruebas(TObject *Sender)
{
TEdit *ed = (TEdit*)Sender; // funciona ok
TEdit *ed = dynamic_cast<TEdit*>Sender; // da problemas en determinados casos.
}
saludos, |
|
| Volver arriba |
|
 |
|