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

如何連續開起不同檔名的圖片

尚未結案
istillloving
高階會員


發表:33
回覆:182
積分:183
註冊:2008-10-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-02-26 23:15:14 IP:218.172.xxx.xxx 訂閱
各位大大:

最近想做圖片檢索

而我之前連續開檔的方法是用Timer元件 然後把圖片檔名設成後(假設1~100 都存放在同一個資料夾)

在Timer裡面設一個旗標讓他累加來開啟圖檔

但是這樣我就沒有辦法得到圖片的資訊了 例如: 如果檔名1的圖片是 "A" 這個字

那總不能把所以檔名所對應到的資訊都寫在程式裡面吧

所以我現在的想法是 如果圖片是 "A" 這個字的話 檔名就給 "A"

如果內容是 "魚" 的話 檔名就給 "魚"

可是這樣我就不知道怎麼把他們連續開起來了

有沒有什麼辦法 可以指定路徑 指向圖檔資料夾

然後依序開啟後並且知道檔名呢??
------
恩...
AndrewK
高階會員


發表:6
回覆:151
積分:161
註冊:2006-10-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-02-27 02:40:48 IP:60.250.xxx.xxx 訂閱
建議可以先用 TstringList 將資料夾下所有【檔名路徑】存入
如此就可以用您原來的方式開啟圖片
------
Just Do It
-------------------------
其實男生不是真的喜歡你不減肥,而是喜歡你愛吃還不肥;也不是真的喜歡你不化妝,而是喜歡你素顏也好看;也不是真的喜歡你瘦,而是喜歡你瘦卻有胸;也不是真喜歡你獨立,而是他忙的時候別煩他。女孩子,太認真你就輸了。
istillloving
高階會員


發表:33
回覆:182
積分:183
註冊:2008-10-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-02-27 08:06:32 IP:220.129.xxx.xxx 訂閱
今天來試看看
------
恩...
hank73317
一般會員


發表:20
回覆:47
積分:13
註冊:2008-12-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-02-27 10:36:09 IP:122.146.xxx.xxx 訂閱
可以使用此方法

[code cpp]
//確定路徑檔名正確
String s= "C:\\Program Files\\Microsoft Office\\Office10\\WINWORD.EXE";
DWORD rt;
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb=sizeof(si);
ZeroMemory(&pi, sizeof(pi));
if(!CreateProcess(NULL,s.c_str(), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
ShowMessage("CreateProcess failed!" IntToStr(GetLastError()));
}
do
{ //修改成do while迴圈來等待
rt = WaitForSingleObject(pi.hProcess, 0); //這裡不等待
Application->ProcessMessages();
Sleep(100);
}
while( rt == WAIT_TIMEOUT); //是否timeout?
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
ShowMessage("WinWord terminate!");[/code]


會開完一個檔後在接下去開
istillloving
高階會員


發表:33
回覆:182
積分:183
註冊:2008-10-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-02-28 07:41:02 IP:220.129.xxx.xxx 訂閱
大大:
抱歉我看不太懂你的程式碼呢 請問這個 " π " 是什麼語法

===================引 用 hank73317 文 章===================
可以使用此方法

[code cpp]
//確定路徑檔名正確
String s= "C:\\Program Files\\Microsoft Office\\Office10\\WINWORD.EXE";
DWORD rt;
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb=sizeof(si);
ZeroMemory(π, sizeof(pi));
if(!CreateProcess(NULL,s.c_str(), NULL, NULL, FALSE, 0, NULL, NULL, &si, π))
{
ShowMessage("CreateProcess failed!" IntToStr(GetLastError()));
}
do
{ //修改成do while迴圈來等待
rt = WaitForSingleObject(pi.hProcess, 0); //這裡不等待
Application->ProcessMessages();
Sleep(100);
}
while( rt == WAIT_TIMEOUT); //是否timeout?
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
ShowMessage("WinWord terminate!");[/code]


會開完一個檔後在接下去開
------
恩...
hank73317
一般會員


發表:20
回覆:47
積分:13
註冊:2008-12-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-02-28 20:33:32 IP:118.169.xxx.xxx 訂閱

[code cpp]
  1. //確定路徑檔名正確
  2. String s= "C:\\Program Files\\Microsoft Office\\Office10\\WINWORD.EXE";
  3. DWORD rt;
  4. STARTUPINFO si;
  5. PROCESS_INFORMATION pi;
  6. ZeroMemory(&si, sizeof(si));
  7. si.cb=sizeof(si);
  8. ZeroMemory(&pi, sizeof(pi));
  9. if(!CreateProcess(NULL,s.c_str(), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
  10. {
  11. ShowMessage("CreateProcess failed!" IntToStr(GetLastError()));
  12. }
  13. do
  14. { //修改成do while迴圈來等待
  15. rt = WaitForSingleObject(pi.hProcess, 0); //這裡不等待
  16. Application->ProcessMessages();
  17. Sleep(100);
  18. }
  19. while( rt == WAIT_TIMEOUT); //是否timeout?
  20. CloseHandle( pi.hProcess );
  21. CloseHandle( pi.hThread );
  22. ShowMessage("WinWord terminate!");

[/code]

是ZeroMemory(&pi, sizeof(pi)); ~~~~不是TT
istillloving
高階會員


發表:33
回覆:182
積分:183
註冊:2008-10-09

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-02-28 23:09:40 IP:61.223.xxx.xxx 訂閱
抱歉......實在是看不太懂你的程式碼

我再找看看資料
------
恩...
hank73317
一般會員


發表:20
回覆:47
積分:13
註冊:2008-12-12

發送簡訊給我
#8 引用回覆 回覆 發表時間:2009-02-28 23:12:34 IP:118.169.xxx.xxx 訂閱

[code cpp]
/確定路徑檔名正確
String s= "C:\\Program Files\\Microsoft Office\\Office10\\WINWORD.EXE";
DWORD rt;
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb=sizeof(si);
ZeroMemory(π, sizeof(pi));
if(!CreateProcess(NULL,s.c_str(), NULL, NULL, FALSE, 0, NULL, NULL, &si, π))
{
ShowMessage("CreateProcess failed!" IntToStr(GetLastError()));
}
do
{ //修改成do while迴圈來等待
rt = WaitForSingleObject(pi.hProcess, 0); //這裡不等待
Application->ProcessMessages();
Sleep(100);
}
while( rt == WAIT_TIMEOUT); //是否timeout?
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
ShowMessage("WinWord terminate!");
[/code]
系統時間:2024-11-23 3:34:49
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!