2015-01-23 114 views
-1

D7에서 XE2 로의 마이그레이션이 끝났습니다. 기본 그리드 라인이 매우 희미하다는 것을 눈치 챘습니다. 모니터에서 대비를 높게 설정하는 데 도움이되지 않습니다. 아래의 스크린 샷에 :하지만이 훨씬 덜 바람직한 결과를 생성TStringGrid 그리드 라인의 색상을 변경하는 방법은 무엇입니까?

procedure TfrmBaseRamEditor.DrawStrGrid(Sender: TObject; ACol, ARow: Integer; 
             Rect: TRect; State: TGridDrawState); 
begin 
    sgrSenden.Canvas.Pen.Color := clDkGray; 
    // "Set the Style property to bsClear to eliminate flicker when the object 
    // repaints" (I don't know if this helps). 
    sgrSenden.Canvas.Brush.Style := bsClear; 
    // Draw a line from the cell's top-right to its bottom-right: 
    sgrSenden.Canvas.MoveTo(Rect.Right, Rect.Top); 
    sgrSenden.Canvas.LineTo(Rect.Right, Rect.Bottom); 
    // Make the horizontal line. 
    sgrSenden.Canvas.LineTo(Rect.Left, Rect.Bottom); 
    // The other vertical line. 
    sgrSenden.Canvas.LineTo(Rect.Left, Rect.Top); 
end; 

:

Default TStringGrid grid-lines

이것은 TStringGridOnDrawCell 이벤트를 설정하여 선 어두운 색을 다시 내 시도했다 특히 활성 셀의 경계를 확인하십시오 :

attempt to modify gridlines

내 시도처럼 예쁘게하지 않는 방식으로 이러한 그리드 선이 어둡거나 두껍게 만들 수있는 방법이 있습니까?

+0

정확한 [Delphi XE3, 추한 StringGrid의 테두리] (http://stackoverflow.com/questions/12996363/delphi-xe3-ugly-stringgrids-borders) –

+0

@ JerryDodge 나는 한 시간 동안 인터넷 검색을 할 수 없었습니다. 그것. 그 질문은 틀린 말로 묘사되고 있습니다. StringGrid의 테두리 *는 연결된 질문자가 실제로 묻는 것 인 셀의 테두리와 다릅니다. 나는이 질문에서 얻을 것이 아무것도 없지만 여기에 남겨두면 미래의 Google 직원에게 서비스를 제공 할 것입니다. – DBedrenko

+0

아쉽게도 스택 오버플로 규칙은 변경되지 않습니다. 귀하가 게시 한 질문과 답변은 이미 여기에 있습니다. 그들이 잘못 말한 것 같으면 기존의 것을 향상시킬 수있는 방법을 알 수 있습니다. –

답변

0

this 질문에 대한 답변에 따라 TStringGrid의 속성을 gdsClassic으로 설정하기 만하면됩니다.

-2

또한 그리드 선에 다른 색을 사용하고 싶습니다 (그러나 Delphi 6에서). 안타깝게도 선의 색상은 개별적으로 설정할 수 없습니다. I는 TStringGrid (Grid.pas)을 처리하는 수단을 연구하고 델파이 절차 TCustomGrid.Paint의 식 clSilver에 선 색상을 설정하는 것을 발견

LineColor := clSilver; 

배경색이 이미 다음, LineColor clSilver이면 clGray로 설정됩니다.

그리드 선 색 속성을 구현하지 않은 이유를 알 수 없습니다.

+1

대답이 아니므로 별도의 질문으로 게시하십시오. –