Ver Mensaje Individual
  #1  
Antiguo 11-05-2017
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
Borrar objetos creados dinámicamente

En el OnCreate de un formulario, dependiendo del valor de una variable, creo de forma dinámica un TListView o un TRadioGroup así:
Código PHP:
void __fastcall TfCalEst::FormCreate(TObject *Sender)
{
     if (
mOpcMenu->Tag == || mOpcMenu->Tag == 4)
     {
          
Panel->Width 300;

          
TListView *Lista = new TListView(Panel);
          [...]
     }
     else
     {
          
TRadioGroup *RadioGroup1 = new TRadioGroup(Panel);
          [...]
     }

Esto, evidentemente, se ejecuta sin mayor problema. En un evento OnClick de un botón pido al usuario un dato para hacer unos cálculos; por ejemplo:
Código PHP:
void __fastcall TfCalEst::Button1Click(TObject *Sender)
{
     try
     {
          switch (
mOpcMenu->Tag)
          {
               case 
'1':
               case 
'2':
                    if (!
InputQuery(Application->Title"Indique el número de años a considerar para la estadística."cAux))
                              throw 
Exception("");
                    if (
StrToIntDef(cAux0) < || StrToIntDef(cAux0) > 5)
                         throw 
Exception("El valor introducido (" cAux ") es incorrecto.");
                    break;
               case 
'3':
                    [...]
                    break;
               case 
'4':
                    [...]
                    break;
          }
     }
     catch(
Exception &Exc)
     {
          if (!
Exc.Message.IsEmpty())
               
Mensaje(1Exc.Message"Volver");
          
FormCreate(NULL);
          return;
     }

Dado que si se produce una excepción se vuelve al OnCreate me interesaría que en ese catch pudiera hacer un delete de los objetos que haya creado al lanzarse el módulo pero no se me ocurre como hacerlo.
Responder Con Cita