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

游标固定

尚未結案
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-11-16 13:47:56 IP:65.49.xxx.xxx 訂閱
各位大大好:
小弟用delphi7连接sql2000中的northwind中的Customers
code如下,但是,为什么我每次点dbgrid中下面的recoder,然后按bitbtn后,被点选的recoder都会移到dbgrid的中间去呢?有没有办法能让它保持在原来位置吗?



unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, DB, ADODB, Grids, DBGrids;
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
DataSource1: TDataSource;
ADOTable1: TADOTable;
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
var
bm:Tbookmark;
begin
try
adotable1.DisableControls;
bm:=adotable1.GetBookmark;
adotable1.GotoBookmark(bm);
finally
adotable1.EnableControls;
end;
end;
end.







附加檔案:4b00e78c08dc3_2.JPG
編輯記錄
luowy651 重新編輯於 2009-11-16 13:48:28, 註解 無‧
luowy651 重新編輯於 2009-11-16 13:51:01, 註解 無‧
luowy651 重新編輯於 2009-11-16 13:51:55, 註解 無‧
luowy651 重新編輯於 2009-11-16 13:54:21, 註解 無‧
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-11-16 13:56:53 IP:65.49.xxx.xxx 訂閱
不怕大大们见笑,这个问题困惑了我很久,查了很多资讯也不得其解,恳请大大们帮助!
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-11-19 13:54:30 IP:65.49.xxx.xxx 訂閱
这题真的无解吗?
恳请大大们出手相助
小傑克
資深會員


發表:5
回覆:209
積分:357
註冊:2009-02-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-11-21 12:41:46 IP:59.112.xxx.xxx 訂閱
先指定
DBGrid1.Options := DBGrid1.Options [dgAlwaysShowSelection];

然後

try
adotable1.DisableControls;
//bm:=adotable1.GetBookmark;
//adotable1.GotoBookmark(bm);

finally
adotable1.EnableControls;
end;
end;











------
額有朝天骨,眼中有靈光
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-11-23 11:21:20 IP:65.49.xxx.xxx 訂閱
感谢小傑克大大的关注,不过好象不行啊,因为 //bm:=adotable1.GetBookmark;
//adotable1.GotoBookmark(bm);

finally
adotable1.EnableControls;
end;
end;











syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-11-24 08:08:46 IP:59.125.xxx.xxx 訂閱
幫你查了一下,的確,沒有很方便的方式
所以提供幾個方向:
1. 你可以試試看使用 sendmessage 的方式,來處理,畢竟,他還是一個 grid,但無奈沒有設定 visible first 的方式
自己想辦法找,正確的 message,例如,用 grid 用的 message 傳給他,或許,會有一樣反應,值得一試
2. 自己算位置,然後自己去移動 scroll bar (一樣用 message),將記錄變成第一個顯示的

因為元件,會將當前記錄放在中間左右,是預設行為,客製化會是需要的


===================引 用 luowy651 文 章===================
各位大大好:
小弟用delphi7连接sql2000中的northwind中的Customers
code如下,但是,为什么我每次点dbgrid中下面的recoder,然后按bitbtn后,被点选的recoder都会移到dbgrid的中间去呢?有没有办法能让它保持在原来位置吗?



unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, DB, ADODB, Grids, DBGrids;
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
DataSource1: TDataSource;
ADOTable1: TADOTable;
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
var
bm:Tbookmark;
begin
try
adotable1.DisableControls;
bm:=adotable1.GetBookmark;
adotable1.GotoBookmark(bm);
finally
adotable1.EnableControls;
end;
end;
end.







luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-11-24 09:30:45 IP:65.49.xxx.xxx 訂閱
感谢syntax大大的关注,不过,小弟初学,不是很看得懂

为什么我要这个功能呢?因为我在设计一个销售单,每次,当我想要在单据的下方插入一条recorder时,这条recorder却总是会从下面突然跳到中间去,这让人很不习惯.不知这里的大大们有没有这方面的解决方法

不知道那些商业化的软体是怎么做到这一点的,或许他们有专门的元件吧?

系統時間:2024-05-16 14:31:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!