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

對於bookmark如何中止gotobookmark?

尚未結案
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-08 20:49:18 IP:210.201.xxx.xxx 未訂閱
小弟在設gotobookmark時用freebookmark不能將之中斷 以下程式結果會跑到gotomark的資料而不是第一筆 想請教應如何中斷其gotobookmark設定 程式碼如下 procedure Tmainform.house_number_comboboxChange(Sender: TObject); var aaa:tbookmark; begin aaa:=datamodule2.live_member_data_managertable.GetBookmark; datamodule2.live_member_data_managertable.gotoBookmark(aaa); datamodule2.live_member_data_managertable.freeBookmark(aaa); datamodule2.live_member_data_managertable.first; datamodule2.live_member_data_managertable.gotobookmark; end; 「堅持」從洗馬桶做起 Aric
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-08 21:46:23 IP:218.16.xxx.xxx 未訂閱
不可能罷,你最後一行 datamodule2.live_member_data_managertable.gotobookmark; 不傳入 aaa 會說 not enough parameters 不能 compile 若傳入 aaa 會 Access Violation 的丫
cmj
高階會員


發表:15
回覆:242
積分:226
註冊:2002-06-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-08 22:27:56 IP:211.76.xxx.xxx 未訂閱
引言: 小弟在設gotobookmark時用freebookmark不能將之中斷 以下程式結果會跑到gotomark的資料而不是第一筆 想請教應如何中斷其gotobookmark設定 程式碼如下 procedure Tmainform.house_number_comboboxChange(Sender: TObject); var aaa:tbookmark; begin aaa:=datamodule2.live_member_data_managertable.GetBookmark; datamodule2.live_member_data_managertable.gotoBookmark(aaa); datamodule2.live_member_data_managertable.freeBookmark(aaa); datamodule2.live_member_data_managertable.first; datamodule2.live_member_data_managertable.gotobookmark; end; 「堅持」從洗馬桶做起 Aric
改為下列方式試試 procedure Tmainform.house_number_comboboxChange(Sender: TObject); var aaa:TBookmarkStr; begin aaa:=datamodule2.live_member_data_managertable.Bookmark; //保存bookmark datamodule2.live_member_data_managertable.first; datamodule2.live_member_data_managertable.Bookmark:=aaa; //還原bookmark end;
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-09 10:14:31 IP:210.201.xxx.xxx 未訂閱
引言: [quote] 小弟在設gotobookmark時用freebookmark不能將之中斷 以下程式結果會跑到gotomark的資料而不是第一筆 想請教應如何中斷其gotobookmark設定 程式碼如下 procedure Tmainform.house_number_comboboxChange(Sender: TObject); var aaa:tbookmark; begin aaa:=datamodule2.live_member_data_managertable.GetBookmark; datamodule2.live_member_data_managertable.gotoBookmark(aaa); datamodule2.live_member_data_managertable.freeBookmark(aaa); datamodule2.live_member_data_managertable.first; datamodule2.live_member_data_managertable.gotobookmark; [上面這行打錯了要加aaa] datamodule2.live_member_data_managertable.gotobookmark(aaa); end;
「堅持」從洗馬桶做起 Aric 發表人 - huangeider 於 2003/04/09 10:42:54 發表人 - huangeider 於 2003/04/09 10:43:40
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-09 10:50:50 IP:218.16.xxx.xxx 未訂閱
我試過運行時是會 Access Violation 的,因已 Free 了。
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-09 11:48:25 IP:210.201.xxx.xxx 未訂閱
引言: 我試過運行時是會 Access Violation 的,因已 Free 了。 但free沒用耶 gotobookmark還是會到bookmark 有方法取消bookmark?
「堅持」從洗馬桶做起 Aric
cmj
高階會員


發表:15
回覆:242
積分:226
註冊:2002-06-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-04-09 13:32:30 IP:211.76.xxx.xxx 未訂閱
引言: 小弟在設gotobookmark時用freebookmark不能將之中斷 以下程式結果會跑到gotomark的資料而不是第一筆 想請教應如何中斷其gotobookmark設定 程式碼如下 procedure Tmainform.house_number_comboboxChange(Sender: TObject); var aaa:tbookmark; begin aaa:=datamodule2.live_member_data_managertable.GetBookmark; datamodule2.live_member_data_managertable.gotoBookmark(aaa); datamodule2.live_member_data_managertable.freeBookmark(aaa); datamodule2.live_member_data_managertable.first; datamodule2.live_member_data_managertable.gotobookmark(aaa); end; 「堅持」從洗馬桶做起 Aric
就程式碼而言,上述程式應改為如下 procedure Tmainform.house_number_comboboxChange(Sender: TObject); var aaa:tbookmark; begin aaa:=datamodule2.live_member_data_managertable.GetBookmark; datamodule2.live_member_data_managertable.gotoBookmark(aaa); datamodule2.live_member_data_managertable.first; datamodule2.live_member_data_managertable.gotobookmark(aaa); datamodule2.live_member_data_managertable.freeBookmark(aaa); end;
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-04-09 17:18:51 IP:211.74.xxx.xxx 未訂閱
procedure Tmainform.house_number_comboboxChange(Sender: TObject); var aaa:tbookmark; begin aaa:=datamodule2.live_member_data_managertable.GetBookmark; datamodule2.live_member_data_managertable.gotoBookmark(aaa);//這一行應該可以拿掉 datamodule2.live_member_data_managertable.first; datamodule2.live_member_data_managertable.gotobookmark(aaa); datamodule2.live_member_data_managertable.freeBookmark(aaa); end; TRY TRY SEE
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-04-09 17:48:20 IP:218.16.xxx.xxx 未訂閱
哎呀 這個題目好像是 Free 不到 BookMark... 以我的理解,huangeider兄是說用了 FreeBookMark(aaa) 後 aaa 仍然沒被 Free 掉,再用 GotoBookMark(aaa) 仍然可去到 GetBookMark 時的記錄。不知我的理解對不對,因為一堆人來說這句放那裡那句不用,把我也弄亂了...我想,若改了就試不到以上的問題啦,不過可能是我理解錯誤也未可知。 重申一次,我用 TTable 試過了跟本沒 Free 不掉的問題,若 Free 了再使用 GotoBookMark 就會出現 Access Violation 。換句話說,執行你的程式段會在最後一行 gotoBookMark 時出錯。 我完全沒用 ADO 所以沒法用 ADOTable 測試,但我在 Google 找 "Delphi ADO FreeBookMark" 亦沒找到有任何人說過在 ADO FreeBookMark 有問題。 你若可以做一個簡單的範例程式 (最好用 DBDEMOS 數據庫或用 ClientDataSet 做簡單數據)上傳給大家試試。
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-04-09 19:38:42 IP:210.201.xxx.xxx 未訂閱
引言: 我也沒用過 ado 直接用ttable 做了我的問題範例在下面這裏 我的問題是 怎樣才能 break bookmark 還請幫幫忙 >< face="Verdana, Arial, Helvetica"> 「堅持」從洗馬桶做起 Aric
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-04-09 20:37:39 IP:218.16.xxx.xxx 未訂閱
真的是粉怪的,我發現有些 Table Free 後再 Goto 會出錯有些不會。但 Free 後再 Free 就必然會出錯,我再看 DataSet.FreeBookMark 的程式碼,也就是簡單的使用 FreeMem 來釋放 BookMark 的記憶體。 於是再試不使用 FreeBookMark 直接使用 FreeMem 結果也一樣。似乎是 Free 了佔用該記憶體但當該記憶體未被佔用時,還可讀到裡面的內容。 若要完全清除連結,可在 FreeBookMark 後 加一行 aaa := nil; 這樣 aaa 就不會指向那 Free 了的記憶體了
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-04-09 20:46:58 IP:210.201.xxx.xxx 未訂閱
引言: 原來如此 感恩啊 < face="Verdana, Arial, Helvetica"> 「堅持」從洗馬桶做起 Aric
系統時間:2024-03-29 12:42:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!