954,168 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Calling MessageBox in Borland C++Builder

Hello everyone,
I don't often use forums for getting answers, but I simply cannot seem to find how to fire a MessageBox under Borland Builder...I could use MessageDlg which works, but I only want an OK button, so I would rather go with MessageBox...code sample:

void __fastcall TForm1::cmdPlayClick(TObject *Sender)
{
        if (TForm1::txtLogin->Text=="")
        {
                ::MessageBox("Invalid Login Name!", "Error!", MB_OK, 0);
                return;
        }

With MessageDlg:

if (TForm1::txtPass->Text=="")
        {
                MessageDlg("Invalid Password!", mtError, mbOKCancel, 0);
                return;
        }
        TForm1::LoadLauncher();
}

NOTE: I know it defines mbOK as a variable for TMsgDlgButtons, but it fires an error that it's NOT a recognized variable...I may be overlooking something, but it's late and I've been coding for hours now just getting my ActiveX control to function without causing access violations at memory address 0x000000 (WideString function is your friend.) Next issue will be writing the code to open a file which is like an ini file, but has a different structure (ie: no "[]" but uses "=" as an assignment operator...I *think* I have the groundwork set, but am unfamiliar with C++ file manipulation, I had created a similar program in VB6 and the styles of coding are mixing in my head =)

Thanks in advance for any information.

Pretorak
Newbie Poster
2 posts since Oct 2004
Reputation Points: 10
Solved Threads: 0
 

I don't have my Builder up anymore, but replace MB_OK with zero and see what happens.

vegaseat
DaniWeb's Hypocrite
Moderator
5,976 posts since Oct 2004
Reputation Points: 1,345
Solved Threads: 1,416
 

*sigh*
I found my error, in Borland's help files, it gives an example of:

Application->MessageBox(const WideString Text, const WideString Caption, 
    TMessageButtons Buttons = TMessageButtons() << smbOK, 
    TMessageStyle Style smsInformation, TMessageButton Default = smbOK, 
    TMessageButton Escape = smbCancel);

My error was using it in my Unit1.cpp file. Since all my declarations and main code is in the header file, it gave mystery errors and I tried various implementations like TApplication::MessageBox(blah) and stopped getting errors with plain ::MessageBox(blah) I moved the code into my header file and it now works. snippet for future reference:

Application->MessageBox("Message", "Title", Buttons() << btnValue);
//btnValue is MB_OK, etc. for the various button styles.

Like I said previously, it was late and I had the too-many-hours-coding-brain-lock syndrome to recognize that issue. Figured I would reply with my fix. Thanks for your help...off to build my file handling routines =)

Pretorak
Newbie Poster
2 posts since Oct 2004
Reputation Points: 10
Solved Threads: 0
 

Hi,

Try this

if( MessageBox(0, (LPSTR) "testing", "Error",
MB_ICONWARNING | MB_OK ) ==MB_OK) //do whatever

regards

Bob

Hello everyone, I don't often use forums for getting answers, but I simply cannot seem to find how to fire a MessageBox under Borland Builder...I could use MessageDlg which works, but I only want an OK button, so I would rather go with MessageBox...code sample:

void __fastcall TForm1::cmdPlayClick(TObject *Sender)
{
        if (TForm1::txtLogin->Text=="")
        {
                ::MessageBox("Invalid Login Name!", "Error!", MB_OK, 0);
                return;
        }

With MessageDlg:

if (TForm1::txtPass->Text=="")
        {
                MessageDlg("Invalid Password!", mtError, mbOKCancel, 0);
                return;
        }
        TForm1::LoadLauncher();
}

NOTE: I know it defines mbOK as a variable for TMsgDlgButtons, but it fires an error that it's NOT a recognized variable...I may be overlooking something, but it's late and I've been coding for hours now just getting my ActiveX control to function without causing access violations at memory address 0x000000 (WideString function is your friend.) Next issue will be writing the code to open a file which is like an ini file, but has a different structure (ie: no "[]" but uses "=" as an assignment operator...I *think* I have the groundwork set, but am unfamiliar with C++ file manipulation, I had created a similar program in VB6 and the styles of coding are mixing in my head =)

Thanks in advance for any information.

robgxxx
Newbie Poster
10 posts since Jun 2005
Reputation Points: 8
Solved Threads: 1
 

Sorry I've just seen that I made a boob, the code
should have been ...

if(MessageBox(0, (LPSTR) "testing","Error",
MB_ICONWARNING | MB_OKCANCEL ) ==IDOK) //do whatever


regards

Bob G

robgxxx
Newbie Poster
10 posts since Jun 2005
Reputation Points: 8
Solved Threads: 1
 

This question has already been solved

Post: Markdown Syntax: Formatting Help
You