CreateParams 的使用方式 (Delphi --> BCB) |
答題得分者是:william
|
davidsun
初階會員 發表:57 回覆:71 積分:25 註冊:2002-04-14 發送簡訊給我 |
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 發送簡訊給我 |
引言:Typing error?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 呢? 謝謝您。 |
||||
davidsun
初階會員 發表:57 回覆:71 積分:25 註冊:2002-04-14 發送簡訊給我 |
引言: 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 發送簡訊給我 |
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 發送簡訊給我 |
|||||
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
引言:我想您應該已解決問題了,不過,我還是把個程式中「兩個」轉換時要注意的部分,分別以「紅色」及「綠色」標出。希望,各位使用 BCB 的網友能更看得懂 Delphi。 沒空更新的網頁...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 呢? 謝謝您。
------
http://www.ViewMove.com |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |