Delphi2007から2010へ移行中です。
下記のように2007で正常に表示していたStringGridで複数行表示が
2010でうまく表示できません。
2行表示するのですが、2行目が1行目にも表示されてしまいます。
AAABBB
BBB
と表示される
StringGrid1.Cells[0,VarRow] := 'AAA' + #13 + 'BBB';
procedure TYoteiIchiranForm.StringGrid1DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var
S : String;
Options : Integer;
begin
StringGrid1.Canvas.FillRect(Rect);
S := StringGrid1.Cells[ACol, ARow];
Rect.Left := Rect.Left + 2;
Rect.Top := Rect.Top + 2;
Options := DT_EDITCONTROL;
DrawTextEx(StringGrid1.Canvas.Handle, PChar(S), Length(S), Rect, Options, nil);
end;
確認したところ、Delphi XEでもスクロールしない固定列・行で
その現象はなりました。
とりあえず、DrawingStyleプロパティを gdsClassic にして、
テーマやグラデーション表示しなければ、期待するような結果に
なるかと思います。
igyさん
ありがとうございました。
DrawingStyleプロパティを gdsClassicで、固定列・行の複数表示が正常になりました。
クラッシック表示でがまんですね。
解決を忘れました。
解決になってますが。
FillRectする前に、Canvasのブラシスタイルに bsSolid を指定したら大丈夫でした。
どうも、最初はbsClearが入ってきてる見たいですねぇ。
ツイート | ![]() |