| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
hetorsc Lt JG

Registrado: 11 Abr 2007Mensajes: 61
|
Publicado: Mar 20 Oct, 2009 10:32 am Asunto: Edit con tamaño variable segun el texto?? ¡¡AYUDA!! |
|
|
¿Hay alguna forma de crear un Edit que cambie de tamaño según el texto que se le ponga?
Lo he intentado así,
| Código: | Edit->Width=Edit->Text.Length()*13; |
pero no sale correctamente, ya que cada carácter tiene un tamaño.
Lo que quiero hacer es que el Edit aumente o reduzca su tamaño al mimo tiempo que escribes o borras.
Gracias y un saludo  |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mar 20 Oct, 2009 1:10 pm Asunto: Re: Edit con tamaño variable segun el texto?? ¡¡AYUDA!! |
|
|
| hetorsc escribió: | ¿Hay alguna forma de crear un Edit que cambie de tamaño según el texto que se le ponga?
Lo he intentado así,
| Código: | Edit->Width=Edit->Text.Length()*13; |
pero no sale correctamente, ya que cada carácter tiene un tamaño.
Lo que quiero hacer es que el Edit aumente o reduzca su tamaño al mimo tiempo que escribes o borras.
Gracias y un saludo  |
Se me ocurre que puedes hacerlo en el evento OnKeyUp del TEdit
| Código: | void __fastcall TForm1::EditKeyUp(TObject *Sender, WORD &Key, TShiftState Shift)
{
Edit->Width = Edit->Text.Length() * 13;
Edit->Repaint();
}
//--------------------------------------------------------------------------- |
Pero el problema del ancho de letra si que no sé como resolverlo. De todas formas creo que tendrías que controlar además que no se saliese el TEdit del formulario: Controla que Edit->Left + Edit->Width sea MENOR que Form1->Left + Form1->Width. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
bosoft Master

Registrado: 23 Oct 2005Mensajes: 342
|
Publicado: Mar 20 Oct, 2009 8:25 pm Asunto: |
|
|
Creo que lo que estás buscando es algo como: | Código: | Edit->Width=Canvas->TextWidth(Edit->Text); |
No lo he probado, pero .....
Saludos, Bosoft |
|
| Volver arriba |
|
 |
hetorsc Lt JG

Registrado: 11 Abr 2007Mensajes: 61
|
Publicado: Mar 20 Oct, 2009 11:43 pm Asunto: |
|
|
| Cita: | Creo que lo que estás buscando es algo como:
Código:
Edit->Width=Canvas->TextWidth(Edit->Text);
No lo he probado, pero ..... |
Funciona perfecto!!
Muchas gracias por las respuestas
Un Saludo  |
|
| Volver arriba |
|
 |
|