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

請教DBGrid元件顯示的標題問題

尚未結案
cashxin2002
版主


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-12 14:14:06 IP:63.84.xxx.xxx 未訂閱
請教各位前輩﹒    DBGrid元件通過DataSource元件正常連接上資料表后﹐該如何處理使DBGrid的標題(Title)可顯示兩行﹐甚至多于兩行﹖ 或者說資料表欄位中某欄位的名稱很長﹐希望在DBGrid元件做顯示時﹐能夠將欄位名顯示為兩行或者更多行﹐該如何處理﹖    謝謝﹗    ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
hagar
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-12 15:40:23 IP:202.39.xxx.xxx 未訂閱
參考: http://www.swissdelphicenter.ch/en/showcode.php?id=1653
type 
  TAccessDBGrid = class(TDBGrid);     procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; 
  const Rect: TRect; DataCol: Integer; Column: TColumn; 
  State: TGridDrawState); 
var 
  S1, S2: String; 
begin 
  with TAccessDBGrid(DBGrid1) do 
  begin 
    // Increase title height 
    // Titelhöhe vergrössern 
    RowHeights[0] := 32;         Canvas.Brush.Style := bsClear;         // Column Titles 
    // Spalten Titel setzen 
    case Column.Index of 
    0: begin 
         Column.Title.Caption := ''; 
         S1 := 'Row 1'; 
         S2 := 'Row 2'; 
       end; 
    1: begin 
         Column.Title.Caption := ''; 
         S1 := 'Row 1'; 
         S2 := 'Row 2'; 
       end; 
    end; 
    // write title: 
    // Titel ausgeben: 
    Canvas.TextOut(Rect.Left 2, 2, S1); 
    Canvas.TextOut(Rect.Left 2, 16, S2); 
  end; 
end; 
--- 歡迎光臨 KTop 研究院
cashxin2002
版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-14 22:05:41 IP:63.84.xxx.xxx 未訂閱
感謝hagar版主大大!    ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
guohua_fu
一般會員


發表:44
回覆:50
積分:18
註冊:2003-06-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-15 09:28:08 IP:211.96.xxx.xxx 未訂閱
hagar版主: 如果我要在同等前題下實現附檔的顯示(Title),應該如何來寫呢? 謝謝!    jacky jacky
------
jacky
hagar
版主


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-15 17:13:19 IP:202.39.xxx.xxx 未訂閱
Title 劃線部份參考紅色部份的碼, 而文字就參考原來的部份做:
type 
  TAccessDBGrid = class(TDBGrid);     procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; 
  const Rect: TRect; DataCol: Integer; Column: TColumn; 
  State: TGridDrawState); 
var 
  S1, S2: String; 
begin 
  with TAccessDBGrid(DBGrid1) do 
  begin 
    RowHeights[0] := 32; 
    case Column.Index of 
    0: begin 
         Column.Title.Caption := ''; 
         S1 := 'Row 1'; 
         S2 := 'Row 2'; 
       end; 
    1: begin 
         Column.Title.Caption := ''; 
         S1 := 'Row 1'; 
         S2 := 'Row 2'; 
       end; 
    end; 
    Canvas.Brush.Style := bsClear; 
    Canvas.TextOut(Rect.Left 2, 2, S1); 
    Canvas.TextOut(Rect.Left 2, 16, S2); 
  end; 

  with DBGrid1 do
    if Rect.Top = 33 then begin // 只劃 Title 這一 row, 33 值是因為在上面指定第一 row 的高度為 32
      Canvas.Pen.Color := clBlack; // 指定畫筆的顏色
      Canvas.Pen.Width := 1; // 指定畫筆的粗細          // Title 畫分為上下兩格的那條橫線
      Canvas.MoveTo(Rect.Left, 16); // 畫線的起點
      Canvas.LineTo(Rect.Right, 16); // 畫線的終點          // Title 下半部畫分為左右兩格的那條直線
      Canvas.MoveTo(Rect.Left   (Rect.Right - Rect.Left) div 2, Rect.Top div 2);
      Canvas.LineTo(Rect.Left   (Rect.Right - Rect.Left) div 2, Rect.Top);
    end;
end; 
--- 歡迎光臨 KTop 研究院 發表人 -
chfamy
中階會員


發表:87
回覆:161
積分:54
註冊:2002-05-03

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-10-15 22:07:56 IP:61.219.xxx.xxx 未訂閱
要用InfoPower方達成,絕無廣告嫌疑,因為我是用InfoPower4000, 全部欄位型態都可,還可用Master-Detail顯示資料(我沒用),詳細 請查該公司網站http://www.woll2woll.com/只是便宜.
guohua_fu
一般會員


發表:44
回覆:50
積分:18
註冊:2003-06-19

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-10-16 09:18:43 IP:211.96.xxx.xxx 未訂閱
可以免費使用嗎? 我下載完並安裝好了之後應該如何使用呢?能否請樓上這位仁兄指點一下, 在下十萬分的感謝! jacky 發表人 - guohua_fu 於 2003/10/16 09:25:42
------
jacky
chfamy
中階會員


發表:87
回覆:161
積分:54
註冊:2002-05-03

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-10-16 09:21:41 IP:61.219.xxx.xxx 未訂閱
站內有看過有人post過用Search看看.
hagar
版主


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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-10-16 09:54:59 IP:202.39.xxx.xxx 未訂閱
InfoPower 不是免費的, 不過也試用版 功能齊全, 但只能在 IDE 底下 run http://www.woll2woll.com/downloadinfo.html    --- 歡迎光臨 KTop 研究院
hornacek
一般會員


發表:29
回覆:76
積分:21
註冊:2004-02-02

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-03-29 09:27:06 IP:210.243.xxx.xxx 未訂閱
引言: 要用InfoPower方達成,絕無廣告嫌疑,因為我是用InfoPower4000, 全部欄位型態都可,還可用Master-Detail顯示資料(我沒用),詳細 請查該公司網站http://www.woll2woll.com/只是便宜. < face="Verdana, Arial, Helvetica"> 請問一下,這個把title分成兩半要如何用程式碼完成? 我也是使用infopower,因為我要動態改變表格, 但不知道要如何做?請問有範例可以參考嗎?謝謝! 發表人 -
系統時間:2024-05-20 19:27:26
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!