抓取檔案顯示在TListView中 |
尚未結案
|
Miki-lion
中階會員 發表:90 回覆:180 積分:54 註冊:2005-04-24 發送簡訊給我 |
|
Vicen
高階會員 發表:13 回覆:145 積分:151 註冊:2005-03-14 發送簡訊給我 |
上班时间只能大概写下,给你参考参考,希望对你有所帮助。 //注意别忘记引用 class="code">
procedure TForm1.BtnAddClick(Sender: TObject);
Var
sName, sType, sPath : String;
xItem : TListItem;
begin
Case CmbMode.ItemIndex Of
0://文件
begin
//其实不太明白为什么不用TEDIT而用MaskEdit?不过也行,讲究用了。
sName := ExtractFileName(MaskEdit.Text);
sType := ExtractFileExt(MaskEdit.Text);
sPath := ExtractFileDir(MaskEdit.Text)
end;
1://目录
begin
//这里要处理一下路径最后的“\”,否则 ExtractFileName 无法取最后的目录名称
if RightBStr(MaskEdit.Text,1)='\' then
MaskEdit.Text := LeftBStr(MaskEdit.Text, Length(MaskEdit.Text)-1);
sName := ExtractFileName(MaskEdit.Text);
sType := '文件夹';
sPath := MaskEdit.Text;
end;
End;
xItem := ListView.Items.Add;
xItem.Caption := sName;
xItem.SubItems.Add(sPath);
xItem.SubItems.Add(sType);
end;
|
Miki-lion
中階會員 發表:90 回覆:180 積分:54 註冊:2005-04-24 發送簡訊給我 |
|
Vicen
高階會員 發表:13 回覆:145 積分:151 註冊:2005-03-14 發送簡訊給我 |
|
haman
中階會員 發表:46 回覆:137 積分:56 註冊:2005-03-10 發送簡訊給我 |
幫你轉成bcb了,測試過,ok
void __fastcall TForm1::Button1Click(TObject *Sender) { if(OpenDialog->Execute()) { String sName,sType,sPath; TListItem *xItem; switch(ComboBox->ItemIndex) { case 0://File Mode sPath = ExtractFilePath(OpenDialog->FileName); sName = ExtractFileName(OpenDialog->FileName); sType = ExtractFileExt(OpenDialog->FileName); break; case 1: sPath = ExtractFilePath(OpenDialog->FileName); sName = ExtractFileName(sPath.SubString(0,sPath.Length()-1)); sType = "文件夾"; break; } xItem = ListView->Items->Add(); xItem->Caption = sName; xItem->SubItems->Add(sPath); xItem->SubItems->Add(sType); } }其中OpenDialog請自行代換成maskedit ==================================== 懂的不多,卻想學的更多,搞得不自覺的將問題複雜化@@ |
Miki-lion
中階會員 發表:90 回覆:180 積分:54 註冊:2005-04-24 發送簡訊給我 |
謝謝你的幫忙,不過我覺得與其去抓MaskEdit的值,來寫入三樣型態進去ListView。 到不如直接在開啟檔案或目錄時寫進去,因為: 開檔->寫入MaskEdit->判斷MaskEdit在寫入內容 到不如開檔->直接寫入內容到ListView,所以我省略了MaskEdit這部份了。 這支程式在開啟資料夾時,會無法開啟,因為型態是用來開啟檔案的, 選擇目錄模式後,再強迫他開某一個檔案,就會寫入這檔案所屬的資料夾。 這是我開啟"目錄"的方法,它會叫出一個開啟資料夾的對話框 可是我不知道要怎樣修改給這支程式碼? 想請問我需要怎麼做呢? 謝謝你的幫忙^^
if(ComboBox1->Text == "目錄模式") { AnsiString DirectoryPath; if (SelectDirectory("選擇目錄", "", DirectoryPath)) { MaskEdit1->Text = DirectoryPath; } } |
Vicen
高階會員 發表:13 回覆:145 積分:151 註冊:2005-03-14 發送簡訊給我 |
|
Miki-lion
中階會員 發表:90 回覆:180 積分:54 註冊:2005-04-24 發送簡訊給我 |
|
haman
中階會員 發表:46 回覆:137 積分:56 註冊:2005-03-10 發送簡訊給我 |
看看這樣合不合你的動作要求?
void __fastcall TForm1::Button1Click(TObject *Sender) { String sName,sType,sPath; TListItem *xItem; switch(ComboBox->ItemIndex) { case 0://File Mode if(OpenDialog->Execute()) { sPath = ExtractFilePath(OpenDialog->FileName); sName = ExtractFileName(OpenDialog->FileName); sType = ExtractFileExt(OpenDialog->FileName); } break; case 1: String DirectoryPath; if (SelectDirectory("選擇目錄", "", DirectoryPath)) { sPath = ExtractFilePath(DirectoryPath); sName = ExtractFileName(DirectoryPath); sType = "資料夾"; } break; } xItem = ListView->Items->Add(); xItem->Caption = sName; xItem->SubItems->Add(sPath); xItem->SubItems->Add(sType); }==================================== 懂的不多,卻想學的更多,搞得不自覺的將問題複雜化@@ |
Miki-lion
中階會員 發表:90 回覆:180 積分:54 註冊:2005-04-24 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |