necesito de nuevo ayuda..... Ecfisa si estas por aqui Maestro
mirad...... tengo la siguiente estructura donde exceptuando los 2 primeros campos que son AnsiString...el resto son enteros..... lo tengo en un array de 30 posiciones
Código PHP:
struct mapp {
AnsiString Nombre_Sector;
AnsiString Created_By;
int objetos;
int tipo_objeto;
int coordX_objeto;
int coordY_objeto;
int rutas_inicio_X;
int rutas_fin_X;
int rutas_inicio_Y;
int rutas_fin_Y;
} mapita[30];
entonces....guardo informacion en el array sin problemas.....el problema es que utilizo un combo box donde voy almacenando los tipos de objeto (si es Planeta, Station, Ruta o Asteroides) el caso, es que cuando selecciono un elemento de ese combo....al principio coinciden con la ordenacion de los elementos del array de la estructura pero si borro un elemento del combo ya no coinciden y en fin....necesito una forma de "compactar" la estructura de forma que no queden huecos entre los registros para que cuando seleccione un elemento del combo, este sea un "casillero" de la estructura que apunte al objeto en cuestion......alguien me entiende?
esto es el codigo de DELETE object
Código PHP:
void __fastcall TForm1::sButton4Click(TObject *Sender)
{
// Inicializamos todo a cero.
int contador = 0;
// Borramos el objeto de la estructura y el combobox
contador = combo_object;
mapita[contador].Nombre_Sector = "";
mapita[contador].Created_By = "";
mapita[contador].coordX_objeto = 0;
mapita[contador].coordY_objeto = 0;
mapita[contador].rutas_fin_X = 0;
mapita[contador].rutas_fin_Y = 0;
mapita[contador].rutas_inicio_X = 0;
mapita[contador].rutas_inicio_Y = 0;
mapita[contador].objetos = 0;
mapita[contador].tipo_objeto = 0;
ComboBox_Object->Items->Clear();
ComboBox_Object->Text = "";
for(int contador4 = 0; contador4 < 30; contador4++)
{
if(mapita[contador4].objetos >= 1)
{
if(mapita[contador4].objetos <= 500) ComboBox_Object->Items->Add("Planet");
if(mapita[contador4].objetos == 600) ComboBox_Object->Items->Add("Route");
if(mapita[contador4].objetos == 700 || mapita[contador4].objetos == 701 ) ComboBox_Object->Items->Add("Belt-Asteroids");
if(mapita[contador4].objetos > 1000)
{
ComboBox_Object->Items->Add("Station");
}
}
}
}