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

TxDBGRID反白目前的row

尚未結案
cd109
一般會員


發表:23
回覆:33
積分:11
註冊:2003-12-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-03 16:02:30 IP:203.66.xxx.xxx 未訂閱
請問各位先進: 我目前使用的是TxDBGRID我想要的功能是locate到焦點之後,將目前的row反白,請問各位先進有做過這個功能嗎. (類似新增資料以後將游標停在該row,然後把他反白區分出來) PS:TxDBGRID跟dbgrid很多功能都不同,真是......^^||| 謝謝
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-03 17:47:51 IP:202.39.xxx.xxx 未訂閱
不知道 TxDBGrid 是怎樣的, 以下是 TDBGrid highlight 當前 record 的範例:
type
  TMyCustomDBGrid = Class(TCustomDBGrid);    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  with TMyCustomDBGrid(Sender) do
    if DataLink.ActiveRecord = Row - 1 then
    Begin
     Canvas.Brush.Color := clYellow;
     Canvas.Font.Color := clBlack;
    End
    else
      Canvas.Brush.Color := clWhite;
  (Sender As TDBGrid).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
cd109
一般會員


發表:23
回覆:33
積分:11
註冊:2003-12-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-04 11:52:31 IP:203.66.xxx.xxx 未訂閱
謝謝版主回應,還是不太可行ㄝ,我想要的只是當我locate到的時候就留下記號而以
for i:=0 to leqpid.Count-1 do
 begin
  IF cdsMaster.Locate('E_ID;FB',VarArrayOf([lpid[i],lfb[i]]),[])=true then
   {留下記號的方式(改變該行的顏色)}
 end;
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-11-04 12:02:34 IP:202.39.xxx.xxx 未訂閱
一開始的時候設 DBGrid1.OnDrawColumnCell := nil; 有 Locate 到要的資料的話, 再設 DBGrid1.OnDrawColumnCell := DBGrid1DrawColumnCell; 不要的時候再設 DBGrid1.OnDrawColumnCell := nil; 再來就是 if DataLink.ActiveRecord = Row - 1 then 這行依您 Locate 的條件來做修改試試 發表人 - hagar 於 2004/11/04 12:06:18
cd109
一般會員


發表:23
回覆:33
積分:11
註冊:2003-12-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-11-05 00:08:31 IP:61.216.xxx.xxx 未訂閱
謝謝版主回應:   Tdxdbgrid和dbgrid有一些程度的不同,我的程度還不夠,一時還無法消化^^.     
procedure TMainForm.dxDBGrid1CustomDrawCell(Sender: TObject;
  ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
  AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean;
  var AText: String; var AColor: TColor; AFont: TFont;
  var AAlignment: TAlignment; var ADone: Boolean);
begin
 if ASelected then
  acolor:=clred;  //我使用這個可以讓目前的這一列(我點到的這一列)變成我想要的顏色
end;
可否再請教版主,如何讓兩者配合ㄋ
for i:=0 to leqpid.Count-1 do
 begin
  IF cdsMaster.Locate('E_ID;FB',VarArrayOf([lpid[i],lfb[i]]),[])=true then
   {留下記號的方式(改變該行的顏色)}
 end;
系統時間:2024-07-01 9:39:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!