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

詢問TStringGrid的cell的文字問題

答題得分者是:RaynorPao
kenbcb
中階會員


發表:171
回覆:129
積分:60
註冊:2003-07-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-31 17:59:53 IP:61.222.xxx.xxx 未訂閱
請問各位: 在TStringGrid中的cell內的文字要如何自動換行~ 請指導~謝謝(附我的程式碼) void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State) { if (State.Contains(gdSelected)) { StringGrid1->Canvas->Brush->Color = clRed; StringGrid1->Canvas->Font->Color = clHighlightText; StringGrid1->Canvas->FillRect(Rect); } else { StringGrid1->Canvas->Brush->Color = StringGrid1->Color; StringGrid1->Canvas->Font->Color = StringGrid1->Font->Color; StringGrid1->Canvas->FillRect(Rect); } RECT R = RECT(Rect); UINT format = DT_LEFT | DT_VCENTER | DT_WORDBREAK; AnsiString text = StringGrid1->Cells[ACol][ARow]; DrawText(StringGrid1->Canvas->Handle,text.c_str(), text.Length(),&R, format); }
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-31 21:27:50 IP:61.221.xxx.xxx 未訂閱
引言: 請問各位: 在TStringGrid中的cell內的文字要如何自動換行~ 請指導~謝謝(附我的程式碼) void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State) { if (State.Contains(gdSelected)) { StringGrid1->Canvas->Brush->Color = clRed; StringGrid1->Canvas->Font->Color = clHighlightText; StringGrid1->Canvas->FillRect(Rect); } else { StringGrid1->Canvas->Brush->Color = StringGrid1->Color; StringGrid1->Canvas->Font->Color = StringGrid1->Font->Color; StringGrid1->Canvas->FillRect(Rect); } RECT R = RECT(Rect); UINT format = DT_LEFT | DT_VCENTER | DT_WORDBREAK; AnsiString text = StringGrid1->Cells[ACol][ARow]; DrawText(StringGrid1->Canvas->Handle,text.c_str(), text.Length(),&R, format); }
kenbcb 你好:
在 StringGrid1->Cells[ACol][ARow] 中的字串,要以「空白」分隔,才會換行
例如: aaaaabbbbbcccccddddd   // 這樣不會換行
      aaaaa bbbbb ccccc ddddd   // 這樣才會換行
-- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
kenbcb
中階會員


發表:171
回覆:129
積分:60
註冊:2003-07-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-01 12:14:59 IP:61.222.xxx.xxx 未訂閱
無法自動換嗎~ 因為我是去讀陣列中的字串是 "aaabbbccc", 有其它方法嗎
littlehorse07
一般會員


發表:1
回覆:4
積分:1
註冊:2004-07-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-16 17:41:33 IP:211.72.xxx.xxx 未訂閱
你好:    不曉的這對你有沒有用,你可以試試        void __fastcall TForm1::BitBtn1Click(TObject *Sender) {     StringGrid1->Cells[1][1] = "This is Multi-Line\n Demo"    //在要換行的文字前加上\n     StringGrid1->Repaint(); } //--------------------------------------------------------------------------- void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,       int ARow, TRect &Rect, TGridDrawState State) {     AnsiString Str;     int nHeight;     Str = StringGrid1->Cells[ACol][ARow];     StringGrid1->Canvas->FillRect(Rect);     StringGrid1->Canvas->Font->Color=clBlack;//or other color     DrawText(StringGrid1->Canvas->Handle, Str.c_str(),-1, &Rect,DT_LEFT);    } //---------------------------------------------------------------------------
系統時間:2024-05-15 7:48:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!