2015-10-23 33 views
1

我通過使用'Showmessage'(在Win 7中)顯示了文件的保存位置。 當文件路徑很長時,它會被截斷並且elipsis被插入。 如 路徑如何讓'Showmessage'對話框變寬以適合文本?

C:\Users\Admin\Documents\SubFolderOne\AnotherSubFolder\MyFile.csv 

被顯示爲

C:\Users\Admin\Documents\SubFolderOne\Ano...\MyFile.csv 

有沒有一種方法,使消息框寬,顯示所有的文件名和路徑的?

我已閱讀本 http://zarko-gajic.iz.hr/displaying-long-non-breakable-text-file-path-in-messagedlg-truncationellipsis-issues/ 這也解釋了一些推理,並給出了一個相當令人不滿意方法的TTaskDialog,我也我知道我可以做我自己的形式以同樣的方式作爲Showmessage行事,但我想知道如果使用Showmessage有一個更簡單的解決方案。

+0

把你的字符串分成幾行,比如'Copy(s,1,32)+'...'#13 + Copy(s,33,Length(s))' – Abelisto

+0

可能我猜。爲了使它看起來很整齊,儘管我不得不在路徑中找到最後一個反斜槓,並將它分配到消息窗口中的一行,但它仍然不會像單個文件名和路徑一樣讀取 – user3209752

+1

Design你自己的形式,而不是使用'ShowMessage';該表單可以做你想做的任何事情。你可以創建你自己的函數來接受一個字符串,創建表單,並以任何你喜歡的方式顯示字符串。 –

回答

1

是一個更簡單的解決方案,只使用ShowMessage

不,沒有。

我可以想到三種明顯的方法,但無疑還有更多。

創建自己的對話框

沒有什麼特別神奇的對話。你完全可以自己創建它們,因此可以完全控制它們的外觀。當然,缺點是可能很難與原生平臺外觀相匹配。特別是當您考慮您通常期望支持的所有不同的Windows版本時。

使用CreateMessageDialog和自定義該德爾福形式

可以調用RTL功能CreateMessageDialog獲得可以用來顯示你的消息對話框一個Delphi的形式。然後,您有機會以任何您喜歡的方式自定義此對話框。

使用任務對話框API

任務對話框API,在Vista中引入,得到的對話框寬度的控制。致電TaskDialogIndirect,併爲cxWidth指定一個非零值。

+0

謝謝。正如我在我的文章中提到的那樣,我確實使用了這些選項,並且已經很頻繁地創建自己的自定義對話框。我的問題與Showmessage具體有關,是否有一些屬性或方法可以用來改變它的外觀。 – user3209752

+0

這很簡單。答案是不。這樣的答案往往不被很好的接受,所以我擴大了。 –

+0

那麼,我們是否回答你的問題呢? –

相關問題