
(圖1)上圖是想達到的效果,線不連在有號的格子上,
目前的效果StringGrid上畫直線,達到(圖1)的效果,線條變短點, 請大神幫助,
uj5u.com熱心網友回復:
畫線的代碼貼來瞅瞅?我先想到的是畫完先再invalidaterect更新指定cell的內容來清除過界的線
uj5u.com熱心網友回復:
先畫線,再畫紅字的格子,即可uj5u.com熱心網友回復:

//begin==================跨度連線代碼=================================
if (ACol>=跨度連線1) and (ACol<=跨度連線1+跨度連線2-1) and (跨度連線1<>0) and (Arow>1) then
begin
if TempStr<>'' then
begin
if Arow=2 then
begin
跨度連線x1:=round((Rect.Left+Rect.Right)/2);
跨度連線x2:=round((Rect.Top+Rect.Bottom)/2)
end
else
begin
跨度連線y1:=round((Rect.Left+Rect.Right)/2);
跨度連線y2:=round((Rect.Top+Rect.Bottom)/2)
end;
end;
if (ACol=跨度連線1+跨度連線2-1) and (Arow>2) then
begin
Canvas.Pen.Width := 2;
Canvas.Pen.Color := ztColor;
Canvas.MoveTo(跨度連線x1,跨度連線x2);
Canvas.LineTo(跨度連線y1,跨度連線y2);
跨度連線x1:=跨度連線y1;
跨度連線x2:=跨度連線y2;
end;
end;
//end====================跨度連線代碼=================================
連線代碼,當執行到當前格時,把上一行的對應格連起來,所以不能先畫線,再連格
uj5u.com熱心網友回復:
可以在畫完之后,再單純畫一次格子uj5u.com熱心網友回復:
要很多判斷才能實作吧?uj5u.com熱心網友回復:
同一個 自畫函式drawall(NoLine:boolean),通過一個boolean變數決定線是否畫
原來的函式改為:
drawall(true);
drawall(false);
uj5u.com熱心網友回復:
謝謝,還是不明白。uj5u.com熱心網友回復:
把你原來的 自畫函式xxx 改造一下,增加一個引數 NoLine:boolean
里面畫線的代碼,都改為通過NoLine來決定是否執行
原來的畫法就是 xxx(false);
新要求的畫法就是
xxx(false);
xxx(true);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/77548.html
上一篇:C++的指標常量和常量指標
下一篇:bzoj3944 Sum
