Ver Mensaje Individual
  #10  
Antiguo 04-09-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
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
Cita:
Empezado por escafandra Ver Mensaje
El caso es que el evento OnShow puede ejecutarse varias veces y OnCreate sólo una.
Así es, en el caso auto-create forms, sólo ejecutaría el código una vez y no en las sucesivas llamadas a Show ó ShowModal (a eso me refería en el mensaje #4).

Tal vez me estoy saltando algo (ya me dirás), pero no obtengo ninguna diferencia llamando directamente al evento WM_CLOSE:
Código PHP:
void __fastcall TForm2::FormCreate(TObject *Sender)
{
  
ShowMessage(" UN MENSAJE ");
  
// PostMessage(Handle, WM_MYCLOSE, 0, 0);
  
PostMessage(HandleWM_CLOSE00);

Usando creación en demanda, también puede hacer:
Unit2.h:
Código PHP:
class TForm2 : public TForm
{
__published:    
  
TQuery *Query1;
  
void __fastcall FormCreate(TObject *Sender);
private:    
  
bool _displayed;
public:        
  
__fastcall TForm2(TComponentOwner);
  
__property bool itDisplayed = { read _displayedwrite _displayed};
}; 
Unit2.cpp
Código PHP:
void __fastcall TForm2::FormCreate(TObject *Sender)
{
  
itDisplayed true;
  
Query1->Close();
  
Query1->SQL->Text "..."
  
try {
    
Query1->Open();
  }catch(
Exception *Exc) {
    
ShowMessage("Form2: "Exc->Message);
    
itDisplayed false;
  }

Llamada :
Código PHP:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  
Form2 = new TForm2(this);
  if (
Form2->itDisplayed)
    
Form2->ShowModal();
  
Form2->Free();

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 04-09-2015 a las 09:18:05.
Responder Con Cita