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

如何變更vb語法成delphi7語法 DataGrid 欄位資料選取

答題得分者是:cashxin2002
jt25
一般會員


發表:14
回覆:30
積分:8
註冊:2003-08-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-25 11:57:57 IP:61.59.xxx.xxx 未訂閱
請問各位前輩: vb DataGrid 欄位資料選取語法 如何轉換成 Delphi7 語法 TextCopy.Text = DataGrid1.Columns(0) DataGrid1.Columns(3) DataGrid1.Columns(4) DataGrid1.Columns(5)
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-25 12:50:37 IP:63.84.xxx.xxx 未訂閱
您好﹗    TextCopy.Text := DBGrid1.Columns[0].Field.AsString + DBGrid1.Columns[3].Field.AsString + DBGrid1.Columns[4].Field.AsString + DBGrid1.Columns[5].Field.AsString    參考看看﹗    ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
jt25
一般會員


發表:14
回覆:30
積分:8
註冊:2003-08-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-25 13:42:20 IP:61.59.xxx.xxx 未訂閱
可以了 謝謝! 那可以在選取上下筆資料時 TextCopy.Text 內容一起改變嗎?
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-25 14:13:53 IP:63.84.xxx.xxx 未訂閱
引言: 可以了 謝謝! 那可以在選取上下筆資料時 TextCopy.Text 內容一起改變嗎?
您好﹗ 將此程式碼寫在DataSource元件的OnDataChange事件中就好啦﹐所有資料錄的移動事件都會触發這段程式碼﹒ 參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
jt25
一般會員


發表:14
回覆:30
積分:8
註冊:2003-08-19

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-08-25 14:35:57 IP:61.59.xxx.xxx 未訂閱
感謝前輩指點 Thanks!
jt25
一般會員


發表:14
回覆:30
積分:8
註冊:2003-08-19

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-08-25 16:47:26 IP:61.59.xxx.xxx 未訂閱
前輩 再請教相關問題 如果要讓 DBGrid1.Columns[0] 欄位中資料 (例如:小於920825) 秀藍色字那可以辦到嗎?
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-08-25 17:32:26 IP:63.84.xxx.xxx 未訂閱
您好﹗
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if DBGrid1.Columns[0].Field.AsString > '920825' then
  //若為數值欄位則將藍色處改為﹕AsInteger > 920825
    begin
      DBGrid1.Canvas.Font.Color := clBlue;
      DBGrid1.DefaultDrawColumncell(Rect,DataCol,Column,State);
    end;
end;
參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟 發表人 - cashxin2002 於 2003/08/25 17:38:37
------
忻晟
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-08-25 17:44:25 IP:63.84.xxx.xxx 未訂閱
您好﹗    上篇的程式碼﹕當Columns[0]欄位值中的值大于920825時﹐其整條資料錄的字體都會變成藍色﹐如果只想變Columns[0]這一個欄位的字體顏色時﹐可寫成如下﹕
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if DBGrid1.Columns[0].Field.AsString > '920825' then
  //若為數值欄位則將藍色處改為﹕AsInteger > 920825
    begin
      DBGrid1.Column[0].Font.Color := clBlue;
      DBGrid1.DefaultDrawColumncell(Rect,DataCol,Column,State);
    end;
end;
參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟 發表人 - cashxin2002 於 2003/08/25 17:47:39
------
忻晟
jt25
一般會員


發表:14
回覆:30
積分:8
註冊:2003-08-19

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-08-26 09:13:26 IP:61.59.xxx.xxx 未訂閱
求教 為何前輩提供程式碼為何不行,是不是小弟那裡設錯 procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if DBGrid1.Columns[0].Field.AsString > ''920825'' then begin DBGridSelect.Column[0].Font.Color := clBlue; DBGridSelect.DefaultDrawColumncell(Rect,DataCol,Column,State); end; end; 錯誤訊息: [Error] Main1.pas(406): Undeclared identifier: 'DBGrid1DrawColumnCell' [Error] FormMain.pas(406): ';' expected but '(' found [Error] FormMain.pas(406): '=' expected but ';' found [Error] FormMain.pas(406): '=' expected but ';' found [Error] FormMain.pas(406): '=' expected but ';' found [Error] FormMain.pas(406): '=' expected but ')' found [Error] FormMain.pas(408): Undeclared identifier: 'DBGrid1' [Error] FormMain.pas(408): 'THEN' expected but identifier 'Columns' found [Error] FormMain.pas(411): Missing operator or semicolon [Error] FormMain.pas(411): Missing operator or semicolon [Error] FormMain.pas(413): Missing operator or semicolon [Fatal Error] Main.dpr(5): Could not compile used unit 'Main1.pas'
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-08-26 09:39:10 IP:63.84.xxx.xxx 未訂閱
Hi.    
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;DataCol: Integer; Column: TColumn; State: TGridDrawState);
if ADOQuery1.FieldByName('YourFieldName').AsString <= '920825' then
//若為數值欄位則將藍色處改為﹕AsInteger < 920825
  begin
    Canvas.Font.Color := clBlue;
    DefaultDrawColumnCell(Rect, DataCol, Column, State);
  end;
Please try it again. <><>===================== 努力,相信會獲得美麗! 忻晟 發表人 -
------
忻晟
jt25
一般會員


發表:14
回覆:30
積分:8
註冊:2003-08-19

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-08-26 10:05:13 IP:61.59.xxx.xxx 未訂閱
還是不行 因為根本沒有 TForm1.DBGrid1DrawColumnCell    < >< >
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-08-26 11:01:25 IP:63.84.xxx.xxx 未訂閱
引言: 還是不行 因為根本沒有 TForm1.DBGrid1DrawColumnCell < >< >
您好﹗ 不好意思﹐電腦出了些問題﹐所以回覆慢了﹗ 這個事件是DBGrid的onDrawColumnCell﹐所以并不是Form的東東喔 < class="code">procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;DataCol: Integer; Column: TColumn; State: TGridDrawState); if ADOQuery1.FieldByName('YourFieldName').AsString <= '920825' then //若為數值欄位則將藍色處改為﹕AsInteger < 920825 begin DBGrid1.Canvas.Font.Color := clBlue; DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); end; 參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟 發表人 - cashxin2002 於 2003/08/26 11:03:47
------
忻晟
jt25
一般會員


發表:14
回覆:30
積分:8
註冊:2003-08-19

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-08-26 16:21:16 IP:61.59.xxx.xxx 未訂閱
還是不行 到底要如何設屬性才好
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#14 引用回覆 回覆 發表時間:2003-08-26 16:48:21 IP:63.84.xxx.xxx 未訂閱
您好﹗    小弟剛才測試了這段程式﹐可以根据條件正常顯示出顏色的變化﹒    小弟將這段再解釋一下﹐參考看看﹕
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;DataCol: Integer; Column: TColumn; State: TGridDrawState);
//首先﹐這段Code是寫在DBGrid1元件的OnDrawColumnCell(重繪)事件中﹒
if ADOQuery1.FieldByName('YourFieldName').AsString <= '920825' then
//設定判斷條件﹕如果ADOQuery1中的欄位(請用您作以條件之欄位名來代替
//YourFieldName)大于'920825'﹐此處的假設的欄位為字串形態﹐若此欄位
//為數值欄位則將藍色處改為﹕AsInteger < 920825
  begin
    DBGrid1.Canvas.Font.Color := clBlue;
    //符合以上條件的話﹐就將其字體顏色設為藍色
    DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    //進行重繪
  end;
不知這樣解釋是否清楚﹐如果還有問題﹐歡迎提之﹒ ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
jt25
一般會員


發表:14
回覆:30
積分:8
註冊:2003-08-19

發送簡訊給我
#15 引用回覆 回覆 發表時間:2003-08-29 09:32:54 IP:61.59.xxx.xxx 未訂閱
行了 ! 原來是type 要加入宣告 Thanks!....
系統時間:2024-05-11 18:20:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!