線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:794
推到 Plurk!
推到 Facebook!

秀TMemoryStream *a 到Form1->Image1

答題得分者是:hdilwy
asvmfd
一般會員


發表:46
回覆:30
積分:15
註冊:2004-11-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-04 23:52:28 IP:61.219.xxx.xxx 未訂閱
請教一下各位大大,一個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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-05 01:26:24 IP:140.128.xxx.xxx 未訂閱
//---------------------------------------------------------------------------    #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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-05 03:16:37 IP:61.219.xxx.xxx 未訂閱
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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-05 23:26:03 IP:140.128.xxx.xxx 未訂閱
如我果沒記錯的話 應該是 TMemoryStream *b= new TMemoryStream; b->Assign(a);    不能用等號~~這樣只會讓b的指標指向a而已 這樣才是複製接下來就是應用的~~ 不用我在弄個範例吧
asvmfd
一般會員


發表:46
回覆:30
積分:15
註冊:2004-11-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-04-07 22:21:52 IP:61.219.xxx.xxx 未訂閱
hdilwy 大大提供的另一种新思維, 嗯,不錯.在下收下了. 謝謝囉^^
系統時間:2024-05-19 11:46:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!