請教高手們 ^_^ 如何在動態產生的視窗中 存取裡面的物件 |
尚未結案
|
danielkelly
初階會員 發表:36 回覆:108 積分:28 註冊:2003-05-11 發送簡訊給我 |
高手們
小弟有個問題 想了很久 都try不出來 請各位幫幫忙拉 感激不盡
問題如下
我想設計一個MDI的視窗程式,首先我建立兩個Form
Form1--->auto-create form
Form2--->available form
再利用
void __fastcall TForm1::CreateMDIChild(String Name)
{
TForm2 *ChildForm;
ChildForm=new TForm2(Application);
ChildForm->Caption="子表單" IntToStr(MDIChildCount);
ChildForm->Image1->AutoSize=true;
ChildForm->Image1->Picture->LoadFromFile(Name);
}
來動態建立多個子視窗
再利用 TForm 的MDIChildren[i] 來控制子視窗的Image1物件
但卻有錯誤訊息
請問 還有其他方法來存取 動態產生的子視窗中的物件嗎?
|
arnoyu
中階會員 發表:73 回覆:88 積分:67 註冊:2003-03-21 發送簡訊給我 |
剛剛如你所說作了一次,
發現沒問題啊!?
我是用BCB5,
在新建一個project時,我是選
File->new->Projects 選 MDI Application,
有了雛型後,在Form2(MDIChild)加上一個Image物件,
並先指定一個圖來測試,結果可以啊!部分如下:
void __fastcall TMainForm::CreateMDIChild(String Name)
{
TMDIChild *Child;
//--- create a new MDI child window ----
Child = new TMDIChild(Application);
Child->Caption = Name;
if (FileExists (Name))
{
Child->Memo1->Lines->LoadFromFile(Name);
Child->Image1->Picture->LoadFromFile ("D:\\test\\car1.bmp");
}
}
請問您的錯誤訊息是什麼!?
|
danielkelly
初階會員 發表:36 回覆:108 積分:28 註冊:2003-05-11 發送簡訊給我 |
謝謝 費心
我的問題出在 當子視窗唯10個時 無法分辨出不同視窗之間的Image1元件
source code 如下 if(MDIChildCount>0){
int Width,Height;
long int Count=0,Pixels_matrix[10][1000000];
Graphics::TBitmap *TheBitmap;
Byte *ptr;
for(int a=MDIChildCount-1;a>=0;a--){
這裡error-----> TheBitmap=MDIChildren[a]->Image1->Picture->Bitmap;
Width=TheBitmap->Width;
Height=TheBitmap->Height;
TheBitmap->PixelFormat=pf8bit;
for(int y=0;y
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
danielkelly您好:
會不會是因為之前的問題(out of stack)而導致這樣的現象呢???
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=30309 純粹猜測< > 順心< > ~我也是在學習的階段,所以請您多多見諒與指教~
|
arnoyu
中階會員 發表:73 回覆:88 積分:67 註冊:2003-03-21 發送簡訊給我 |
喔!我懂你的意思了,
因為 MDIChildren[a]的回傳值是 TForm * 而非TMDIChild *
所以Compiler時會有錯誤,
我試了一下,下面這個方法就可以了,
請試用看看:
if(MDIChildCount>0)
{
TComponent *TheComponent;
Graphics::TBitmap *TheBitmap;
AnsiString str1= "Image1"; for(int a=MDIChildCount-1;a>=0;a--)
{
TheComponent= MDIChildren[a]->FindComponent(str1);
if (TheComponent)
{
TheBitmap=((TImage *)TheComponent)->Picture->Bitmap;
//這裡再填入您要對TheBitmap作處理的程式
}
}
}
|
danielkelly
初階會員 發表:36 回覆:108 積分:28 註冊:2003-05-11 發送簡訊給我 |
|
arnoyu
中階會員 發表:73 回覆:88 積分:67 註冊:2003-03-21 發送簡訊給我 |
|
danielkelly
初階會員 發表:36 回覆:108 積分:28 註冊:2003-05-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |