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

很笨的問題

答題得分者是:taishyang
lanfanra
一般會員


發表:48
回覆:51
積分:19
註冊:2003-08-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-21 15:49:57 IP:61.66.xxx.xxx 未訂閱
如果我用了10個Panel(Panel1~Panel10),是否可以寫一個迴圈讓10個Panel一起變顏色,而不用寫成像下面的程式啊? Panel1->Color=clRed;Panel2->Color=clRed;Panel3->Color=clRed;......
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-21 15:59:00 IP:140.135.xxx.xxx 未訂閱
lanfanra您好: 法一
for (int i = 0; i < ComponentCount; i  )
  {
    if ( Components[i]->ClassNameIs("TPanel") )
      (dynamic_cast(Components[i]))->Color = clRed;
  } 
法二
for (int i = 1; i <= 10; i  )
  {
   ((TPanel *)FindComponent("Panel" IntToStr(i)))->Color=clRed ;
  }
順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 -
lanfanra
一般會員


發表:48
回覆:51
積分:19
註冊:2003-08-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-21 16:13:45 IP:61.66.xxx.xxx 未訂閱
對不起,再請問一下:如果用法二,在別的Form要如何表示呢? 如:Form2->Panel1->Color=clRed;Form2->Panel2->Color=clRed;...
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-21 16:40:53 IP:140.135.xxx.xxx 未訂閱
lanfanra您好: 我不曉得有沒有更快更好的方式,不過下面是我直覺的想法您參考看看
//Unit1.cpp
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 Form2->Show();
 Form2->ChangePanelColor(); //改變Form2上的Panel顏色
}
//---------------------------------------------------------------------------
//Unit2.h
class TForm2 : public TForm
{
__published:        // IDE-managed Components
        TPanel *Panel1;
        TPanel *Panel2;
        TPanel *Panel3;
        TPanel *Panel6;
        TPanel *Panel4;
        TPanel *Panel5;
        TPanel *Panel7;
        TPanel *Panel8;
        TPanel *Panel9;
        TPanel *Panel10;
private:        // User declarations
public:                // User declarations
   void __fastcall ChangePanelColor();
        __fastcall TForm2(TComponent* Owner);
};    //Unit2.cpp
//---------------------------------------------------------------------------
void __fastcall TForm2::ChangePanelColor()
{
 for (int i = 1; i <= 10; i  )
  {
   ((TPanel *)FindComponent("Panel" IntToStr(i)))->Color=clRed ;
  }
}
//---------------------------------------------------------------------------
順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
lanfanra
一般會員


發表:48
回覆:51
積分:19
註冊:2003-08-06

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-21 17:03:32 IP:61.66.xxx.xxx 未訂閱
我想我只能說,我太愛你了
系統時間:2024-05-07 13:14:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!