Ver Mensaje Individual
  #1  
Antiguo 18-02-2021
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Reputación: 19
Angel.Matilla Va por buen camino
Objetos en un TString

Buenas. Trabajando en Builder 6, tengo un TComboBox, que al fin y al cabo no deja de ser un TString que relleno a partir de este query:
Código SQL [-]
SELECT Codigo, Nombre FROM Partidos ORDER BY Nombre
de esta manera:
Código:
Formacion->Items->Clear();
for (; !Query->Eof; Query->Next())
     Formacion->Items->AddObject(Query->FieldByName("Nombre")->AsString,
                                 (TObject *)Query->FieldByName("Codigo")->AsInteger);
Tengo dos preguntas:
  1. El valor de TObject ¿puede ser negativo? Lo digo porque cuando hago una búsqueda así:
    Código:
    int nItem = -1;
    Formacion->ItemIndex = Formacion->Items->IndexOfObject((TObject*)nItem)
    me da este error:
    Cita:
    Exception clas EStringListError with 'List index out of bunds (28)'
    con lo que interpreto que ha recorrido todo el TComboBox y no ha encontrado el valor -1, que sí aparece al ejecutar el query. Esa misma búsqueda con un valor positivo no da ningún error.
  2. He visto en la ayuda de AddObject:
    Cita:
    El objeto TStrings no es propietario de los objetos que agrega de esta manera. Los objetos agregados al objeto TStrings siguen existiendo incluso si se destruye la instancia de TStrings. Deben ser destruidos explícitamente por la aplicación.
    Con esto entiendo que con Formacion->Items->Clear() no se destruyen los objetos si no estoy equivocado. ¿Cómo haría para eliminar dichos objetos antes de volver a cargar el TComboBox?

Última edición por Angel.Matilla fecha: 18-02-2021 a las 13:43:14.
Responder Con Cita