c++c++builder-xe8

With Do Begin Statement in C++ Builder


I wanna know how to write the following codes in C++ Builder by using With Do Begin statement similar to Delphi.

I tried with ComboBox->Text .... do ... try and it's not working. I tried with just do ComboBox->Text .... try, also not working.

if (ComboBox->Text.operator==(String("C++ Builder XE7")))
  {
  try
    {

     // do something

   if ((Form1->Memo1->Lines->Text).Pos("<") !=0)
      {

      // do something 

      }
    }
 catch(Exception &ex)
  {
   ShowMessage(ex.ToString());
  }


if (ComboBox->Text.operator==(String("C++ Builder XE8")))
  {
  try
    {

     // do something

   if ((Form1->Memo1->Lines->Text).Pos("<") !=0)
      {

      // do something 

      }
    }
 catch(Exception &ex)
  {
   ShowMessage(ex.ToString());
  }

Solution

  • There is no equivalent to Delphi's with statement in C++. The best you can do in C++ is use pointers/references instead, eg:

    TComboBox *cb = ComboBox;
    TStrings *lines = Form1->Memo1->Lines;
    
    if (cb->Text == "C++ Builder XE7")
    {
        try
        {
            // do something
    
            if (lines->Text.Pos("<") != 0)
            {
                // do something 
            }
        }
        catch(const Exception &ex)
        {
            ShowMessage(const_cast<Exception&>(ex).ToString());
        }
    }
    
    if (cb->Text == "C++ Builder XE8")
    {
        try
        {
            // do something
    
            if (lines->Text.Pos("<") != 0)
            {
                // do something 
            }
        }
        catch(const Exception &ex)
        {
            ShowMessage(const_cast<Exception&>(ex).ToString());
        }
    }