請教DBGrid元件顯示的標題問題,拉下方ScrollBar造成標題不見 |
尚未結案
|
Fittech
一般會員 發表:14 回覆:1 積分:3 註冊:2005-08-08 發送簡訊給我 |
程式碼如下
void __fastcall TForm1::DBGrid1DrawColumnCell(TObject *Sender,
const TRect &Rect, int DataCol, TColumn *Column,
TGridDrawState State)
{
TCanvas *Canvas = DBGrid1->Canvas;
Canvas->Font->Color = clRed;
Canvas->Font->Size = 8;
String S1, S2; switch(Column->Index)
{
case 2:
Column->Title->Caption = "";
S1 = "5";
S2 = "6";
Canvas->TextOut(Rect.Left+2, 2, S1);
Canvas->TextOut(Rect.Left+2, 16, S2);
break;
}
} 問題如下圖
拉下方ScrollBar,造成第3張圖標題5不見,請問該如何處理?謝謝!
|
kevinguo
初階會員 發表:1 回覆:31 積分:31 註冊:2002-11-20 發送簡訊給我 |
|
Fittech
一般會員 發表:14 回覆:1 積分:3 註冊:2005-08-08 發送簡訊給我 |
|
kevinguo
初階會員 發表:1 回覆:31 積分:31 註冊:2002-11-20 發送簡訊給我 |
Fittech: 我這台電腦沒灌BCB, 我提供delphi程式碼, 語法應該差不多, 參考看看 < class="code"> type
TDBGrid = class(DBGrids.TDBGrid)
protected
procedure WMHSCROLL(var msg: TWMSCROLL); message WM_HSCROLL;
end;
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
Table1: TTable;
DataSource1: TDataSource;
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
end; var
Form1: TForm1; implementation {$R *.dfm} { TDBGrid } procedure TDBGrid.WMHSCROLL(var msg: TWMSCROLL);
begin
inherited;
form1.DBGrid1.Refresh; //或是改變一下Columns的寬度也可以 :)
//form1.DBGrid1.Columns[2].Width:=form1.DBGrid1.Columns[2].Width 1;
//form1.DBGrid1.Columns[2].Width:=form1.DBGrid1.Columns[2].Width-1;
end; //這邊是照抄你的程式碼
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var S1, S2:string;
Canvas:TCanvas;
begin
Canvas := DBGrid1.Canvas;
Canvas.Font.Color := clRed;
Canvas.Font.Size := 8; if Column.Index=2 then
begin
S1 := '5';
S2 := '6';
Canvas.TextOut(Rect.Left 2, 2, S1);
Canvas.TextOut(Rect.Left 2, 16, S2);
end; end;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |