| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Jue 03 Sep, 2015 11:03 am Asunto: Cerrar formulario |
|
|
Para probar que un código es correcto estoy forzando que tenga lugar un error al ejecutar un query en FB.
| Código: | void __fastcall TfLisCar::FormCreate(TObject *Sender)
{
Query->Close();
Query->SQL->Text = "SELECT DISTINCT Codigo, Nombre Ls02 WHERE CodPrv = 45 ORDER BY Nombre, Codigo";
try
{
Query->Open();
}
catch(Exception *Exc)
{
ShowMessahe(Exc->Message);
this->Close();
return;
}
} |
Es evidente que el query va a dar error porque falta el FROM. Mi problema es que aunque salta la excepción y se muestra el mensaje de error el formulario no se cierra y no soy capaz de encontrar la razón. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
escafandra Master

Registrado: 29 Nov 2007Mensajes: 625Ubicación: Madrid - España
|
Publicado: Jue 03 Sep, 2015 9:35 pm Asunto: |
|
|
Close() no funciona en el evento OnCreate (tampoco lo hace en delphi), si quieres que en él se cierre el formulario, debes usar un mensaje:
| Código: | #define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#define WM_MYCLOSE WM_USER + 1
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
void __fastcall FormCreate(TObject *Sender);
private: // User declarations
void __fastcall WMForzarClose(TMessage &Msg);
public: // User declarations
__fastcall TForm1(TComponent* Owner);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_MYCLOSE, TMessage, WMForzarClose)
END_MESSAGE_MAP(TForm)
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
|
| Código: |
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::WMForzarClose(TMessage &Msg)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
PostMessage(Handle, WM_MYCLOSE, 0, 0);
}
//---------------------------------------------------------------------------
|
Saludos. |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
|