//--------------------------------------------------------------------------- #include #pragma hdrstop #include "Selection1.h" #pragma package(smart_init) //--------------------------------------------------------------------------- // ValidCtrCheck est utilisée pour garantir que les composants créés n'ont pas // de fonctions virtuelles pures. // static inline void ValidCtrCheck(TSelectionserge *) { new TSelectionserge(NULL); } //--------------------------------------------------------------------------- __fastcall TSelectionserge::TSelectionserge(TComponent* Owner) : TSelection(Owner) { this->OnMouseDown = TSelectionserge::MouseDown; //this->OnMouseMove = TSelectionserge::MouseMove; this->OnMouseUp = TSelectionserge::MouseUp; this->OnMouseWheel = TSelectionserge::MouseWheel; this->OnMouseLeave = TSelectionserge::MouseLeave; this->CanFocus=true; imageserge=new TImage(this); imageserge->Parent =this; this->imageserge->Bitmap->LoadFromFile("C:\\Users\\serge\\Desktop\\f417446688.jpg"); this->SendChildToBack(imageserge); this->imageserge->CanParentFocus=1; this->HideSelection=false; } //--------------------------------------------------------------------------- namespace Selection1 { void __fastcall PACKAGE Register() { TComponentClass classes[1] = {__classid(TSelectionserge)}; RegisterComponents(L"Serge", classes, 0); } } //--------------------------------------------------------------------------- void __fastcall TSelectionserge::MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, float X, float Y) { if (Button == TMouseButton::mbLeft) { isDragging = true; } if (Button == TMouseButton::mbRight) { isTurning = true; } } //--------------------------------------------------------------------------- /* void __fastcall TSelectionserge::MouseMove(TObject *Sender, TShiftState Shift, float X, float Y) { if (isDragging) { } } */ //--------------------------------------------------------------------------- void __fastcall TSelectionserge::MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, float X, float Y) { isDragging = false; isTurning = false; } //--------------------------------------------------------------------------- void __fastcall TSelectionserge::MouseWheel(TObject *Sender, TShiftState Shift, int WheelDelta, bool &Handled) { if (isTurning==false) { if (WheelDelta<0) { this->Scale->X = this->Scale->X*0.95; } if (WheelDelta>0) { this->Scale->X = this->Scale->X*1.05; } this->Scale->Y= this->Scale->X; } if (isTurning) { this->RotationAngle=this->RotationAngle+WheelDelta/120; } } //--------------------------------------------------------------------------- void __fastcall TSelectionserge::MouseLeave(TObject *Sender) { isDragging = false; isTurning = false; } //---------------------------------------------------------------------------