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

想要在 Tlabel 中顯示數字,但希望全部要右靠,要如何做?

 
HANGTEN
一般會員


發表:12
回覆:15
積分:5
註冊:2002-07-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-11-20 19:02:54 IP:203.67.xxx.xxx 未訂閱
如題,謝謝!
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-11-20 19:28:41 IP:203.217.xxx.xxx 未訂閱
alginment設為taRightJustify就好了 [NOTE]你應該選[問題]不是[分享] 發表人 - ccchen 於 2002/11/20 19:30:02
HANGTEN
一般會員


發表:12
回覆:15
積分:5
註冊:2002-07-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-11-20 20:51:00 IP:203.67.xxx.xxx 未訂閱
那如果是TstringGrid中的欄位? 我使用stringgrid來顯示數字用? 新手上路,感激不盡!
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-11-21 09:42:41 IP:210.58.xxx.xxx 未訂閱
引言: 那如果是TstringGrid中的欄位? 我使用stringgrid來顯示數字用? 新手上路,感激不盡!
Hi try this 在StringGrid的OnDrawCell Event裡

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var Left : integer;
begin
   Left := Rect.Right - StringGrid1.Canvas.TextWidth(StringGrid1.Cells[ACol, ARow])-2;
   StringGrid1.Canvas.TextRect(Rect, Left, Rect.Top 1,StringGrid1.Cells[ACol, ARow]);
end;
我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
Paicaso
中階會員


發表:140
回覆:124
積分:52
註冊:2002-09-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-10 01:24:45 IP:61.59.xxx.xxx 未訂閱
這個結果是可以向右對齊 可不可以請Miles兄解釋該涵義,我並不是很了解 Left := Rect.Right - StringGrid1.Canvas.TextWidth(StringGrid1.Cells[ACol, ARow])-2; StringGrid1.Canvas.TextRect(Rect, Left, Rect.Top 1,StringGrid1.Cells[ACol, ARow]); 因為我想指定某欄位之對齊方式 謝謝
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-10-15 16:07:53 IP:218.160.xxx.xxx 未訂閱
Hello Paicaso 抱歉最近比較忙, 沒注意到:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
先計算我們的輸出(文字)要從哪裡開始填入, 
舉例來說若那個Cell長200點, 我們的文字共長150點, 則會從第50點開始填入
   Left := Rect.Right - StringGrid1.Canvas.TextWidth(StringGrid1.Cells[ACol, ARow])-2;
填入我們的字串
   StringGrid1.Canvas.TextRect(Rect, Left, Rect.Top 1,StringGrid1.Cells[ACol, ARow]);
end;
若您要想直接指定某行或某列, 可以善用ACol, ARow這兩個變數去判斷, 例如:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var Left : integer;
begin
   if ACol = 3 then begin
      Left := Rect.Right - StringGrid1.Canvas.TextWidth(StringGrid1.Cells[ACol, ARow])-2;
      StringGrid1.Canvas.TextRect(Rect, Left, Rect.Top 1,StringGrid1.Cells[ACol, ARow]);
   end;
end;
Good Luck 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
系統時間:2024-11-23 15:54:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!