簡體   English   中英

TSaveDialog 和 2 種具有相同擴展名的格式

[英]TSaveDialog and 2 formats with same extension

在 TSaveDialog 中,我添加了 2 種具有相同擴展名的格式:

Format A|*.form
Format B|*.form
Format C|*.diff

現在我想確定用戶選擇的格式:

var Ext: String;
begin
  if not SaveDialog1.Execute then Exit;

  Ext := LowerCase(ExtractFileExt(SaveDialog1.FileName));

這樣我可以區分“格式 B”和“格式 C”,但我不能區分“格式 A”和“格式 B”。

使用FilterIndex屬性來確定在操作對話框時選擇了哪個過濾器。

雖然 David 的回答直接與所提出的問題相關,但在確定用戶意圖時還需要考慮更多內容。 您不一定只依靠文件擴展名來了解用戶想要做什么。 畢竟,用戶可以自己手動輸入.form到文件名中,那么你應該怎么做呢?

相反,不應在此級別上實施此類選項。 以我的經驗,這些事情是在中間水平上實現的。 例如,想想視頻編輯/制作。 用戶可能希望將視頻呈現為MP4視頻。 或者也許是一個AVI 但是,這些可能的格式中的每一種都有各種各樣的其他特定選項,例如視頻編解碼器、質量等等。

在這種情況下需要做的是在保存文件之前提供額外的用戶選項層。 讓它成為某種意義上的“項目”的一部分。 用戶對他們的內容做他們需要做的事情,其中一部分過程是決定他們打算生成哪種類型的 output 格式。 當用戶決定保存時,在提示他們輸入文件名之前,首先提示他們輸入其他特定格式選項,具體取決於您的應用程序支持的格式。

長話短說,不要依賴文件擴展名本身來識別用戶的所有意圖。 在選擇 output 擴展之前,應該有一個中間級別的用戶選擇文件的格式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM