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

CreateParams 的使用方式 (Delphi --> BCB)

答題得分者是:william
davidsun
初階會員


發表:57
回覆:71
積分:25
註冊:2002-04-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-11-14 14:35:56 IP:61.222.xxx.xxx 未訂閱
 
procedure CreateParams(var Params: TCreateParams); override;    // 讓父視窗看起來更立體
procedure TMainFmt.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.ExStyle := Params.ExStyle or WS_EX_CLIENTEDGE;
end;
上面這段程式,是可以讓非 MDI 視窗看起來如同 MDI 一樣,是 Delphi 的寫法,我在 BCB 中 ->
class TMainFmt : public TForm
{
__published:        // IDE-managed Components
  void __fastcall CreateParams(Controls::TCreateParams &Params);
private:        // User declarations
public:                // User declarations
        __fastcall TMainFmt(TComponent* Owner);
};    //.........    void __fastcall TMainFmt::CreateParams(Controls::TCreateParams &Params)
{
  inherited CreateParams(Params);
  Params.ExStyle = Params.ExStyle || WS_EX_CLIENTEDGE;
}    
改成這樣的寫法是不行的,可否請各位賜教 這段 Delphi Code 如何轉成 C Code 呢? 謝謝您。
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-11-14 14:50:00 IP:147.8.xxx.xxx 未訂閱
引言:
 
procedure CreateParams(var Params: TCreateParams); override;    // 讓父視窗看起來更立體
procedure TMainFmt.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.ExStyle := Params.ExStyle or WS_EX_CLIENTEDGE;
end;
上面這段程式,是可以讓非 MDI 視窗看起來如同 MDI 一樣,是 Delphi 的寫法,我在 BCB 中 ->
class TMainFmt : public TForm
{
__published:        // IDE-managed Components
  void __fastcall CreateParams(Controls::TCreateParams &Params);
private:        // User declarations
public:                // User declarations
        __fastcall TMainFmt(TComponent* Owner);
};    //.........    void __fastcall TMainFmt::CreateParams(Controls::TCreateParams &Params)
{
  inherited CreateParams(Params);
  Params.ExStyle = Params.ExStyle | WS_EX_CLIENTEDGE;
}    
改成這樣的寫法是不行的,可否請各位賜教 這段 Delphi Code 如何轉成 C Code 呢? 謝謝您。
Typing error?
davidsun
初階會員


發表:57
回覆:71
積分:25
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-11-14 14:57:46 IP:61.222.xxx.xxx 未訂閱
引言: Typing error?
我在 Compiler 時,會出現 [C Error] MainUnt.cpp(20): E2459 VCL style classes must be constructed using operator new [C Error] MainUnt.cpp(20): E2459 VCL style classes must be constructed using operator new [C Error] MainUnt.cpp(20): E2285 Could not find a match for 'TCustomForm::TCustomForm(TCreateParams)' [C Warning] MainUnt.cpp(23): W8004 'CreateParams' is assigned a value that is never used
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-11-14 15:21:29 IP:147.8.xxx.xxx 未訂閱
Sorry, I have not used BCB for long time... Just recall from memory: .... public void __fastcall CreateParams(TCreateParams &Params); .... void __fastcall TForm1::CreateParams(TCreateParams &Params) { TForm::CreateParams(Params); Params.ExStyle |= WS_EX_CLIENTEDGE; }
davidsun
初階會員


發表:57
回覆:71
積分:25
註冊:2002-04-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-11-14 15:25:48 IP:61.222.xxx.xxx 未訂閱
Thank you so much . 問題出在於我不能使用 inherited CreateParams(Params); 而必須使用 TForm::CreateParams(Params); inherited CreateParams(Params); 在 Delphi 表示繼承父類別的 CreateParams(Params) ,原來在在 BCB 必須改成 TForm::CreateParams(Params); 謝謝您
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-11-17 13:57:43 IP:203.204.xxx.xxx 未訂閱
引言:
 
procedure CreateParams(var Params: TCreateParams); override;
// 讓父視窗看起來更立體
procedure TMainFmt.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.ExStyle := Params.ExStyle or WS_EX_CLIENTEDGE;
end;
上面這段程式,是可以讓非 MDI 視窗看起來如同 MDI 一樣,是 Delphi 的寫法,我在 BCB 中 ->
class TMainFmt : public TForm
{
__published:        // IDE-managed Components
  virtual void __fastcall CreateParams(Controls::TCreateParams &Params);    private:        // User declarations
public:                // User declarations
        __fastcall TMainFmt(TComponent* Owner);
};    //.........    void __fastcall TMainFmt::CreateParams(Controls::TCreateParams &Params)
{
  TForm::CreateParams(Params);
  Params.ExStyle = Params.ExStyle | WS_EX_CLIENTEDGE;
}    
改成這樣的寫法是不行的,可否請各位賜教 這段 Delphi Code 如何轉成 C++ Code 呢? 謝謝您。
我想您應該已解決問題了,不過,我還是把個程式中「兩個」轉換時要注意的部分,分別以「紅色」及「綠色」標出。希望,各位使用 BCB 的網友能更看得懂 Delphi。 沒空更新的網頁...
C及指標教學,計算機概論,資訊管理導論... http://coolsite.to/dllee 介紹Shells,LiteStep,GeoShell.... http://coolsite.to/ushells
------
http://www.ViewMove.com
系統時間:2024-03-28 16:40:30
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!