MainMenu動態產生居然不行?! |
答題得分者是:老大仔
|
tokiama
一般會員 發表:34 回覆:60 積分:23 註冊:2009-04-19 發送簡訊給我 |
這問題,在版上有許多資料,小弟也曾在當初在學動態產生元件實去爬了文...
如今,卻卡在很奇怪的地方...小弟我想動態產生 MainMenu 只是普通的產生沒問題,只是我加上其他的後就不行了。 不論小弟我用的是 Application 或是 Owner 在者 Form1 都用了但還是不行... [code delphi] function TabCount(UnitString:WideString):integer; var i,TabCount:integer; begin for i:=1 to Length(UnitString) do Inc(TabCount); end; procedure TForm1.Button1Click(Sender: TObject); var ii:integer; begin SetLength(MM,Memo1.Lines.Count); Memo1.Lines.LoadFromFile('.介面格式.txt'); MM[i]:=TMenuItem.Create(Application); <------此行在我按下Button要產生MainMenu時就會錯 for i:=0 to Memo1.Lines.Count do begin ws:=Memo1.Lines.Strings[i]; for si:=1 to Length(ws) do case ws[si] of #9: inc(sc); else Mname:=Mname ws[si]; end; MM[i].Caption:=Mname; for ii:=i-1 downto 0 do begin if (sc if sc=0 then MainMenu1.Items.Add(MM[i]); end; end; end; [/code] 請各位前備指點一下,謝謝。 |
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
|
tokiama
一般會員 發表:34 回覆:60 積分:23 註冊:2009-04-19 發送簡訊給我 |
|
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
可是您的MM[i]卻是寫在for迴圈外面...
另外... SetLength(MM,Memo1.Lines.Count); Memo1.Lines.LoadFromFile('. 介面格式.txt'); MM[i]:=TMenuItem.Create(Application); <------此行在我按下 Button要產生MainMenu時就會錯 for i:=0 to Memo1.Lines.Count do begin // end; 以上四行怎麼會這樣寫... 還沒Load檔案就先SetLength??? MM[i]居然不是在for迴圈中?? 請再參考一下這篇文章 http://delphi.ktop.com.tw/board.php?cid=30&fid=71&tid=17944 ===================引 用 tokiama 文 章=================== 有宣告 var MM: array of TMenuItem; i: integer; i 是用 For 回圈去跑,讓它連序產生,所以值是 For i:=0 to Memo1.Lines.Count do 。 然後程式可以 Run 只是 Button 按下去會出錯就是了。 ===================引 用 老大仔 文 章=================== 你的MM有宣告了嗎? i有給值了嗎??
編輯記錄
老大仔 重新編輯於 2010-08-11 14:14:03, 註解 無‧
|
tokiama
一般會員 發表:34 回覆:60 積分:23 註冊:2009-04-19 發送簡訊給我 |
謝謝,那四行的確有問題...
小弟弄懂了,謝謝教導。 ===================引 用 老大仔 文 章=================== 可是您的MM[i]卻是寫在for迴圈外面... 另外... SetLength(MM,Memo1.Lines.Count); Memo1.Lines.LoadFromFile('. 介面格式.txt'); MM[i]:=TMenuItem.Create(Application); <------此行在我按下 Button要產生MainMenu時就會錯 for i:=0 to Memo1.Lines.Count do begin // end; 以上四行怎麼會這樣寫... 還沒Load檔案就先SetLength??? MM[i]居然不是在for迴圈中?? 請再參考一下這篇文章 http://delphi.ktop.com.tw/board.php?cid=30&fid=71&tid=17944 ===================引 用 tokiama 文 章=================== 有宣告 var MM: array of TMenuItem; i: integer; i 是用 For 回圈去跑,讓它連序產生,所以值是 For i:=0 to Memo1.Lines.Count do 。 然後程式可以 Run 只是 Button 按下去會出錯就是了。 ===================引 用 老大仔 文 章=================== 你的MM有宣告了嗎? i有給值了嗎?? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |