jpeg 的bug (瀏覽 及 新增 有問題) |
尚未結案
|
jasonchen613
初階會員 發表:67 回覆:75 積分:28 註冊:2003-03-25 發送簡訊給我 |
我好不容易用 TImage1 做出了可存讀jpeg檔 但是我做出來的程式有點問題
當我新增一筆資料(第3筆)時 我的TImage1的地方 會殘留著我瀏覽過的上一筆
資料內的圖片 如下圖所示 //照理說按新增後 TImage1的地方應該是空白的// 另外 我在新增一筆資料資料時 我並沒有對Timage1做載入圖片的動作
我按了儲存的botton後 我再瀏覽到(第3筆)時 它TImage1的地方也還是會
殘留著"上一筆資料瀏覽過的圖片" 以上就是我的問題 不知大家看的懂不懂 以下是我載入圖片botton內的程式碼:
procedure TForm1.Button2Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
begin
ADOTable1.edit;
ADOTable1.FieldByName('img_filename').AsString:=extractfilename(OpenPictureDialog1.filename);
ADOTable1.FieldByName('img_filesize').AsInteger:=filesizes(OpenPictureDialog1.filename);
TBlobField(ADOTable1.FieldByName('img_filedata')).loadfromfile(OpenPictureDialog1.filename);
ADOTable1AfterScroll(ADOTable1);
end;
end; 以下是在ADOTable1AfterScroll內的程式碼:
procedure TForm1.ADOTable1AfterScroll(DataSet: TDataSet);
begin
image1.Picture.Create;
if not ADOTable1.eof then
if trim(ADOTable1.FieldByName('img_filename').asstring)<>'' then
begin
TBlobField(ADOTable1.FieldByName('img_filedata')).savetofile(ApplicationPath+ADOTable1.FieldByName('img_filename').asstring);
Image1.Picture.LoadFromFile(ApplicationPath+ADOTable1.FieldByName('img_filename').asstring);
deletefile(ApplicationPath+ADOTable1.FieldByName('img_filename').asstring);
end;
end; 麻煩各位了 幫幫小弟吧 !!!
|
qoo1234
版主 發表:256 回覆:1167 積分:659 註冊:2003-02-24 發送簡訊給我 |
加入紅色部分
//新增按鈕 procedure TForm1.ToolButton5Click(Sender: TObject); begin CanEdit := True; ADOTable1.Insert; image1.Picture:=nil; end; ================= 下一筆按鈕..改成: procedure TForm1.ToolButton3Click(Sender: TObject); begin CanEdit := False; if ADOTable1.Eof then begin ToolButton3.Enabled:=false; ToolButton4.Enabled:=false; showmessage('已再資料庫的最後一筆處了'); end else begin ToolButton3.Enabled:=true; ADOTable1.Next; end; end; =================================== //最後一筆 procedure TForm1.ToolButton4Click(Sender: TObject); begin CanEdit := False; ADOTable1.Last; ToolButton4.Enabled:=false; end; ==================================== 其他: 第一筆、上一筆按鈕 要加入 ToolButton3.Enabled:=true; ToolButton4.Enabled:=true; 這兩行網海無涯,學無止境! 發表人 - qoo1234 於 2003/10/14 00:43:05 |
jasonchen613
初階會員 發表:67 回覆:75 積分:28 註冊:2003-03-25 發送簡訊給我 |
|
jasonchen613
初階會員 發表:67 回覆:75 積分:28 註冊:2003-03-25 發送簡訊給我 |
|
qoo1234
版主 發表:256 回覆:1167 積分:659 註冊:2003-02-24 發送簡訊給我 |
引言: 恩 還是有bug 耶 當瀏覽時 瀏覽到空的image時 還是會有殘影 另外 當我瀏覽或新增時 如果操作不當(如在新增一筆資料時 突然 按了上一筆鍵) 它的下一筆功能鍵就會喪失耶 ??? ======================= 第一筆、上一筆、最後一筆,都加入: if ADOTable1.FieldByName('img_filename').asstring='' then image1.Picture:=nil; ======================= 下一筆,多加了紅色部分: procedure TForm1.ToolButton3Click(Sender: TObject); begin CanEdit := False; if ADOTable1.Eof then begin ToolButton3.Enabled:=false; ToolButton4.Enabled:=false; showmessage('已再資料庫的最後一筆處了'); end else begin ToolButton3.Enabled:=true; ADOTable1.Next; if ADOTable1.FieldByName('img_filename').asstring='' then image1.Picture:=nil; end; end;網海無涯,學無止境! 發表人 - qoo1234 於 2003/10/14 00:57:19 |
qoo1234
版主 發表:256 回覆:1167 積分:659 註冊:2003-02-24 發送簡訊給我 |
引言:另外 當我瀏覽或新增時 如果操作不當(如在新增一筆資料時 突然 按了上一筆鍵) 它的下一筆功能鍵就會喪失耶 ???新增、修改按鈕 加入 ToolButton1.Enabled:=False; ToolButton2.Enabled:=False; ToolButton3.Enabled:=False; ToolButton4.Enabled:=False; 儲存、取消按鈕 加入 ToolButton1.Enabled:=true; ToolButton2.Enabled:=true; ToolButton3.Enabled:=true; ToolButton4.Enabled:=true; 網海無涯,學無止境! |
jasonchen613
初階會員 發表:67 回覆:75 積分:28 註冊:2003-03-25 發送簡訊給我 |
|
qoo1234
版主 發表:256 回覆:1167 積分:659 註冊:2003-02-24 發送簡訊給我 |
引言: 還是有一.......bug 當我按下一筆時 瀏覽到"空"圖像時 是都沒問題 但如果由最後一筆開始 按上一筆 瀏覽到第一筆時 bug(殘影)又出現了 另外 如果一開始 直接按最後一筆的話 要按2下最後一筆 殘影才消失 PS(我最後一比放了一個"空"圖像 中間<--第三筆 也放了一個 "空"圖像 ) Sorry 我是不是太囉唆啦! 抱歉!!!! >>< face="Verdana, Arial, Helvetica"> 檢查以下按鈕是否都已加入,下列資料: ======================= 第一筆、上一筆、最後一筆,都加入: if ADOTable1.FieldByName('img_filename').asstring='' then image1.Picture:=nil; ======================= 網海無涯,學無止境! 發表人 - qoo1234 於 2003/10/14 01:19:10 |
qoo1234
版主 發表:256 回覆:1167 積分:659 註冊:2003-02-24 發送簡訊給我 |
放的位置,檢查是否都一樣:
//第一位 procedure TForm1.ToolButton1Click(Sender: TObject); begin CanEdit := False; ADOTable1.First; ToolButton3.Enabled:=true; ToolButton4.Enabled:=true; if ADOTable1.FieldByName('img_filename').asstring='' then image1.Picture:=nil; end; //上一位 procedure TForm1.ToolButton2Click(Sender: TObject); begin CanEdit := False; ADOTable1.Prior; if ADOTable1.Bof then showmessage('已再資料庫的第一筆處了'); ToolButton3.Enabled:=true; ToolButton4.Enabled:=true; if ADOTable1.FieldByName('img_filename').asstring='' then image1.Picture:=nil; end; //下一位 procedure TForm1.ToolButton3Click(Sender: TObject); begin CanEdit := False; ADOTable1.Next; if ADOTable1.Eof then begin ToolButton3.Enabled:=false; ToolButton4.Enabled:=false; showmessage('已再資料庫的最後一筆處了'); end else begin ToolButton3.Enabled:=true; if ADOTable1.FieldByName('img_filename').asstring='' then image1.Picture:=nil; end; end; //最後一位 procedure TForm1.ToolButton4Click(Sender: TObject); begin CanEdit := False; ADOTable1.Last; ToolButton4.Enabled:=false; if ADOTable1.FieldByName('img_filename').asstring='' then image1.Picture:=nil; end;網海無涯,學無止境! 發表人 - qoo1234 於 2003/10/14 01:29:01 |
jasonchen613
初階會員 發表:67 回覆:75 積分:28 註冊:2003-03-25 發送簡訊給我 |
我都加入了 但是我把它加入到第一行 有差嗎?
如下:
procedure TForm1.ToolButton1Click(Sender: TObject);
begin
if ADOTable1.FieldByName('img_filename').asstring='' then
image1.Picture:=nil;
CanEdit := False;
ADOTable1.First; //第一筆
end; 另外 我的最後一筆資料刪除不了耶???
其他筆都能刪除 唯讀最後一筆
|
qoo1234
版主 發表:256 回覆:1167 積分:659 註冊:2003-02-24 發送簡訊給我 |
引言: 我都加入了 但是我把它加入到第一行 有差嗎?//請跟我一樣,OK!...我剛剛,有更正下一位按鈕資料喔 如下: procedure TForm1.ToolButton1Click(Sender: TObject); begin if ADOTable1.FieldByName('img_filename').asstring='' then image1.Picture:=nil; CanEdit := False; ADOTable1.First; //第一筆 end;=========================================================== 另外 我的最後一筆資料刪除不了耶??? 其他筆都能刪除 唯讀最後一筆 //刪除按鈕 procedure TForm1.ToolButton6Click(Sender: TObject); begin IF Not ADOTable1.EOF Then 你的方式為如果不是最後一筆則刪除 Begin IF Application.MessageBox('確定要刪除這筆資料嗎?','注意', MB_YESNO MB_ICONQuestion)=IDYES Then ADOTable1.Delete; IF ADOTable1.EOF Then showmessage('沒有資料了'); END; end;所以最後一筆你刪不掉~ < src="http://delphi.ktop.com.tw/download/upload\33223_qoo.gif">網海無涯,學無止境! 發表人 - qoo1234 於 2003/10/14 01:36:55 |
qoo1234
版主 發表:256 回覆:1167 積分:659 註冊:2003-02-24 發送簡訊給我 |
|
jasonchen613
初階會員 發表:67 回覆:75 積分:28 註冊:2003-03-25 發送簡訊給我 |
|
jasonchen613
初階會員 發表:67 回覆:75 積分:28 註冊:2003-03-25 發送簡訊給我 |
|
qoo1234
版主 發表:256 回覆:1167 積分:659 註冊:2003-02-24 發送簡訊給我 |
引言: Sorry qoo1234大大 當我再測試程式時 發現了我的jpeg還有一個bug耶 如果我最後一筆資料是有存圖片的話 從第一筆直接跳到最後一筆時(也就是按最後一位botton鍵時) 它 圖片的地方會顯示第一筆的圖 而非它自己欄位的圖 但是 我如果按照順序 按下一筆 按按按 按到最後一筆時 最後一筆的相片欄位就會顯現自己的圖片而非上一張的圖 另外 如果最後一筆的相片欄位是"空"的話 它就會正常 (直接按最後一筆時 不會有第一筆的圖像殘影 而是空的) 因為你的程式,寫法有忽略以下說明,所以不會載入最後一筆資料的圖檔: procedure TForm1.ADOTable1AfterScroll(DataSet: TDataSet); begin image1.Picture.Create; if not ADOTable1.eof then //跟之前一樣,你寫錯了 if trim(ADOTable1.FieldByName('img_filename').asstring)<>'' then begin TBlobField(ADOTable1.FieldByName('img_filedata')).savetofile(ApplicationPath ADOTable1.FieldByName('img_filename').asstring); Image1.Picture.LoadFromFile(ApplicationPath ADOTable1.FieldByName('img_filename').asstring); deletefile(ApplicationPath ADOTable1.FieldByName('img_filename').asstring); end; end;網海無涯,學無止境! |
jasonchen613
初階會員 發表:67 回覆:75 積分:28 註冊:2003-03-25 發送簡訊給我 |
|
jasonchen613
初階會員 發表:67 回覆:75 積分:28 註冊:2003-03-25 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |