StringGrid 選取的框線程式要如何寫呢?? |
尚未結案
|
foxfire0906
一般會員 發表:6 回覆:3 積分:1 註冊:2008-09-05 發送簡訊給我 |
我想更改選取範圍,同時要出現框線,不知道如何著手,這問題困擾已久,懇請各為大大幫忙,謝囉!!!
編輯記錄
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
以下的範例程式,可以改變選取範圍的顏色,但是框線還沒有辦法,你先參考看看
[code cpp] void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State) { if(ARow>0 && ACol>0) { if(State.Contains(gdSelected)) { StringGrid1->Canvas->Brush->Color=clGreen; StringGrid1->Canvas->FillRect(Rect); StringGrid1->Canvas->TextRect(Rect, Rect.Left 2, Rect.Top 2, StringGrid1->Cells[ACol][ARow]); } } } [/code]
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
foxfire0906
一般會員 發表:6 回覆:3 積分:1 註冊:2008-09-05 發送簡訊給我 |
|
papjaj
一般會員 發表:11 回覆:15 積分:5 註冊:2007-01-29 發送簡訊給我 |
[code cpp] TRect rect; rect.Left = StringGrid1->CellRect(col,row).Left; rect.Right = StringGrid1->CellRect(col,row).Right; rect.Top = StringGrid1->CellRect(col,row).Top; rect.Bottom = StringGrid1->CellRect(col,row).Bottom; StringGrid1->Canvas->Brush->Color = clRed; StringGrid1->Canvas->FrameRect(rect); [/code] 這個可以讓滑鼠在拖曳string grid時所點選的那格出現框框 但是多格的我沒試過 |
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
補充樓上提供的方案
[code cpp] void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State) { // goDrawFocusSelected = True, DefaultDrawing = True TCanvas *oxCanv = StringGrid1->Canvas; TColor ixColor = StringGrid1->Canvas->Brush->Color; // 因 State.Contains(gdFocused) 時, DefaultDrawing 會再做 FrameRect() 蓋掉本段所繪的框, 故內縮 1 Pixel TRect R1(Rect.Left 1,Rect.Top 1,Rect.Right-1,Rect.Bottom-1); if (!State.Contains(gdFixed) && State.Contains(gdSelected)) { oxCanv->Brush->Color = clRed; oxCanv->FrameRect(R1); oxCanv->Brush->Color = ixColor; // 復原 } } [/code] ===================引 用 foxfire0906 文 章=================== 我想更改選取範圍,同時要出現框線,不知道如何著手,這問題困擾已久,懇請各為大大幫忙,謝囉!!! |
foxfire0906
一般會員 發表:6 回覆:3 積分:1 註冊:2008-09-05 發送簡訊給我 |
|
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
所以您要的是:不管選了多少格,都只要一個外框?
若真要如此,就真的很難了!因 TStringGrid 是一個 Cell 一個 Cell 處理畫面。 ===================引 用 foxfire0906 文 章=================== 版主大大不好意思唷~~~ 這問題在版面上停留這摸久仍未結案. 我想前面幾位大大可能搞錯方向了.. 原本我的困難處在於, 一格的虛線框,變成對應的1X1 或 1x2 2x1 2x2 ...格的虛線框囉, 可能一開始問題沒有說清楚,造成大家的困擾,實在對不起大家!!!!! |
foxfire0906
一般會員 發表:6 回覆:3 積分:1 註冊:2008-09-05 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |