0
我們正在將Delphi 5應用程序升級到Delphi XE7。該應用程序具有許多使用WindowState wsNormal打開的MDIChild(FormStyle fsMDIChild)窗體。當我打開其中一個窗體並再次關閉它時,主窗體(FormStyle fsMDIForm)上的主菜單(TMainMenu)將自己對齊到右側,並且永遠不會再返回。如果我在關閉它之前調整MDIChild窗體大小(例如,單擊「正常」或「最小化」圖標),則不會發生這種情況。德爾福MDI兒童表格和MainMenu
這並不與德爾福5.0版本發生,所以我承擔的東西被用不同XE 7
任何其他以前經歷過這樣處理?如果是這樣,你是如何解決它的?
UPDATE:
我已經成功地複製這個問題:
- 創建一個新的VCL應用
- 使主窗體(MainForm的)formStyle的MDIForm
- 爲MainForm中有菜單項 創建的MainMenu
- 創建第二個表單(ChildForm)
- Make ChildForm formStyle MDIChild
- 爲ChildForm與菜單項創建的MainMenu
- 重要(這是打破它):選擇ChildForm BorderIcons僅biSystemMenu和biMaximise
- 創建於MainForm的按鈕,創建和顯示ChildForm
- 運行應用程序
- 點擊按鈕
- 最大化ChildForm
- 關閉ChildForm(已被最大化,否則故障不會發生)
- OBSE現在MainForm的菜單現在與右邊的一個不可點擊的「Minimize」圖標對齊如果biMinimise被添加到ChildForm的BorderIcons中,問題就會消失。
我很確定這是一個錯誤。如我錯了請糾正我。
感謝 Ĵ
謝謝大衛,我會試驗一下。在Delphi 5中,我發現這種行爲是不同的,但是你的解釋很有道理。 – oxydog 2015-04-08 09:06:45