Ver Mensaje Individual
  #9 (permalink)  
Antiguo 11/04/2016, 10:07
aguml
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 8 meses
Puntos: 3
Respuesta: Inicializar array de cadenas en constructor

Ok, lo primero que pones no funciona.
Lo demas que indicas no lo veo, para eso hago esto:
Código C++:
Ver original
  1. private:
  2.    static const char *HintsMessages[18],*HintsMessagesTypes[2];

Código C++:
Ver original
  1. const char* TForm1::HintsMessages[18] = {"Este mensaje activa la ventana.",
  2.                                          "Este mensaje pone el foco en la ventana.",
  3.                                          "Este mensaje quita el foco de la ventana.",
  4.                                          "Este mensaje indica si se redibuja la ventana o no.",
  5.                                          "Este mensaje se envia para preguntar a una ventana si se puede cerrar al cerrar sesión.",
  6.                                          "Este mensaje se envia para indicar a una ventana que se va a cerrar sesión.",
  7.                                          "Este mensaje envia un clic izquierdo.",
  8.                                          "Este mensaje es el que se da al pulsar el botón izquierdo del ratón.",
  9.                                          "Este mensaje es el que se da al soltar el botón izquierdo del ratón.",
  10.                                          "Este mensaje es el que se da al hacer doble clic con el botón izquierdo del ratón.",
  11.                                          "Este mensaje es el que se da al pulsar el botón derecho del ratón.",
  12.                                          "Este mensaje es el que se da al soltar el botón derecho del ratón.",
  13.                                          "Este mensaje es el que se da al hacer doble clic con el botón derecho del ratón.",
  14.                                          "Este mensaje es el que se da al pulsar el botón central del ratón.",
  15.                                          "Este mensaje es el que se da al soltar el botón central del ratón.",
  16.                                          "Este mensaje es el que se da al hacer doble clic con el botón central del ratón.",
  17.                                          "Este mensaje es el que se da al girar la rueda vertical del ratón.",
  18.                                          "Este mensaje es el que se da al girar la rueda horizontal del ratón."};
  19.  
  20. const char* TForm1::HintsMessagesTypes[2] = {"Esta opción espera la respuesta. El valor de retorno será la respuesta obtenida.",
  21.                                              "Esta opción no espera respuesta alguna. Retorna 1 si se envió correctamente y 0 si falló."};
  22. //---------------------------------------------------------------------------
  23. __fastcall TForm1::TForm1(TComponent* Owner)
  24.    : TForm(Owner)
  25. {
  26.    //Inicializo la cadena constante de validacion de entrada del teclado
  27.    GoodKey = "0123456789abcdefABCDEF";
  28. }
Esto funciona pero no se que tan correcto será.
Otra opcion antes de crearme mi propia clase para eso seria usar por ejemplo TStrings de C++Builder e ir añadiendo uno a uno todos los miembros y seria algo asi:
Código C++:
Ver original
  1. TStrings *HintsMessagesTypes;
  2. HintsMessagesTypes=new TListStrings;
  3. HintsMessagesTypes->Add("Esta opción espera la respuesta. El valor de retorno será la respuesta obtenida.");
  4. HintsMessagesTypes->Add("Esta opción no espera respuesta alguna. Retorna 1 si se envió correctamente y 0 si falló.");
Eso lo hago en el evento OnCreate del form y en el OnClose o en el OnDestroy hago:
Código C++:
Ver original
  1. HintsMessagesTypes->Clear();
  2. delete HintsMessageTypes;
No lo hago asi por lo engorroso que es el tener que estar gestionando la memoria dinamica y los problemas que puede dar al correr en un pc que no tenga suficiente memoria libre y tenga que crear items en tiempo de ejecucion mientras que lo que yo intento ya ocupen una memoria y no soliciten mas al arrancar. Creo que la unica forma es como lo he hecho con static o al menos la unica que me ha funcionado.