全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1178
推到 Plurk!
推到 Facebook!

請問關於ShellExecute和Memo的問題.謝謝

尚未結案
kagaya
中階會員


發表:74
回覆:175
積分:59
註冊:2002-12-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-06 10:31:38 IP:210.200.xxx.xxx 未訂閱
例如 ShellExecute(NULL,NULL,Edit1->Text,NULL,NULL,WS_SHOW); 在Delphi有pchar(Edit1->Text)可用 但是在BCB該如何使用? 我寫成(char)Edit1->Text仍然會有錯誤 還有Memo1->Lines->String[x]裡 如果有類似路徑的內容.例如"c:\cc.exe" 那麼那行以下在儲存成檔案時.例如Memo1->Lines->SaveToFile("...") 就會不見.該如何才能儲存呢? 謝謝
------
KUSO 無處不在
ENIX007
高階會員


發表:28
回覆:274
積分:185
註冊:2003-11-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-06 13:53:43 IP:210.243.xxx.xxx 未訂閱
kagaya您好 1.一般API都是傳入char*,而BCB最常用的字串是AnsiString,他們之間存在一個 轉換式: char * = AnsiString.c_str(); 因此寫成 Edit1->Text.c_str()就可以囉 > 還是請您 > 程式迷人之處,在於邏輯思考,然而卻也是惱人之處~~
------
程式迷人之處,在於邏輯思考,然而卻也是惱人之處~~
axsoft
版主


發表:681
回覆:1056
積分:969
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-01-06 16:46:28 IP:61.218.xxx.xxx 未訂閱
kagaya您好:    如果您存粹只是把檔案Load到Memo中,然後修改後存檔....可以試試我的方法:    1.在Form上各置放一個TMemo/TSaveDialog/TOpenDialog以及兩個Button    2.程式碼如下:    
//---------------------------------------------------------------------------    #include 
#pragma hdrstop    #include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
//  開啟檔案到Memo中
//---------------------------------------------------------------------------
void __fastcall TForm1::btnLoadFile_To_MemoClick(TObject *Sender)
{
 TStringList *sl=new TStringList;     try{
     if(OpenDialog1->Execute())
       {
        sl->LoadFromFile(OpenDialog1->FileName);
        Memo1->Clear();
        Memo1->Lines->AddStrings(sl);
       }
 }__finally
 {
   delete sl;
 }
}
//---------------------------------------------------------------------------
// 將 Memo的內容存檔
//---------------------------------------------------------------------------
void __fastcall TForm1::btnMemoSaveAsClick(TObject *Sender)
{
 char szFileName[MAXFILE 4];
 if(SaveDialog1->Execute())
    {
     if (FileExists(SaveDialog1->FileName)) //檢查是否檔案已經存在?
       {
         fnsplit(SaveDialog1->FileName.c_str(), 0, 0, szFileName, 0);
          strcat(szFileName, ".BAK");
         RenameFile(SaveDialog1->FileName, szFileName);
       }
     Memo1->Lines->SaveToFile(SaveDialog1->FileName);
    }
}
//---------------------------------------------------------------------------
/*生活是一種藝術,用心生活才能享受生活*/
kagaya
中階會員


發表:74
回覆:175
積分:59
註冊:2002-12-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-01-07 09:06:52 IP:210.200.xxx.xxx 未訂閱
感謝axsoft大大及ENIX007大大 ShellExecute測試ok 關於memo存檔我發現原來是我沒加路徑ExtractFilePath(Application->ExeName)< > 然後中間又有用到 > 感謝< >
------
KUSO 無處不在
系統時間:2024-04-23 20:03:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!