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

Registrado: 07 Feb 2007Mensajes: 63Ubicación: Torreòn Coahuila Mèxico
|
Publicado: Lun 09 Abr, 2007 4:09 am Asunto: Autoseleccion en un combobox |
|
|
Que tal, tengo una pregunta esperando que porfavor me la aclaren...
Gracias a un usuario de este foro supe como guardar en un *.txt el item de un combobox, este mismo archivo quiero leerlo y sacar el ultimo caracter de la cadena que se crea, por ejemplo, supongamos que al seleccionar el combobox se crea un *.txt de esta menera:
seleccion=a
yo quiero extraer de esa cadena solo la letra "a" y mostrarla en un Label, de esta misma letra, como ya la tengo en el *.txt y en el combobox, quiero que este componente sepa que es la letra "a" y la autoseleccione del combobox por default...
Gracias... _________________ No temas a las computadoras... teme a la falta de ellas...
Isaac Asimov |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Lun 09 Abr, 2007 7:41 am Asunto: |
|
|
No te he entendido muy bien, pero para seleccionar el última carácter de cada uno de los ComboBox se me ocurre algo así:
| Código: | AnsiString cLinea, cLetra;
for (int nItem = 0; nItem <ComboBox1>Items->Count; nItem ++)
{
cLinea = ComboBox1->Items->Strings[nItem];
cLetra = cLinea.SubString(cLinea.Length(), 1);
} |
Así sacas el último carácter de cada uno de los ítemes del combobox. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
Yoshi Lt JG

Registrado: 07 Feb 2007Mensajes: 63Ubicación: Torreòn Coahuila Mèxico
|
Publicado: Lun 09 Abr, 2007 12:32 pm Asunto: |
|
|
Gracias por responder, te explico mas a detalle...
Quiero cargar un *.txt la informacion que contiene es algo asi:
letra=a
lo que necesito es extraer solo la letra "a" y mostrarla en un edit....
con lo del combobox lo que quiero es saber como puedo autoseleccionar uno de los items que tiene al crearse la forma... como si guardara la configuracion de lo que he seleccionado, para que no se regrese al primer item del combobox...
Gracias, espero haberme explicado... _________________ No temas a las computadoras... teme a la falta de ellas...
Isaac Asimov |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mar 10 Abr, 2007 7:58 am Asunto: |
|
|
Yoshi: No acabo de comprender lo que quieres. A ver si es algo así:1. Leo una línea del fichero txt (Por ejemplo: ESTO ES UNA PRUEBA)
2. Cargo el último carácter (A) en un TEdit.
3. Si encuentro un elemento de un ComboBox que termine igual, lo selecciono. ¿Es eso? _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
Yoshi Lt JG

Registrado: 07 Feb 2007Mensajes: 63Ubicación: Torreòn Coahuila Mèxico
|
Publicado: Mar 10 Abr, 2007 12:30 pm Asunto: |
|
|
Dividamos mis dudas, si, lo que dices del txt es correcto... y con lo del combobox quiero saber como guardar la seleccion que hice, por ejemplo si en el combobox tengo enlistada las letras de la "A" a la "D" y selecciono la "B" quiero que al cerrar la forma y al volverla abrir siga seleccionada la letra "B".... _________________ No temas a las computadoras... teme a la falta de ellas...
Isaac Asimov |
|
| Volver arriba |
|
 |
cecito Capt

Registrado: 25 Nov 2003Mensajes: 164Ubicación: Arequipa - Perú
|
Publicado: Mar 10 Abr, 2007 5:15 pm Asunto: |
|
|
Primero debes ver que sucede despues de que cierras el formulario, si al formulario lo destruyes con "delete Formulario" o "Formulario.Free()"; de ser cualquiera de los dos casos la proxima vez que abras el formulario ya haz perdido cualquier configurarión o valor que hubieses puesto anteriormente.
De ser ese el caso debes recuperar el valor de la propiedad ItemIndex del combo antes de cerrar el formulario en una variable global y reponerselo al ItemIndex del combo antes de volver a mostrar el formulario.
Me gustaría ayudarte con tu primera inquietud, pero no he logrado entender que es lo que deseas hacer, disculpa. Ahora si pudieses clarificarlo más me sería más fácil el poder ayudarte, imaginate que no se nada de computo ni se que es una computadora, a ver así como me lo explicarías?  |
|
| Volver arriba |
|
 |
Yoshi Lt JG

Registrado: 07 Feb 2007Mensajes: 63Ubicación: Torreòn Coahuila Mèxico
|
Publicado: Mie 11 Abr, 2007 12:55 am Asunto: |
|
|
No sè de que me hablas en tu ultima respuesta... pero te lo explico de esta manera:
Supongamos que tienes un programa X... en ese programa guardas tus preferencias, por ejemplo el tamaño de la fuente asi como su estilo... y en este ultimo (el tipo de fuente) enlistas en un combobox las fuentes que tiene instaladas el sistema... le das en "Aceptar" (Suponiendo que ese sea el botòn para guardar tus preferencias".... y luego al volver a abrir esa forma (la cierras simplemente haciendo click al botòn de cerrar de la ventana) te das cuenta que en el combobox ya no està seleccionada la fuente que seleccionaste... si no la fuente que tiene el valor [0] como resolverias este problema?.... _________________ No temas a las computadoras... teme a la falta de ellas...
Isaac Asimov |
|
| Volver arriba |
|
 |
cecito Capt

Registrado: 25 Nov 2003Mensajes: 164Ubicación: Arequipa - Perú
|
Publicado: Mie 11 Abr, 2007 3:27 am Asunto: |
|
|
Hola Yoshi, solo queria decir que a veces uno se enfrasca en su algoritmo que piensa que todos estamos a su misma frecuencia y a veces olvidamos de decir ciertos detalles que son los que clarifican todo el problema.
En cuanto a la solución de tu problema sigo pensando( como en mi primera respuesta) que el error puede estar en la forma como creas tu formulario, por ejemplo si lo utilizas de esta forma no va ha poder funcionar como tu has descrito:
| Código: | void MostrarMiFormulario()
{ TMiFormulario * p = new TMiFormulario(NULL);
p->ShowModal();
delete p;// o tambien p->Free();
} |
Como puedes ver se crea el formulario, luego se muestra y al final se DESTRUYE con lo que se pierde cualquier configuración previa.
Se podría hacer lo siguiente para conservar tu configuración | Código: | void MostrarMiFormulario()
{ static int MIEleccionAnterior = -1;
TMiFormulario * p = new TMiFormulario(NULL);
if( MiEleccionAnterior >=0 )
{
p->cboMiComboFuentes->ItemIndex = MiSeleccionAnterior;
}
p->ShowModal();
MiSeleccionAnterior = p->cboMiComboFuentes->ItemIndex;
delete p;// o tambien p->Free();
} |
Como ves antes de mostrar al formulario le paso lo que anteriormente habia elegido y al finalizar su presentación( el ShowModal ) guardo el valor que se había elegido.
Espero que ahora si haya podido ayudarte, si no sería conveniente que colgaras tú algortimo para poder analizarlo y echarte una mano.  |
|
| Volver arriba |
|
 |
Yoshi Lt JG

Registrado: 07 Feb 2007Mensajes: 63Ubicación: Torreòn Coahuila Mèxico
|
Publicado: Mie 11 Abr, 2007 3:58 am Asunto: |
|
|
Jeje.... me avientan codigo como si supiera programar señores.... gracias por ello... la forma esa que dicen con Showmodal simplemente no existe... es una nueva forma con un combobox y ya... el problema se està resolviendo gracias a este tutorial, la respuesta son los *.ini....
http://www.functionx.com/bcb/howto/inifile.htm _________________ No temas a las computadoras... teme a la falta de ellas...
Isaac Asimov |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mie 11 Abr, 2007 7:49 am Asunto: |
|
|
| Yoshi escribió: | | Dividamos mis dudas, si, lo que dices del txt es correcto... y con lo del combobox quiero saber como guardar la seleccion que hice, por ejemplo si en el combobox tengo enlistada las letras de la "A" a la "D" y selecciono la "B" quiero que al cerrar la forma y al volverla abrir siga seleccionada la letra "B".... |
Pues hombre se me ocurre una idea: usa la propiedad Tag. Por ejemplo:
| Código: | void __fastcall TForm1::FormCreate(TObject *Sender)
{
ComboBox1->Tag = -1;
}
//--------------------------------------------------------------------------- |
En el OnEnter del ComboBox:
| Código: | void __fastcall TForm1::ComboBox1Enter(TObject *Sender)
{
if (ComboBox1->Tag != -1)
ComboBox1->ItemIndex = ComboBox1->Tag;
}
//--------------------------------------------------------------------------- |
Y en el OnClick:
| Código: | void __fastcall TForm1::ComboBox1Click(TObject *Sender)
{
if (ComboBox1->ItemIndex != -1)
ComboBox1->Tag = ComboBox1->ItemIndex;
}
//--------------------------------------------------------------------------- |
Esto si no cierras el formulario. Si lo cierras tienes dos alternativas: O bien, como dices emplear unfichero externo (ini, txt, etc.) o usar una variable del formulario que llama al que contiene el ComboBox. Si el ComboBox está en un formulario Form2 que es llamado por Form1 con Forma2->ShowModal();, puedes definir un variable en ese Form1 y poner los mismos eventos que te he sugerido.[/code] _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
|