home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / Bonus / Plasmatech / ptscp_examples.exe / %MAINDIR% / Examples / ImageCombo / CBuilder / FMain.cpp next >
Encoding:
C/C++ Source or Header  |  2001-08-31  |  2.1 KB  |  65 lines

  1. //---------------------------------------------------------------------------
  2. #include <vcl\vcl.h>
  3. #include <memory>
  4. #pragma hdrstop
  5.  
  6. #include "FMain.h"
  7. //---------------------------------------------------------------------------
  8. #pragma link "UPTImageCombo"
  9. #pragma link "UPTFrame"
  10. #pragma resource "*.dfm"
  11. TFrmMain *FrmMain;
  12.  
  13. //---------------------------------------------------------------------------
  14. TIcon* __fastcall GetIcon( HANDLE hInst, int id, int size, TIcon* icon )
  15. {
  16.   icon->Handle = LoadImage( hInst, MAKEINTRESOURCE(id), IMAGE_ICON, size,size, 0 );
  17.   return icon;
  18. }
  19. //---------------------------------------------------------------------------
  20. __fastcall TFrmMain::TFrmMain(TComponent* Owner)
  21.     : TForm(Owner)
  22. {
  23.  //-- Create image list and load 16x16 icons from resources
  24.   TImageList* imglist = new TImageList(this);
  25.   {
  26.     std::auto_ptr<TIcon> i(new TIcon);
  27.     imglist->AddIcon( GetIcon(HInstance, 100, 16, i.get()) );
  28.     imglist->AddIcon( GetIcon(HInstance, 101, 16, i.get()) );
  29.     imglist->AddIcon( GetIcon(HInstance, 102, 16, i.get()) );
  30.   }
  31.  
  32.  //--Assign image list to image combo
  33.   PTImageCombo1->ImageList = imglist;
  34.  
  35.  //--Fill the image combo with some data items, and associate a frame control with each entry
  36.   TPTImageComboItem* item;
  37.   item = PTImageCombo1->AddItem( "First Item", 0, 0 );
  38.   item->Data = PTFrame1;
  39.  
  40.   item = PTImageCombo1->AddItem( "Second Item", 1, 1 );
  41.   item->Data = PTFrame2;
  42.  
  43.   item = PTImageCombo1->AddItem( "Third Item", 2, 2 );
  44.   item->Data = PTFrame3;
  45.  
  46.   item = PTImageCombo1->AddItem( "Fourth Item", 1, 1 );
  47.   item->Data = PTFrame4;
  48.  
  49.   PTImageCombo1->ItemIndex = 0;
  50. }
  51. //---------------------------------------------------------------------------
  52. void __fastcall TFrmMain::PTImageCombo1SelEndOk(TObject *Sender)
  53. {
  54.   TPTFrame* itemd = dynamic_cast<TPTFrame*>((TObject*)PTImageCombo1->ImageComboItem[PTImageCombo1->ItemIndex]->Data);
  55.   if (itemd->Tag == 0) {
  56.     itemd->Tag = 1;
  57.     itemd->Color = clRed;
  58.   }
  59.   else {
  60.     itemd->Tag = 0;
  61.     itemd->Color = clBtnFace;
  62.   }
  63. }
  64. //---------------------------------------------------------------------------
  65.