Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-07-2018
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Ubicación: Toledo - España
Posts: 1.418
Poder: 21
Angel.Matilla Va por buen camino
Buscar un TObject en un ComboBox

Buenas. Vuelvo a la carga con los ComboBox y el método AddObject. Ya en otro hilo pregunté, y al final me salió bien, como localizar un objeto cargado con un int en un ComboBox con este código:
Código PHP:
ComboBox1->ItemIndex ComboBox1->Items->IndexOfObject((TObject*)fMenu->Query->FieldByName("Zona")->AsInteger); 
Ahora tengo otro problema. Tengo otro ComboBox en el que el AddObject se hace con un AnsiString, lo que hago gracias al código que me pusisteis en Uso de TObject en un TStringList, pero ahora no sé como hacer para encontrar ese valor que he cargado a partir del resultado de un query. He probado esto:
Código PHP:
Clase = new TClase;
Clase->Cadena fMenu->Query->FieldByName("Pais")->AsString;
ComboBox2->ItemIndex ComboBox2->Items->IndexOfObject((TObject*)Clase); 
pero me devuelve siempre -1 y por lo tanto no muestra nada. Y el campo que quiero buscar sí devuelve información.

Última edición por ecfisa fecha: 26-07-2018 a las 18:17:47. Razón: corregir enlace
Responder Con Cita
  #2  
Antiguo 26-07-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Es que la nueva instancia creada para la búsqueda, no es igual a la buscada (aunque coincida el atributo Cadena), revisa si te sirve de este modo:
Código PHP:
int searchStrOnObj(TComboBox *CB, const AnsiString str)
{
  
int i;
  
AnsiString s "";

  for ( 
0!= str && CB->Items->Counti++ )
    
= ((TClase*)CB->Items->Objects[i])->Cadena;

  return 
i-1;

Ejemplo de uso:
Código PHP:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  
int inx searchStrOnObj(ComboBox1Query->FieldByName("Pais")->AsString);
  
TClase *cl reinterpret_cast<TClase*>(ComboBox1->Items->Objects[inx]);

  
ShowMessage(ComboBox1->Items->Strings[inx]+"\n"+cl->Cadena);

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 27-07-2018
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Ubicación: Toledo - España
Posts: 1.418
Poder: 21
Angel.Matilla Va por buen camino
¡Perfecto! Muchísimas gracias.
Responder Con Cita
  #4  
Antiguo 31-07-2025
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Ubicación: Toledo - España
Posts: 1.418
Poder: 21
Angel.Matilla Va por buen camino
Estoy teniendo un problema que no sé como resolver. Hace unos meses se me infectó el ordenador con un virus y me borró un montón de carpetas; gracias a un buen amigo pude rescatar gran parte de la que se había borrado pero algunos ficheros quedaron tocados, entre ellos varios fuentes de algunos proyectos.

Cuando hace unos años planteé este hilo, ecfisa me dio una solución estupenda que me funcionó a la perfección, pero cuando he ido a usarla en un nuevo proyecto, al compilar ese mismo código:
Código:
int searchStrOnObj(TComboBox *CB, const AnsiString str)
{
  int i;
  AnsiString s = "";

  for ( i = 0; s != str && i < CB->Items->Count; i++ )
    s = ((TClase*)CB->Items->Objects[i])->Cadena;

  return i-1;
}
Builder me devuelve un error:
Cita:
[C++ Error] Funciones.cpp(1763): E2451 Undefined symbol 'TClase'
Como tal vez uno de los ficheros que se llevó por delante el virus es donde hacía la definición de ese TClase*, no sé si me falta algo más para eliminar ese error. ¿Podéis ayudarme?
Responder Con Cita
  #5  
Antiguo 13-08-2025
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Usas TClase para realizar un casting del puntero CB->Items->Objects[i])->Cadena. Esa definición de TClase debe set tuya. Ahora bien, no se si en Cadena estas guardando un puntero. Ni no es así, el casting no va a funcionar correctamente aunque compile. Eso sólo lo sabes tú.


Saludos.
Responder Con Cita
  #6  
Antiguo 13-08-2025
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Ubicación: Toledo - España
Posts: 1.418
Poder: 21
Angel.Matilla Va por buen camino
Cita:
Empezado por escafandra Ver Mensaje
Usas TClase para realizar un casting del puntero CB->Items->Objects[i])->Cadena. Esa definición de TClase debe set tuya. Ahora bien, no se si en Cadena estas guardando un puntero. Ni no es así, el casting no va a funcionar correctamente aunque compile. Eso sólo lo sabes tú.


Saludos.
El problema, como comentaba, es que el código lo he cogido de otro proyecto que tenía que se vio muy afectado por un virus (varios ficheros quedaron prácticamente destruidos) y no sé como hacer la definición de ese TClase porque no lo recuerdo; ese es el verdadero problema: que no recuerdo como hacer la definición.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Uso de TObject en un TStringList Angel.Matilla C++ Builder 4 07-03-2018 18:16:06
Convertir Un TObject a String? Jhonjhon_123 OOP 5 22-06-2010 19:05:37
Saber que clase-hija es un TObject eflosten OOP 6 20-04-2010 12:31:38
Como buscar en un combobox principiante22 Varios 2 18-08-2008 03:46:30
Buscar texto en ComboBox conociendo el comienzo Tomás OOP 13 24-03-2004 22:09:23


La franja horaria es GMT +2. Ahora son las 05:29:21.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi