全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1366
推到 Plurk!
推到 Facebook!

程式中建立ICON

答題得分者是:malanlk
AJ
一般會員


發表:9
回覆:19
積分:20
註冊:2003-06-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-09-19 13:40:06 IP:61.220.xxx.xxx 未訂閱
請教各位先進: 如果我要在我的程式中建立ICON,可拖曳,也要有個label顯示名稱,就像是Windows的桌面上的icon相同功能(非建立在桌面,而是在程式中,如panel上等...),請問該如何做?還望先進們不吝指導,謝謝
malanlk
尊榮會員


發表:20
回覆:694
積分:577
註冊:2004-04-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-09-19 15:45:19 IP:203.69.xxx.xxx 未訂閱
用 TListView 將 ViewStyle 設為 vsIcon
AJ
一般會員


發表:9
回覆:19
積分:20
註冊:2003-06-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-09-20 00:35:26 IP:59.112.xxx.xxx 未訂閱
謝謝 malanlk 的指點,今天稍微測試一下,大概是我需要的功能,明天再測試一下拖曳功能,謝謝
cashyy
高階會員


發表:117
回覆:322
積分:212
註冊:2004-04-30

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-09-20 00:43:33 IP:59.104.xxx.xxx 未訂閱
您好! 我剛為您寫了一段,您看看是不是您要的!
  //.h
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include 
#include 
#include 
#include <Forms.hpp>
#include 
#include 
//---------------------------------------------------------------------------
class TForm1 : 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 FormCreate(TObject *Sender);
private:        // User declarations
        Graphics::TBitmap *ComputerBmp0;
public:                // User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
  //.cpp
#include 
#pragma hdrstop    #include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int px,py,ox,oy;
int st1=0;
TRect SRect,DRect;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
  if(Button == mbLeft && st1==0)  //判斷是否按下左鍵且尚未移到目的地
  {
    ox = Image1->Left;            //保存原始水平座標位置
    oy = Image1->Top;             //保存原始垂直座標位置
    px=X;
    py=Y;
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
  if(Shift.Contains(ssLeft) && st1 ==0)
  {
    Image1->Left = Image1->Left (X-px); //移到新的位置
    Image1->Top = Image1->Top (Y-py);   //移到新的位置
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  SRect = Rect(0,0,32,32);
  ComputerBmp0=new Graphics::TBitmap;
  ComputerBmp0->LoadFromFile("Computer0.bmp");
  //ComputerBmp0->Transparent = true;
  DRect.top = 0;
  DRect.left = 8;
  DRect.Bottom = DRect.top 32;
  DRect.Right = DRect.left 32;
  Image1->Canvas->TextOutA(DRect.left-8,DRect.Bottom 2,"我的電腦");
  Image1->Canvas->CopyRect(DRect,ComputerBmp0->Canvas,SRect);
}
AJ
一般會員


發表:9
回覆:19
積分:20
註冊:2003-06-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-09-20 01:01:41 IP:59.112.xxx.xxx 未訂閱
真是太感謝cashyy了, 可是我以已經把分數給malanlk了, 沒辦法,不過還是很感謝您~
系統時間:2024-11-25 14:42:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!