• 5608阅读
  • 0回复

在C++ Builder中实现KingAmp靠近磁性吸引的例子 [复制链接]

上一主题 下一主题
离线XChinux
 

只看楼主 倒序阅读 楼主  发表于: 2005-07-30
均衡器

//---------------------------------------------------------------------------

#ifndef JunHengH
#define JunHengH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <Graphics.hpp>
//---------------------------------------------------------------------------
class TForm2 : public TForm
{
__published:   // IDE-managed Components
TImage *Image1;
void __fastcall Image1MouseDown(TObject *Sender, TMouseButton Button,
    TShiftState Shift, int X, int Y);
void __fastcall Image1MouseMove(TObject *Sender, TShiftState Shift,
    int X, int Y);
void __fastcall Image1MouseUp(TObject *Sender, TMouseButton Button,
    TShiftState Shift, int X, int Y);
private:   // User declarations
int SaveX;
int SaveY;
bool LeftButtonDown;

public:       // User declarations
__fastcall TForm2(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm2 *Form2;
//---------------------------------------------------------------------------
#endif











//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "JunHeng.h"
#include "MainForm.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
LeftButtonDown=false;

}
//---------------------------------------------------------------------------
void __fastcall TForm2::Image1MouseDown(TObject *Sender,
  TMouseButton Button, TShiftState Shift, int X, int Y)
{
if(Button==mbLeft)
{
  if(Y>=8 && Y<=13)
  {
    if(X>=301 && X<=307)
    {
      Form2->Close();
      return;
    }
  }

  SaveX=X;
  SaveY=Y;
  LeftButtonDown=true;
}
else
  LeftButtonDown=false;

}
//---------------------------------------------------------------------------
void __fastcall TForm2::Image1MouseMove(TObject *Sender, TShiftState Shift,
  int X, int Y)
{
Form2->Caption=IntToStr(X)+"."+IntToStr(Y);

if(LeftButtonDown)
{
  //Form1->Left=Form1->Left+X-SaveX;
  //Form1->Top=Form1->Top+Y-SaveY;
  Form2->Left=Form2->Left+X-SaveX;
  Form2->Top=Form2->Top+Y-SaveY;
  //Form3->Left=Form3->Left+X-SaveX;
  //Form3->Top=Form3->Top+Y-SaveY;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Image1MouseUp(TObject *Sender, TMouseButton Button,
  TShiftState Shift, int X, int Y)
{
if(LeftButtonDown)
  LeftButtonDown=false;
if(abs(Form2->Left-(Form1->Left+Form1->Width))<20)
{
  Form2->Left=Form1->Left+Form1->Width;
}
if(abs((Form2->Left+Form2->Width)-Form1->Left)<20)
{
  Form2->Left=Form1->Left-Form2->Width;
  //return;
}
if(abs((Form2->Top+Form2->Height)-Form1->Top)<20)
{
  Form2->Top=Form1->Top-Form2->Height;
  //return;
}
if(abs(Form2->Top-(Form1->Top+Form1->Height))<20)
{
  Form2->Top=Form1->Top+Form1->Height;
  //return;
}
}



文件列表
//---------------------------------------------------------------------------

#ifndef FileListH
#define FileListH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <Graphics.hpp>
//---------------------------------------------------------------------------
class TForm3 : public TForm
{
__published:   // IDE-managed Components
TImage *Image1;
void __fastcall Image1MouseDown(TObject *Sender, TMouseButton Button,
    TShiftState Shift, int X, int Y);
void __fastcall Image1MouseMove(TObject *Sender, TShiftState Shift,
    int X, int Y);
void __fastcall Image1MouseUp(TObject *Sender, TMouseButton Button,
    TShiftState Shift, int X, int Y);
private:   // User declarations
int SaveX;
int SaveY;
bool LeftButtonDown;

public:       // User declarations
__fastcall TForm3(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm3 *Form3;
//---------------------------------------------------------------------------
#endif










//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "FileList.h"
#include "MainForm.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm3 *Form3;
//---------------------------------------------------------------------------
__fastcall TForm3::TForm3(TComponent* Owner)
: TForm(Owner)
{
LeftButtonDown=false;

}
//---------------------------------------------------------------------------
void __fastcall TForm3::Image1MouseDown(TObject *Sender,
  TMouseButton Button, TShiftState Shift, int X, int Y)
{
if(Button==mbLeft)
{
  if(Y>=8 && Y<=13)
  {
    if(X>=303 && X<=309)
    {
      Form3->Close();
      return;
    }
  }

  SaveX=X;
  SaveY=Y;
  LeftButtonDown=true;
}
else
  LeftButtonDown=false;

}
//---------------------------------------------------------------------------
void __fastcall TForm3::Image1MouseMove(TObject *Sender, TShiftState Shift,
  int X, int Y)
{
Form3->Caption=IntToStr(X)+"."+IntToStr(Y);

if(LeftButtonDown)
{
  //Form1->Left=Form1->Left+X-SaveX;
  //Form1->Top=Form1->Top+Y-SaveY;
  //Form2->Left=Form2->Left+X-SaveX;
  //Form2->Top=Form2->Top+Y-SaveY;
  Form3->Left=Form3->Left+X-SaveX;
  Form3->Top=Form3->Top+Y-SaveY;
}

}
//---------------------------------------------------------------------------
void __fastcall TForm3::Image1MouseUp(TObject *Sender, TMouseButton Button,
  TShiftState Shift, int X, int Y)
{
if(LeftButtonDown)
  LeftButtonDown=false;
if(abs(Form3->Left-(Form1->Left+Form1->Width))<20)
{
  Form3->Left=Form1->Left+Form1->Width;
}
if(abs((Form3->Left+Form3->Width)-Form1->Left)<20)
{
  Form3->Left=Form1->Left-Form3->Width;
  //return;
}
if(abs((Form3->Top+Form3->Height)-Form1->Top)<20)
{
  Form3->Top=Form1->Top-Form3->Height;
  //return;
}
if(abs(Form3->Top-(Form1->Top+Form1->Height))<20)
{
  Form3->Top=Form1->Top+Form1->Height;
  //return;
}
}

主窗口
//---------------------------------------------------------------------------

#ifndef MainFormH
#define MainFormH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <Graphics.hpp>
#include "Trayicon.h"
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:   // IDE-managed Components
TImage *Image1;
TTrayIcon *TrayIcon1;
void __fastcall Image1MouseDown(TObject *Sender, TMouseButton Button,
    TShiftState Shift, int X, int Y);
void __fastcall Image1MouseMove(TObject *Sender, TShiftState Shift,
    int X, int Y);
void __fastcall Image1MouseUp(TObject *Sender, TMouseButton Button,
    TShiftState Shift, int X, int Y);
void __fastcall TrayIcon1Restore(TObject *Sender);
private:   // User declarations
int SaveX;
int SaveY;
bool LeftButtonDown;
public:       // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

















//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "MainForm.h"
#include "JunHeng.h"
#include "FileList.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "Trayicon"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
LeftButtonDown=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseDown(TObject *Sender,
  TMouseButton Button, TShiftState Shift, int X, int Y)
{
if(Button==mbLeft)
{
  if(Y>=64 && Y<=75)
  {
    if(X>=138 && X<=187)
    {
      Form3->Show();
      return;
    }
    if(X>=191 && X<=240)
    {
      Form2->Show();
      return;
    }
  }
  if(Y>=10 && Y<=16)
  {
    if(X>=282 && X<=290)
    {
      //TrayIcon1->Minimize();
      Form2->Hide();
      Form3->Hide();
      Form1->Hide();
      return;
    }
    if(X>=298 && X<=306)
    {
      Form1->Close();
      return;
    }
  }

  SaveX=X;
  SaveY=Y;
  LeftButtonDown=true;
}
else
  LeftButtonDown=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
  int X, int Y)
{
Form1->Caption=IntToStr(X)+"."+IntToStr(Y);

if(LeftButtonDown)
{
  Form1->Left=Form1->Left+X-SaveX;
  Form1->Top=Form1->Top+Y-SaveY;
  Form2->Left=Form2->Left+X-SaveX;
  Form2->Top=Form2->Top+Y-SaveY;
  Form3->Left=Form3->Left+X-SaveX;
  Form3->Top=Form3->Top+Y-SaveY;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,
  TShiftState Shift, int X, int Y)
{
if(LeftButtonDown)
  LeftButtonDown=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TrayIcon1Restore(TObject *Sender)
{
Form3->Show();
Form2->Show();
Form1->Show();
}
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个