線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3182
推到 Plurk!
推到 Facebook!

SaveDialog的問題

尚未結案
qqmax
一般會員


發表:17
回覆:26
積分:8
註冊:2004-11-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-31 13:54:42 IP:163.28.xxx.xxx 未訂閱
請問各位大大: 我現在有一個字串String是存放一個檔名 副檔名(EX:xxx.cpp) 我現在想要再COMPILE的時候才去決定SaveDialog視窗跳出時 他的檔名和存檔類型是用String的檔名和副檔名為預設 有辦法嗎???語法可以請各位高手指點一下嗎 謝謝各位!!!
nlj859
資深會員


發表:139
回覆:375
積分:322
註冊:2004-03-20

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-31 14:19:53 IP:219.80.xxx.xxx 未訂閱
Hello qqmax,    參考底下程式碼:
AnsiString a="aaa";
AnsiString b="cpp";
SaveDialog1->FileName=a;
SaveDialog1->Filter=b;
if (SaveDialog1->Execute())
{
  TStringList *str=new TStringList;
  str->SaveToFile("c:\\" a b);
  delete str;
}
nlj859
資深會員


發表:139
回覆:375
積分:322
註冊:2004-03-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-31 14:21:54 IP:219.80.xxx.xxx 未訂閱
Hello qqmax,    參考底下程式碼:
AnsiString a="aaa";
AnsiString b=".cpp";
SaveDialog1->FileName=a;
SaveDialog1->Filter=b;
if (SaveDialog1->Execute())
{
  TStringList *str=new TStringList;
  str->Add("test");
  str->SaveToFile("c:\\" a b);
  delete str;
}
PS.按錯,所以多回覆一篇.以這篇為準. 發表人 - nlj859 於 2004/12/31 14:23:42
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-31 14:53:39 IP:218.15.xxx.xxx 未訂閱
引言: 請問各位大大: 我現在有一個字串String是存放一個檔名 副檔名(EX:xxx.cpp) 我現在想要再COMPILE的時候才去決定SaveDialog視窗跳出時 他的檔名和存檔類型是用String的檔名和副檔名為預設 有辦法嗎???語法可以請各位高手指點一下嗎 謝謝各位!!!
您可以试试如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if SaveDialog1.Execute then
    showmessage(extractfilename(SaveDialog1.FileName));
end;    procedure TForm1.FormCreate(Sender: TObject);
var
  str:string;
begin
  str:='test.cpp';
  SaveDialog1.FileName:=copy(str,1,pos('.',str)-1);
  saveDialog1.Filter:=copy(str,pos('.',str),length(str)-1);  
end;
============================= 为什么经过多年以后,得失的过程如此冷漠 =============================
qqmax
一般會員


發表:17
回覆:26
積分:8
註冊:2004-11-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-12-31 17:26:21 IP:163.28.xxx.xxx 未訂閱
引言: Hello qqmax, 參考底下程式碼:
AnsiString a="aaa";
AnsiString b=".cpp";
SaveDialog1->FileName=a;
SaveDialog1->Filter=b;
if (SaveDialog1->Execute())
{
  TStringList *str=new TStringList;
  str->Add("test");
  str->SaveToFile("c:\\" a b);
  delete str;
}
PS.按錯,所以多回覆一篇.以這篇為準. 發表人 - nlj859 於 2004/12/31 14:23:42
感謝您的回覆 不過我是這樣寫 AnsiString s=fileName; //fileName是某個檔名ex:xxx.cpp if(SaveDialog2->Execute()) { SaveDialog2->FileName=s; //照您說的我想要它Dialog跳出來之後檔名的地方是以fileName為預設 //以下是我把檔名的副檔名擷取出來的迴圈 for(int i=1;;i ) { if(fileName[i]=='.') { s=fileName.Delete(1,i-1); break; } } SaveDialog2->Filter=s; //當擷取完附檔名之後再把原字串assign給您說的我想要在檔案類型預設.cpp gmsFile->SaveToFile(SaveDialog2->FileName); //跳出Dialog讓我選擇要存放的路徑 } 經過測試我Dialog跳出來的畫面還是沒有預設值是空白的(檔名和存檔類型) 當我自己輸入要存檔的檔名時按下確定,但是存的檔名卻是原來的檔名xxx.cpp 並不是我自己輸入的檔名 位什麼呢???還是 SaveDialog1->FileName=a; SaveDialog1->Filter=b; 這兩行並不是我想要出現的功能 麻煩請您再次給予我一些幫助謝謝^^
ctako
一般會員


發表:1
回覆:3
積分:0
註冊:2003-08-19

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-01-03 13:42:12 IP:210.68.xxx.xxx 未訂閱
嗯~~請把你設定預設值的動作移到 if(SaveDialog2->Execute())之前, 因為在這個if內的動作是在SaveDialog2的動 作執行完後,才可能會被執行的(按cancel就不會被執行)。
系統時間:2024-04-28 4:04:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!