Writing and Reading Multipage Files (C++ Builder)
Take the following steps to create a multipage file, then load and display the images from the file. For a list of formats that support multipage file operations, see the iModify parameter of the Save method.
| 
 1.  | 
 Start C++ Builder.  | 
| 
 2.  | 
 In the File menu, choose New Application.  | 
| 
 3.  | 
 On the Builder toolbar, click the LEADTOOLS tab. If you have used a LEAD VCL control before, the icon appears on the toolbar. Otherwise, refer to Installing VCL before continuing with this tutorial.  | 
| 
 4.  | 
 
  | 
| 
 5.  | 
 Code the main form's FormShow procedure as follows. In online help, you can copy the block of code and paste it into your application. For a general explanation of how images are positioned and scaled, refer to Displaying an Image.  | 
void __fastcall TForm1::FormShow(TObject *Sender)
{
   float HeightFactor1, WidthFactor1, HeightFactor2, WidthFactor2;
   float HeightAllowed, WidthAllowed;
   int ImageWidth1, ImageWidth2, ImageHeight1, ImageHeight2;
   /*Disable automatic repainting of the image.*/
   Lead1->AutoRepaint = False;
   Lead2->AutoRepaint = False;
   /*Turn off scroll bars to make sure we use the full client area.*/
   Lead1->AutoScroll = False;
   Lead2->AutoScroll = False;
   /* Position and size the main form so that it takes up most of the screen. */
   Width = Screen->Width * 0.9;
   Height = Screen->Height * 0.8;
   Left = (Screen->Width - Width) / 2;
   Top = (Screen->Height - Height) / 2;
   /*Display the form and set the mouse pointer to an hourglass.*/
   Show();
   Screen->Cursor = crHourGlass;
   /*Load the bitmaps. These hard-coded path names may be different on your system.*/
   Lead1->Load("C:\\lead\\IMAGES\\IMAGE1.CMP", 0, 0, 1);
   Lead2->Load("C:\\lead\\IMAGES\\IMAGE2.CMP", 0, 0, 1);
   /*Save the bitmaps to a single multipage TIFF file*/
   Lead1->Save("C:\\lead\\IMAGES\\COMBINED.MPT", FILE_TIF, 24, 0, SAVE_OVERWRITE);
   Lead2->Save("C:\\lead\\IMAGES\\COMBINED.MPT", FILE_TIF, 24, 0, SAVE_APPEND);
   /*Get information about the images so that we can size the controls.*/
   Lead1->GetFileInfo("C:\\lead\\IMAGES\\COMBINED.MPT", 1);
   Lead2->GetFileInfo("C:\\lead\\IMAGES\\COMBINED.MPT", 2);
   /*Clear the bitmaps from memory*/
   Lead1->Bitmap = 0;
   Lead2->Bitmap = 0;
   /*Make the controls visible so that we can size and position them.*/
   /*They will not really appear until we load an image and paint it.*/
   Lead1->Visible = True;
   Lead2->Visible = True;
   /*Set the variables used for preserving the aspect ratio.*/
   HeightFactor1 = Lead1->InfoHeight;
   WidthFactor1 = Lead1->InfoWidth;
   HeightFactor2 = Lead2->InfoHeight;
   WidthFactor2 = Lead2->InfoWidth;
   HeightAllowed = ClientHeight * 0.8;
   WidthAllowed = ClientWidth * 0.45;
   /*Center each LEAD control on half of the form, preserving the aspect ratio.*/
   /*Check to see if using the maximum width will make the image too tall.*/
   /*Set the dimensions based on the result.*/
   if((WidthAllowed * HeightFactor1) / WidthFactor1 < HeightAllowed)
   {
      Lead1->Left = (ClientWidth / 4) - (WidthAllowed / 2);
      Lead1->Width = WidthAllowed;
      Lead1->Height = (Lead1->Width * HeightFactor1) / WidthFactor1;
      Lead1->Top = (ClientHeight - Lead1->Height) / 2;
   }
   else
   {
      Lead1->Top = (ClientHeight - HeightAllowed) / 2;
      Lead1->Height = HeightAllowed;
      Lead1->Width = (Lead1->Height * WidthFactor1) / HeightFactor1;
      Lead1->Left = (ClientWidth / 4) - (Lead1->Width / 2) ;
   }
   if( (WidthAllowed * HeightFactor2) / WidthFactor2 < HeightAllowed)
   {
      Lead2->Left = (ClientWidth * 3/4) - (WidthAllowed / 2);
      Lead2->Width = WidthAllowed;
      Lead2->Height = (Lead2->Width * HeightFactor2) / WidthFactor2;
      Lead2->Top = (ClientHeight - Lead2->Height) / 2;
   }
   else
   {
      Lead2->Top = (ClientHeight - HeightAllowed) / 2;
      Lead2->Height = HeightAllowed;
      Lead2->Width = (Lead2->Height * WidthFactor2) / HeightFactor2;
      Lead2->Left = (ClientWidth * 3 / 4) - (Lead2->Width / 2);
   }
   /*Load the bitmaps from the multipage TIFF file*/
   Lead1->Load("C:\\lead\\IMAGES\\COMBINED.MPT", 24, 1, 1);
   Lead2->Load("C:\\lead\\IMAGES\\COMBINED.MPT", 24, 2, 1);
   /*Set the image display sizes to match the LEAD controls*/
   ImageWidth1 = Lead1->Width;
   ImageHeight1 = Lead1->Height;
   Lead1->SetDstRect(0, 0, ImageWidth1, ImageHeight1);
   Lead1->SetDstClipRect(0, 0, ImageWidth1, ImageHeight1);
   /*Set the image display sizes to match the LEAD controls*/
   ImageWidth2 = Lead2->Width;
   ImageHeight2 = Lead2->Height;
   Lead2->SetDstRect(0, 0, ImageWidth2, ImageHeight2);
   Lead2->SetDstClipRect(0, 0, ImageWidth2, ImageHeight2);
   /*Display the images*/
   Lead1->ForceRepaint();
   Lead2->ForceRepaint();
   /*Set the mouse pointer back to the default*/
   Screen->Cursor = crDefault;
}
| 
 6.  | 
 Build and run your program to test it.  |