物件自動產生的問題 |
答題得分者是:speedup
|
will
中階會員 發表:176 回覆:135 積分:62 註冊:2002-04-14 發送簡訊給我 |
|
ha0009
版主 發表:16 回覆:507 積分:639 註冊:2002-03-16 發送簡訊給我 |
|
speedup
資深會員 發表:19 回覆:259 積分:280 註冊:2003-07-04 發送簡訊給我 |
引言: 小弟用程式自動產生TMediaPlayer 程式碼大致如下 var mp:TMediaPlayer if mp<> nil then mp.Free; mp:=TMediaPlayer.Create(Form1); mp.Parent := Form1;//add this line MP.FileName:='tt.wav'; MP.Open; 執行到MP.open時出現了control has no parent windows 的錯誤 請問小弟該如可解決 Form1是不是mp的parent?TMediaPlayer.Create(Form1);中的Form1指的是Owner,Owner是VCL原元件架構中用來管理子Component,其中最被常用的機制就是當Owenr被釋放時,最主動先 釋放子Component; 但TComponent作為祖先類別,並無法管理視覺化元件(即TControl的子孫類別,設計時可調整大小,執行時可視的元件),TControl類別利用Parent屬性來指定誰可以顯示他,例如在Form上,一個Button可能放在一個Panel上,未必會放在Form上,因此Button此時的Parent為Panel, 所以,如果動態建立TControl子孫類別物件,請在Create之後,利用Parent來指定該物件顯示在那個Parent上(Parent必須為TWinControl子孫類別) 唉~
------
唉~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |