OnMoved (C++)
Description
This example uses a splitter and two image controls to create a slide-show effect. The example displays an image (the current "slide"), which can be hidden behind a screen that looks like a venetian blind. When the blind is pulled down to completely cover the current slide, the slide changes to a different image. When the blind is raised, the new image appears.
To prepare this example, follow these steps:
- Place an image control on the form. Set the picture property to a bitmap of a venetian blind. Set the Stretch property to
True
. Set the Align property toalTop
. - Add a splitter control to the form. Set the Align property to
alTop
. Set the Cursor property tocrVSplit
. Set the OnMoved event handler to the code that appears below. Set the MinSize property to 1. - Add a second image control to the form. Set the Align property to
alClient
. Set the Stretch property toTrue
. - Select the form and add the OnCreate and OnDestroy event handlers that appear below.
- Add the global variables below to the unit.
int CurImage;
Graphics::TBitmap *BMPs[5];
Code
void __fastcall TForm1::Splitter1Moved(TObject *Sender)
{
// Check if the blind is closed.
if (Image2->Height <= 1)
{
// The blind is closed; change the current slide.
CurImage++;
if (CurImage == 5)
CurImage = 0;
Image2->Picture->Bitmap = BMPs[CurImage];
}
}
#include <memory> //For STL auto_ptr class
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
// Initialize the array of slides.
// These must be freed in the OnDestroy event handler.
static std::auto_ptr<Graphics::TBitmap> _MyBMP0Cleaner(BMPs[0] = new Graphics::TBitmap);
BMPs[0]->LoadFromFile("..\\factory.bmp");
static std::auto_ptr<Graphics::TBitmap> _MyBMP1Cleaner(BMPs[1] = new Graphics::TBitmap);
BMPs[1]->LoadFromFile("..\\Rhododendron.bmp");
static std::auto_ptr<Graphics::TBitmap> _MyBMP2Cleaner(BMPs[2] = new Graphics::TBitmap);
BMPs[2]->LoadFromFile("..\\littleB_64.bmp");
static std::auto_ptr<Graphics::TBitmap> _MyBMP3Cleaner(BMPs[3] = new Graphics::TBitmap);
BMPs[3]->LoadFromFile("..\\Soap Bubbles.bmp");
static std::auto_ptr<Graphics::TBitmap> _MyBMP4Cleaner(BMPs[4] = new Graphics::TBitmap);
BMPs[4]->LoadFromFile("..\\Gone Fishing.bmp");
CurImage = 0;
Image2->Picture->Bitmap = BMPs[0];
}
Uses
- Vcl.ExtCtrls.TSplitter.OnMoved ( fr | de | ja )
- Vcl.Controls.TControl.Cursor ( fr | de | ja )