asvmfd
一般會員
發表:46 回覆:30 積分:15 註冊:2004-11-09
發送簡訊給我
|
請教一下各位大大,一個Porject有二個Form.
要如何做load一個bmp檔案到一個
TMemoryStream *a= new TMemoryStream;
而後再copy*a 到TMemoryStream *b= new TMemoryStream;
之後再
秀TMemoryStream *a 圖到Form1->Image1;
秀TMemoryStream *b 圖到Form2->Image1;
感謝
|
hdilwy
初階會員
發表:18 回覆:65 積分:41 註冊:2004-08-31
發送簡訊給我
|
//--------------------------------------------------------------------------- #include
#pragma hdrstop #include "Unit1.h"
#include "Unit2.h"
#include "File1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
Graphics::TBitmap *lastBitmap;//外部參數的初始要在你程式進入點的那個地方
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//--------------------------------------------------------------------------- void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
if(OpenPictureDialog1->Execute())
{
Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName);
lastBitmap=Image1->Picture->Bitmap;
//將new 一個form2
TForm2 *Form2;
Form2=new TForm2(Application);
Form2->Show();
}
}
//--------------------------------------------------------------
//File1.h
extern Graphics::TBitmap *lastBitmap;//外部參數
//--------------------------------------------------------------- #include
#pragma hdrstop #include "Unit2.h"
#include "File1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//-----------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//------------------------------------------------------------ void __fastcall TForm2::FormCreate(TObject *Sender)
{
Image1->Picture->Bitmap=lastBitmap;//將剛剛讀進來的圖秀在這邊
}
//------------------------------------------------------------- void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
{
Action=caFree;//記得離開的時候要free掉
}
//---------------------------------------------------------------------------
用外部參數來解決
之前的文章也有提到
|
asvmfd
一般會員
發表:46 回覆:30 積分:15 註冊:2004-11-09
發送簡訊給我
|
hdilwy大大的方法可行,只是在下想用copy的方式.
也就是說copy *a 到TMemoryStream *b= new TMemoryStream;
之後再
秀TMemoryStream *a 圖到Form1->Image1;
秀TMemoryStream *b 圖到Form2->Image1;
請大大指教一下.....
謝謝了 發表人 - asvmfd 於 2005/04/05 03:19:15
|
hdilwy
初階會員
發表:18 回覆:65 積分:41 註冊:2004-08-31
發送簡訊給我
|
如我果沒記錯的話
應該是
TMemoryStream *b= new TMemoryStream;
b->Assign(a); 不能用等號~~這樣只會讓b的指標指向a而已
這樣才是複製接下來就是應用的~~
不用我在弄個範例吧
|
asvmfd
一般會員
發表:46 回覆:30 積分:15 註冊:2004-11-09
發送簡訊給我
|
hdilwy 大大提供的另一种新思維,
嗯,不錯.在下收下了.
謝謝囉^^
|