如何在動態新增的TForm上畫圖(無法擦掉的圖):附檔 |
答題得分者是:jow
|
istillloving
高階會員 發表:33 回覆:182 積分:183 註冊:2008-10-09 發送簡訊給我 |
各位大大:
小弟我又丟出難題了...... 我寫了一個動態新增 TForm 的程式並且繪圖 但是這個圖案如果被其他視窗遮蔽到的時候就會被清除 有沒有什麼方法可以畫出不被消除的圖案呢?? 因為我想在Form1上做一個功能就是可以把Image的影像拖曳出某個範圍的時候就新增一個Form存著 可是現在就是會被消除 這點苦惱著我...=..= [code cpp] TForm *NForm,*nForm; NForm= new TForm(Application); NForm->Show(); for(j=0;j for(i=0;i NForm->Canvas->Pixels[i][j]=TColor(RGB(CR[i w*j],CG[i w*j],CB[i w*j])); } } [/code] 順便分享動態連續新增TForm的方法 [code cpp] TForm *nForm; for(i=0;i<3;i ) { nForm=(TForm *)(FindComponent("Formff" IntToStr(i))); nForm= new TForm(Application); nForm->Show(); } [/code]
------
恩... 編輯記錄
|
ikk
尊榮會員 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
istillloving
高階會員 發表:33 回覆:182 積分:183 註冊:2008-10-09 發送簡訊給我 |
|
ikk
尊榮會員 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
istillloving
高階會員 發表:33 回覆:182 積分:183 註冊:2008-10-09 發送簡訊給我 |
|
jow
尊榮會員 發表:66 回覆:751 積分:1253 註冊:2002-03-13 發送簡訊給我 |
fMain: TfrmMain 主程式
fFunc: TfrmFunc 基礎類別 fFunc2: TfrmFuncA~TfrmFuncD 繼承自TfrmFunc TfrmFuncA 與 TfrmFuncB 在 Form 上繪製不同圖形 TfrmFuncC 在 Form 上繪製背景圖後, 再於背景圖上繪圖 TfrmFuncD 以 TImage 載入圖形顯示 以下程式提供你參考... http://delphi.ktop.com.tw/download.php?download=upload/4b2138bd3cd94_TestC056.zip fMain.h [code cpp] //--------------------------------------------------------------------------- #ifndef fMainH #define fMainH //--------------------------------------------------------------------------- #include #include #include #include <Forms.hpp><br />//--------------------------------------------------------------------------- class TfrmMain : public TForm { __published: // IDE-managed Components TButton *btnNewFormA; TButton *btnNewFormB; TButton *btnNewFormC; TButton *btnNewFormD; void __fastcall btnNewFormAClick(TObject *Sender); void __fastcall btnNewFormBClick(TObject *Sender); void __fastcall btnNewFormCClick(TObject *Sender); void __fastcall btnNewFormDClick(TObject *Sender); private: // User declarations public: // User declarations __fastcall TfrmMain(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TfrmMain *frmMain; //--------------------------------------------------------------------------- #endif [/code] fMain.cpp [code cpp] //--------------------------------------------------------------------------- #include #pragma hdrstop #include "fMain.h" #include "fFunc.h" #include "fFunc2.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TfrmMain *frmMain; //--------------------------------------------------------------------------- __fastcall TfrmMain::TfrmMain(TComponent* Owner): TForm(Owner) { TRect r = Rect(0,0,Width,Height); OffsetRect(&r, 10,Screen->Height-Height-40); BoundsRect = r; } //--------------------------------------------------------------------------- void __fastcall TfrmMain::btnNewFormAClick(TObject *Sender) { new TfrmFuncA(this); } //--------------------------------------------------------------------------- void __fastcall TfrmMain::btnNewFormBClick(TObject *Sender) { new TfrmFuncB(this); } //--------------------------------------------------------------------------- void __fastcall TfrmMain::btnNewFormCClick(TObject *Sender) { TfrmFuncC* f = new TfrmFuncC(this); f->FileName = "BACK1.BMP"; } //--------------------------------------------------------------------------- void __fastcall TfrmMain::btnNewFormDClick(TObject *Sender) { TfrmFuncD* f = new TfrmFuncD(this); f->FileName = "BACK1.BMP"; } //--------------------------------------------------------------------------- [/code] fFunc.h [code cpp] //--------------------------------------------------------------------------- #ifndef fFuncH #define fFuncH //--------------------------------------------------------------------------- #include #include #include #include <Forms.hpp><br />//--------------------------------------------------------------------------- class TfrmFunc : public TForm { __published: // IDE-managed Components void __fastcall FormClose(TObject *Sender, TCloseAction &Action); void __fastcall FormPaint(TObject *Sender); void __fastcall FormResize(TObject *Sender); private: protected: //For Test Purpose... void __fastcall TestSetting_Pen(TColor Color, int Width); void __fastcall TestSetting_Brush(TColor Color); //For Test Purpose... void __fastcall DrawBitmap(AnsiString FileName); virtual void __fastcall Clear(void); virtual void __fastcall DoPaint(void); virtual void __fastcall DoResize(void); public: __fastcall TfrmFunc(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TfrmFunc *frmFunc; //--------------------------------------------------------------------------- #endif fFunc.cpp [code cpp] //--------------------------------------------------------------------------- #include #pragma hdrstop #include "fFunc.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TfrmFunc *frmFunc; //--------------------------------------------------------------------------- __fastcall TfrmFunc::TfrmFunc(TComponent* Owner): TForm(Owner) { Width = 300; Height = 300; this->Caption = this->ClassName(); this->Show(); } //--------------------------------------------------------------------------- void __fastcall TfrmFunc::FormClose(TObject *Sender, TCloseAction &Action) { Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TfrmFunc::FormPaint(TObject *Sender) { DoPaint(); } //--------------------------------------------------------------------------- void __fastcall TfrmFunc::FormResize(TObject *Sender) { DoResize(); } //--------------------------------------------------------------------------- void __fastcall TfrmFunc::Clear(void) { TRect r = this->ClientRect; TestSetting_Brush(this->Color); Canvas->FillRect(r); } //--------------------------------------------------------------------------- void __fastcall TfrmFunc::TestSetting_Pen(TColor Color, int Width) { Canvas->Pen->Color = Color; Canvas->Pen->Width = Width; Canvas->Pen->Style = psSolid; Canvas->Pen->Mode = pmCopy; } //--------------------------------------------------------------------------- void __fastcall TfrmFunc::TestSetting_Brush(TColor Color) { Canvas->Brush->Color = Color; Canvas->Brush->Style = bsSolid; } //--------------------------------------------------------------------------- void __fastcall TfrmFunc::DrawBitmap(AnsiString FileName) { if(FileExists(FileName)){ Graphics::TBitmap *b = new Graphics::TBitmap(); TRect r = this->ClientRect; try{ b->LoadFromFile(FileName); Canvas->StretchDraw(r,b); } __finally{ delete b; } } } //--------------------------------------------------------------------------- void __fastcall TfrmFunc::DoPaint(void) { //Paint Form Here... } //--------------------------------------------------------------------------- void __fastcall TfrmFunc::DoResize(void) { Invalidate(); } //--------------------------------------------------------------------------- [/code] fFunc2.h [code cpp] //--------------------------------------------------------------------------- #ifndef fFunc2H #define fFunc2H //--------------------------------------------------------------------------- #include //--------------------------------------------------------------------------- class TfrmFuncA : public TfrmFunc { protected: void __fastcall DoPaint(void); public: __fastcall TfrmFuncA(TComponent* Owner); }; //--------------------------------------------------------------------------- class TfrmFuncB : public TfrmFunc { protected: void __fastcall DoPaint(void); public: __fastcall TfrmFuncB(TComponent* Owner); }; //--------------------------------------------------------------------------- class TfrmFuncC : public TfrmFunc { private: AnsiString FFileName; void __fastcall SetFileName(AnsiString Value); protected: void __fastcall DoPaint(void); public: __fastcall TfrmFuncC(TComponent* Owner); __property AnsiString FileName={read=FFileName,write=SetFileName}; }; //--------------------------------------------------------------------------- class TfrmFuncD : public TfrmFunc { private: AnsiString FFileName; TImage *FImage; void __fastcall SetFileName(AnsiString Value); protected: void __fastcall DoPaint(void); void __fastcall DoResize(void); public: __fastcall TfrmFuncD(TComponent* Owner); __property AnsiString FileName={read=FFileName,write=SetFileName}; __property TImage* Image={read=FImage}; }; //--------------------------------------------------------------------------- #endif [/code] fFunc2.cpp [code cpp] //--------------------------------------------------------------------------- #pragma hdrstop #include "fFunc.h" #include "fFunc2.h" //--------------------------------------------------------------------------- __fastcall TfrmFuncA::TfrmFuncA(TComponent* Owner): TfrmFunc(Owner) { TRect r = Rect(0,0,Width,Height); OffsetRect(&r, 10, 10); BoundsRect = r; } //--------------------------------------------------------------------------- void __fastcall TfrmFuncA::DoPaint(void) { Clear(); TestSetting_Pen(clRed,1); TestSetting_Brush(this->Color); TRect r = this->ClientRect; while(true){ Canvas->Rectangle(r); InflateRect(&r,-5,-5); if(r.Right-r.Left<1||r.Bottom-r.Top<1)break; } } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- __fastcall TfrmFuncB::TfrmFuncB(TComponent* Owner): TfrmFunc(Owner) { TRect r = Rect(0,0,Width,Height); OffsetRect(&r,Width 10, 10); BoundsRect = r; } //--------------------------------------------------------------------------- void __fastcall TfrmFuncB::DoPaint(void) { Clear(); TestSetting_Pen(clBlue,2); TestSetting_Brush(this->Color); TRect r = this->ClientRect; while(true){ Canvas->Ellipse(r); InflateRect(&r,-6,-6); if(r.Right-r.Left<3||r.Bottom-r.Top<3)break; } } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- __fastcall TfrmFuncC::TfrmFuncC(TComponent* Owner): TfrmFunc(Owner) { TRect r = Rect(0,0,Width,Height); OffsetRect(&r, 10,Height 10); BoundsRect = r; } //--------------------------------------------------------------------------- void __fastcall TfrmFuncC::SetFileName(AnsiString Value) { if(Value!=FFileName){ FFileName = Value; Invalidate(); } } //--------------------------------------------------------------------------- void __fastcall TfrmFuncC::DoPaint(void) { Clear(); if(FileExists(FFileName))DrawBitmap(FFileName); TestSetting_Pen(clBlack,1); TestSetting_Brush(clBlack); TRect r = this->ClientRect; while(true){ Canvas->FrameRect(r); InflateRect(&r,-5,-5); if(r.Right-r.Left<1||r.Bottom-r.Top<1)break; } } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- __fastcall TfrmFuncD::TfrmFuncD(TComponent* Owner): TfrmFunc(Owner) { TRect r = Rect(0,0,Width,Height); OffsetRect(&r,Width 10,Height 10); BoundsRect = r; FImage = new TImage(this); FImage->Parent = this; FImage->Stretch = true; FImage->BoundsRect= this->ClientRect; } //--------------------------------------------------------------------------- void __fastcall TfrmFuncD::SetFileName(AnsiString Value) { if(Value!=FFileName){ FFileName = Value; if(FileExists(FFileName))FImage->Picture->LoadFromFile(FFileName); } } //--------------------------------------------------------------------------- void __fastcall TfrmFuncD::DoPaint(void) { //Disable Form Painting... } //--------------------------------------------------------------------------- void __fastcall TfrmFuncD::DoResize(void) { if(FImage)FImage->BoundsRect= this->ClientRect; } //--------------------------------------------------------------------------- #pragma package(smart_init) [/code] 謹供參考......
編輯記錄
jow 重新編輯於 2009-12-11 02:11:48, 註解 無‧
|
carstyc
資深會員 發表:16 回覆:254 積分:329 註冊:2003-07-18 發送簡訊給我 |
把你畫圖的code 擺在 Form的 onPaint 中去畫,如此只要重畫Form的時候,應該就會再把你要畫的圖畫一次了。
===================引 用 istillloving 文 章=================== 各位大大: 小弟我又丟出難題了...... 我寫了一個動態新增 TForm 的程式並且繪圖 但是這個圖案如果被其他視窗遮蔽到的時候就會被清除 有沒有什麼方法可以畫出不被消除的圖案呢?? 因為我想在Form1上做一個功能就是可以把Image的影像拖曳出某個範圍的時候就新增一個Form存著 可是現在就是會被消除? 這點苦惱著我...=..= [code cpp] TForm *NForm,*nForm; ?NForm= new TForm(Application); ?NForm->Show(); ?for(j=0;j?{ ? for(i=0;i? { ?? NForm->Canvas->Pixels[i][j]=TColor(RGB(CR[i w*j],CG[i w*j],CB[i w*j])); ? } ?} [/code] 順便分享動態連續新增TForm的方法 [code cpp] ? TForm *nForm; ? for(i=0;i<3;i ) ? { ? nForm=(TForm *)(FindComponent("Formff" IntToStr(i))); ? nForm= new TForm(Application); ? nForm->Show(); ? } [/code] |
istillloving
高階會員 發表:33 回覆:182 積分:183 註冊:2008-10-09 發送簡訊給我 |
抱歉抱歉
我可能沒有把我的問題說清楚 左邊Image1是原始影像 右邊Image2是運算後的影像 因為我的版面很滿 而且有很多演算法需要比較結果 所以我才想要新增一個Form 然後一個一個拉出來比較 我想到的方法是 利用Image2 的 On_Mouse_Up .On_Mouse_Down 和 On_Mouse_Move 這三個事件配合 On_Mouse_Down 改變一個參數 On_Mouse_Up 把參數改回來 而 On_Mouse_Move 負責偵測如果滑鼠移至某個範圍了 而且參數還沒有被改回來 這時候我就新增Form把圖片存起來 然後繼續使用別的演算法做比較 所以 NewForm 和 秀圖 照我這個想法的話應該都是要寫在 On_Mouse_Move 裡面 抱歉了麻煩各位了 今天再找找看有沒有其他方法
------
恩...
編輯記錄
istillloving 重新編輯於 2009-12-11 10:01:50, 註解 無‧
istillloving 重新編輯於 2009-12-11 10:10:04, 註解 無‧ istillloving 重新編輯於 2009-12-11 10:11:38, 註解 無‧ istillloving 重新編輯於 2009-12-11 10:11:59, 註解 無‧ |
istillloving
高階會員 發表:33 回覆:182 積分:183 註冊:2008-10-09 發送簡訊給我 |
您好:
看了您的程式是把 DoPaint(); 放在 On_Paint 事件內 所以讓我再好好想想放在 OnPaint 事件內怎麼做出我要的功能 而且您的Form好像不是動態新增的 所以可以事先寫好 但是還是非常謝謝您
------
恩...
編輯記錄
istillloving 重新編輯於 2009-12-11 14:29:45, 註解 無‧
|
istillloving
高階會員 發表:33 回覆:182 積分:183 註冊:2008-10-09 發送簡訊給我 |
各位:
我做了以下的嘗試 首先我宣告了一個全域的 [code cpp] TForm *NForm; [/code] 並且對NForm下定義 裡面包含Form_Paint事件 [code cpp] class NForm : public TForm { __published: void __fastcall FormPaint(TObject *Sender); }; [/code] 而 Form_Paint 寫在Unit1.cpp內容如下 [code cpp] void __fastcall NForm::FormPaint(TObject *Sender) { for(j=0;j for(i=0;i NForm->Canvas->Pixels[i][j]=TColor(RGB(CR[i w*j],CG[i w*j],CB[i w*j])); Form1->Canvas->Pixels[i][j]=TColor(RGB(CR[i w*j],CG[i w*j],CB[i w*j])); } } } [/code] 然後我在Form1建立一個Button 內容是 [code cpp] void __fastcall TForm1::BitBtn1Click(TObject *Sender) { NForm= new TForm(Application); NForm->Show(); for(j=0;j for(i=0;i NForm->Canvas->Pixels[i][j]=TColor(RGB(CR[i w*j],CG[i w*j],CB[i w*j])); Form1->Canvas->Pixels[i][j]=TColor(RGB(CR[i w*j],CG[i w*j],CB[i w*j])); } } } [/code] 這樣輸出的結果是可以秀出圖來 但是還是一樣會被抹去 我這樣觀念上有錯嗎 ?? 有的話請麻煩指教一下 但是如果把秀圖放在Form1上 的確是不會被抹掉 [code cpp] void __fastcall TForm1::FormPaint(TObject *Sender) { for(j=0;j for(i=0;i NForm->Canvas->Pixels[i][j]=TColor(RGB(CR[i w*j],CG[i w*j],CB[i w*j])); Form1->Canvas->Pixels[i][j]=TColor(RGB(CR[i w*j],CG[i w*j],CB[i w*j])); } } } [/code]
------
恩...
編輯記錄
istillloving 重新編輯於 2009-12-11 14:53:46, 註解 無‧
|
carstyc
資深會員 發表:16 回覆:254 積分:329 註冊:2003-07-18 發送簡訊給我 |
你的問題其實很單純...解法也很多種....
1.你的 Form 是自己動態建出來的。 [code cpp] nForm= new TForm(Application); nForm->Show [/code] 你只要預先建立一個有 Timage 的Form,比如叫 TMyForm 然後去動態建立時就是建立你的 TMyfForm,如此就出來的 Form就會有 Image 的元件可以畫圖。 [code cpp] nForm= new TMyForm(Application); nForm->Show [/code] 2.一樣去建立 Base Form,也建立一個 Image,然後把 Image.parent指向 Form,這樣一樣可以在 Image上面畫你想要的東西出來 [code cpp] nForm= new TForm(Application); nImg=new TImage(Application); nImg->Parent = nForm; nForm->Show [/code] 這樣好也可以 [code cpp] nForm= new TForm(Application); nImg=new TImage(nForm); nForm->Show [/code] 3. 把你要畫的東西,不是直接在 Form 的 Canvas 上面畫,而是把它存到一個陣列中,然後在 Form 的 on_Paint 上去根據陣列的資料重新畫出你要的東西。 4. 把你要畫的東西,不是直接在 Form 的 Canvas 上面畫,而是把它畫到一個看不見的Image中,然後在 Form 的 on_Paint 上去根據Image的Canvas,快速複製到Form的Canvas上。 作法太多,族繁不及備載..... 以上供參考,謝謝 ===================引 用 istillloving 文 章=================== 您好: 看了您的程式是把 DoPaint(); 放在 On_Paint 事件內 所以讓我再好好想想放在 OnPaint 事件內怎麼做出我要的功能 而且您的Form好像不是動態新增的 所以可以事先寫好 但是還是非常謝謝您 |
istillloving
高階會員 發表:33 回覆:182 積分:183 註冊:2008-10-09 發送簡訊給我 |
|
jow
尊榮會員 發表:66 回覆:751 積分:1253 註冊:2002-03-13 發送簡訊給我 |
呵, 你沒有測試我的程式碼???
以下的需求不是已經都實作出來了??? 你可以在TfrmFuncD中,宣告一個LoadImageFromStream()的 Method 將你的Image物件傳入, 叫用FImage->Picture->LoadFromStream() 應該就可以圖片載入TfrmFuncD的 FImage中了 另外宣告一個SaveImageToFile()的 Method 叫用 FImage->Picture->SaveToFile() 將 Image儲存到檔案 程式中的 TfrmFuncA ~ TfrmFuncD 全部都是動態建立出來的 並且各自可以產生 N 個... ^_^ 個人做法, 謹供參考... ===================引 用 carstyc 文 章=================== 你的問題其實很單純...解法也很多種.... 1.你的 Form 是自己動態建出來的。 [code cpp] nForm= new TForm(Application); nForm->Show [/code] 你只要預先建立一個有 Timage 的Form,比如叫 TMyForm 然後去動態建立時就是建立你的 TMyfForm,如此就出來的 Form就會有 Image 的元件可以畫圖。 [code cpp] nForm= new TMyForm(Application); nForm->Show [/code] 2.一樣去建立 Base Form,也建立一個 Image,然後把 Image.parent指向 Form,這樣一樣可以在 Image上面畫你想要的東西出來 [code cpp] nForm= new TForm(Application); nImg=new TImage(Application); nImg->Parent = nForm; nForm->Show [/code] 這樣好也可以 [code cpp] nForm= new TForm(Application); nImg=new TImage(nForm); nForm->Show [/code] 3. 把你要畫的東西,不是直接在 Form 的 Canvas 上面畫,而是把它存到一個陣列中,然後在 Form 的 on_Paint 上去根據陣列的資料重新畫出你要的東西。 4. 把你要畫的東西,不是直接在 Form 的 Canvas 上面畫,而是把它畫到一個看不見的Image中,然後在 Form 的 on_Paint 上去根據Image的Canvas,快速複製到Form的Canvas上。 作法太多,族繁不及備載..... 以上供參考,謝謝 ===================引 用 istillloving 文 章=================== 您好: 看了您的程式是把 DoPaint(); 放在 On_Paint 事件內 所以讓我再好好想想放在 OnPaint 事件內怎麼做出我要的功能 而且您的Form好像不是動態新增的 所以可以事先寫好 但是還是非常謝謝您
編輯記錄
jow 重新編輯於 2009-12-11 18:22:08, 註解 無‧
|
istillloving
高階會員 發表:33 回覆:182 積分:183 註冊:2008-10-09 發送簡訊給我 |
您好:
小弟有測試過了 裡面這提到 看了一下 Do_Paint 我知道是測試用的也大概了解 On_Paint 的功能 [code c#] void __fastcall TfrmFunc::FormPaint(TObject *Sender) { DoPaint(); } [/code] 可是當我自己把我的改成 [code cpp] void __fastcall NForm::FormPaint(TObject *Sender) { for(j=0;j for(i=0;i NForm->Canvas->Pixels[i][j]=TColor(RGB(CR[i w*j],CG[i w*j],CB[i w*j])); Form1->Canvas->Pixels[i][j]=TColor(RGB(CR[i w*j],CG[i w*j],CB[i w*j])); } } } [/code] 我發現我的程式並不會畫出任何東西呢 而我參考了您的程式TfrmFunc. 有點像我的程式中的Form1. 或者是使用toolbar所新增的Form 因為我最初的想法就是動態的產生 基於動態所以沒辦法知道有幾個 所以也就沒有辦法事先寫在 .cpp 和 .h 就如同我上述的我自己把NForm的Paint寫在Unit1.h內 結果沒作用 而這直接硬塞一個NewFoem進去的話...... [code cpp] [Linker Error] Unresolved external 'TfrmFuncB::' referenced from H:\綜合\白平衡 影像修補\UNIT1.OBJ [Linker Error] Unresolved external '__fastcall TfrmFuncB::TfrmFuncB(Classes::TComponent *)' referenced from H:\綜合\白平衡 影像修補\UNIT1.OBJ [/code] 這到底是錯在哪....我現在是當局者迷....=..= 麻煩請指引一盞明燈吧.... 非常感謝
------
恩...
編輯記錄
|
jow
尊榮會員 發表:66 回覆:751 積分:1253 註冊:2002-03-13 發送簡訊給我 |
|
istillloving
高階會員 發表:33 回覆:182 積分:183 註冊:2008-10-09 發送簡訊給我 |
我寫太快了...漏寫...
我有在Form1上設一個Button用來new出NForm的 所以我的順序是先出現Form1然後點Button 接著就會new NForm show NForm 這情況下還是會被抹去
------
恩...
編輯記錄
istillloving 重新編輯於 2009-12-12 11:11:29, 註解 無‧
|
istillloving
高階會員 發表:33 回覆:182 積分:183 註冊:2008-10-09 發送簡訊給我 |
------
恩...
編輯記錄
istillloving 重新編輯於 2009-12-13 16:18:25, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |