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

Dbgrid 框線問題

答題得分者是:hagar
miguel
一般會員


發表:26
回覆:20
積分:9
註冊:2002-03-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-24 10:24:37 IP:61.221.xxx.xxx 未訂閱
各位 高手    DBGRID 可以 畫成 如下圖嗎 ?? (每格 3 欄加粗框線)   < >< >< > 麻煩 各位 高手 解答 !!< >
hagar
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-09-24 10:50:52 IP:202.39.xxx.xxx 未訂閱
自行判斷 Column 或 DataCol 參數的值, 決定那格要加粗框線.
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var c: TCanvas;
begin
  c := DBGrid1.Canvas;
  c.Pen.Color := clBlack; // 指定畫筆的顏色
  c.Pen.Width := 4; // 指定畫筆的粗細
  // 畫線的起點(Y 的參數的算法是為了能畫到 Title 那一列)
  c.MoveTo(Rect.Right -1, Rect.Top - (Rect.Bottom - Rect.Top) -1);
  // 畫線的終點
  c.LineTo(Rect.Right -1, Rect.Bottom);
end;
--- 歡迎光臨 KTop 研究院 發表人 -
miguel
一般會員


發表:26
回覆:20
積分:9
註冊:2002-03-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-09-24 11:53:08 IP:61.221.xxx.xxx 未訂閱
感謝 hagar 兄 的 回覆 可是 我想 每隔 3欄 畫 粗線耶!!    c := DBGrid1.Canvas; 好像 把 整個 GRID 都畫滿了  < >< >
hagar
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-09-24 11:59:39 IP:202.39.xxx.xxx 未訂閱
自行判斷 DataCol 的參數, 例:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var c: TCanvas;
begin
  if (DataCol mod 3 = 1) and (DataCol > 1) then begin
    c := DBGrid1.Canvas;
    c.Pen.Color := clBlack; // 指定畫筆的顏色
    c.Pen.Width := 4; // 指定畫筆的粗細
    // 畫線的起點(Y 的參數的算法是為了能畫到 Title 那一列)
    c.MoveTo(Rect.Right -1, Rect.Top - (Rect.Bottom - Rect.Top) -1);
    // 畫線的終點
    c.LineTo(Rect.Right -1, Rect.Bottom);
  end;
end;
--- 歡迎光臨 KTop 研究院
miguel
一般會員


發表:26
回覆:20
積分:9
註冊:2002-03-30

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-09-24 12:07:49 IP:61.221.xxx.xxx 未訂閱
感謝 hagar 兄 ,這麼 快的回覆!! 解決了 呵呵!! < >< >
系統時間:2024-07-01 19:27:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!