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

元件的視覺堆疊

尚未結案
rik
一般會員


發表:40
回覆:81
積分:24
註冊:2004-09-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-08 10:39:19 IP:163.13.xxx.xxx 未訂閱
現在有Image1 Image2 兩元件 現在 Image2 壓在 Image1上面 如何使之相反@@? 也就是如何讓一個本來被押住的元件 跑到對方上面0.0"
------
時與不時的撿起身旁的拼圖碎片

不懂的部分 半解的部分 就像一塊拼圖
留於腦中 等待拼出完美解答的一天

這就是我的思路 我的創作方法
而我也接受 這作法所帶來的"代價" - 時間
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-08 12:01:14 IP:210.243.xxx.xxx 未訂閱
引言: 現在有Image1 Image2 兩元件 現在 Image2 壓在 Image1上面 如何使之相反@@? 也就是如何讓一個本來被押住的元件 跑到對方上面0.0"
假設Image1被Image2蓋住, 按Button1會把Image1帶到Image2上方, 按Button2會再把
Image1帶到Image2下方.    void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Image1->BringToFront();
}
//---------------------------------------------------------------------------    void __fastcall TForm1::Button2Click(TObject *Sender)
{
  Image1->SendToBack();
}
rik
一般會員


發表:40
回覆:81
積分:24
註冊:2004-09-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-08 12:35:25 IP:163.13.xxx.xxx 未訂閱
引言:
假設Image1被Image2蓋住, 按Button1會把Image1帶到Image2上方, 按Button2會再把
Image1帶到Image2下方.    void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Image1->BringToFront();
}
//---------------------------------------------------------------------------    void __fastcall TForm1::Button2Click(TObject *Sender)
{
  Image1->SendToBack();
}
成功了^^ 謝謝^^ 抱歉我又有個衍生的問題@@" 如果有多張圖 要怎麼決定 誰壓誰@@? 感覺像 普克牌 展開 張張間都有1部分疊在一起 假設我選其中一張 程式會把那張牌ImageN->BringToFront(); 讓我看清楚整張牌 但是在按別張時 不能把剛剛那張移到最底層@@" 有什麼方法 可以達成此要求嗎@@? 發表人 - rik 於 2004/12/08 12:42:49
------
時與不時的撿起身旁的拼圖碎片

不懂的部分 半解的部分 就像一塊拼圖
留於腦中 等待拼出完美解答的一天

這就是我的思路 我的創作方法
而我也接受 這作法所帶來的"代價" - 時間
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-08 20:28:50 IP:61.64.xxx.xxx 未訂閱
原理很簡單, 把所有的圖依序呼叫BringToFront(), 結果就像這樣 當點下任一張圖時, 先對所有圖做重排的動作, 在對所點下的圖做BringToFront(), 結果就像這樣 CPP檔放下一篇, 太長了放不下
// Unit1.h    //---------------------------------------------------------------------------    #ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include 
#include 
#include 
#include <Forms.hpp>
#include 
#include 
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:        // IDE-managed Components
  TImage *Image1;
  TImage *Image2;
  TImage *Image3;
  TImage *Image4;
  void __fastcall FormDestroy(TObject *Sender);
private:        // User declarations
public:                // User declarations
  __fastcall TForm1(TComponent* Owner);      void __fastcall ImageClick(TObject *Sender);
  void __fastcall ArrageAllPic();
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-12-08 20:30:30 IP:61.64.xxx.xxx 未訂閱
//---------------------------------------------------------------------------    #include 
#pragma hdrstop    #include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TList* PicList;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
  for(int i = 0; i < ControlCount; i  )
  {
    AnsiString szClassName = Controls[i]->ClassName();
    if (szClassName == "TImage")
    {
      ((TImage*)Controls[i])->OnClick = ImageClick;
    }
  }
  // 設定圖片順序
  PicList = new TList();
  PicList->Add(Image1);
  PicList->Add(Image2);
  PicList->Add(Image3);
  PicList->Add(Image4);
  
  ArrageAllPic();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ArrageAllPic()
{
  for(int i = 0; i < PicList->Count; i  )
  {
    ((TImage*)PicList->Items[i])->BringToFront();
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ImageClick(TObject *Sender)
{
  ArrageAllPic();
  ((TImage*)Sender)->BringToFront();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
  delete PicList;  
}
//---------------------------------------------------------------------------    
系統時間:2024-04-29 4:05:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!