StringGrid上色 |
答題得分者是:Stallion
|
7-11
一般會員 發表:53 回覆:33 積分:16 註冊:2005-12-05 發送簡訊給我 |
請問各位..我用以下方法將StringGrid上色並輸出文字...但輸出的文字都是靠左...我要如何讓輸出的文字靠右排列?
<textarea class="delphi" rows="10" cols="60" name="code">
procedure TForm_Dayclss.DataGridDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
With Sender as TAdvStringGrid do
Begin
if ( ARow > 0 ) and ( ACol > 0 ) then //注意ARow及Acol從0開始
Begin
if ( ACol = 1 ) or (ACol = 5) Then
Begin
Canvas.Brush.Color := $FFCCCC;
End; if ( ACol = 2 ) or (ACol = 6) Then
Begin
Canvas.Brush.Color := $99FF99;
End; if ( ACol = 3 ) or (ACol = 7) Then
Begin
Canvas.Brush.Color := $FFCC99;
End; if ( ACol = 4 ) or (ACol = 8) Then
Begin
Canvas.Brush.Color := $99FFFF;
End; if ( ACol = 9 ) or (ACol = 10) Then
Begin
Canvas.Brush.Color := $CCFF99;
End; Canvas.Font.Color := clBlack;
Canvas.FillRect(Rect);
Canvas.TextOut(Rect.Left 5, Rect.Top, cells[ACol, ARow]);
End;
End;
end; </textarea>
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
加紅色的部份試試:
<textarea class="delphi" rows="10" cols="60" name="code"> procedure TForm_Dayclss.DataGridDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var iTxtLen: TextLength; begin With Sender as TAdvStringGrid do Begin if ( ARow > 0 ) and ( ACol > 0 ) then //注意ARow及Acol從0開始 Begin // ... iTxtLen := Canvas.TextLength(Cells[ACol, ARow]); Canvas.TextOut(Rect.Right - iTxtLen - 5, Rect.Top, cells[ACol, ARow]); End; End; end;</textarea> |
7-11
一般會員 發表:53 回覆:33 積分:16 註冊:2005-12-05 發送簡訊給我 |
請教hagar兄~為何我加入紅色部分後出現 Undeclared identifier: 'TextLength' ===================引 用 hagar 文 章=================== 加紅色的部份試試: procedure TForm_Dayclss.DataGridDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var ? iTxtLen: TextLength; begin ????With Sender as TAdvStringGrid do ????Begin ????? if ( ARow > 0 ) and ( ACol > 0 ) then? //注意ARow及Acol從0開始 ????????Begin ????????? // ... ????????? iTxtLen :=?Canvas.TextLength(Cells[ACol, ARow]); ????????? Canvas.TextOut(Rect.Right - iTxtLen - 5, Rect.Top, cells[ACol, ARow]); ????????End; ????End; end; ? |
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
<textarea cols="60" rows="10" class="delphi" name="code">
procedure TForm_Dayclss.DataGridDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
var
iTxtLen: integer;
begin
With Sender as TAdvStringGrid do
begin
if ( ARow > 0 ) and ( ACol > 0 ) then
begin
// ...
iTxtLen := Canvas.TextWidth(Cells[ACol, ARow]);
Canvas.TextOut(Rect.Right - iTxtLen - 5, Rect.Top, cells[ACol, ARow]);
end;
end;
end; </textarea>
//還有你所有提出過的問題都沒結案,請儘速結案,不然版大不知道要從啥時候開始扣分了! |
7-11
一般會員 發表:53 回覆:33 積分:16 註冊:2005-12-05 發送簡訊給我 |
謝謝謝謝
===================引 用 Stallion 文 章=================== <textarea class="delphi" rows="10" cols="60" name="code"> procedure TForm_Dayclss.DataGridDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var iTxtLen: integer; begin With Sender as TAdvStringGrid do begin if ( ARow > 0 ) and ( ACol > 0 ) then begin ???? // ... ???? iTxtLen := Canvas.TextWidth(Cells[ACol, ARow]); ????Canvas.TextOut(Rect.Right - iTxtLen - 5, Rect.Top, cells[ACol, ARow]); end; end; end; </textarea> //還有你所有提出過的問題都沒結案,請儘速結案,不然版大不知道要從啥時候開始扣分了! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |