Hola.
No entiendo por que el resultado no es el esperado cuando usas otro formulario, este ejemplo simplificadísimo devuelve de forma correcta la acción:
Form login,
Código PHP:
void __fastcall TfrmLogin::FormCreate(TObject *Sender)
{
EditName->Text = "";
EditPassword->Text = "";
EditPassword->PasswordChar = '*';
bitbtnAccept->ModalResult = mrOk;
bitbtnCancel->ModalResult = mrCancel;
}
void __fastcall TfrmLogin::FormClose(TObject *Sender, TCloseAction &Action)
{
if ( EditName->Text != "pepe" ) ModalResult = mrCancel;
if ( EditPassword->Text != "1234" ) ModalResult = mrCancel;
Action = caFree;
}
void __fastcall TfrmLogin::FormDestroy(TObject *Sender)
{
frmLogin = NULL;
}
Ejemplo de llamada,
Código PHP:
#include "frLogin.h"
...
{
if ( frmLogin == NULL )
frmLogin = new TfrmLogin(0);
if ( frmLogin->ShowModal() == mrCancel)
ShowMessage("No posee acceso");
else
ShowMessage("Bienvenido");
}
Saludos