掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
D2010のStringGridでのセンター、右寄せの方法 (ID:35547)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
TSさん、何度もすいません。 デフォルトの描画がどうなっているか拡大して見てみたら やはり、選択セルのハイライトはグラデーションがかかっているんですね。 そこで自分なりにデフォルトを真似てみました。 procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin with StringGrid1 do begin if gdFixed in State then begin GraphUtil.GradientFillCanvas(Canvas,GradientStartColor,GradientEndColor,Rect,gdVertical); DrawText(Canvas.Handle, PChar(Cells[ACol, ARow]), -1, Rect, DT_CENTER OR DT_VCENTER OR DT_SINGLELINE) end else if gdSelected in State then begin GraphUtil.GradientFillCanvas(Canvas,$00FFCA93,clHighlight,Rect,gdVertical); Canvas.Pen.Color := $00FF9933; Canvas.Rectangle(Rect);//BrushをbsClear とする Rect.Right := Rect.Right - 3; DrawText(Canvas.Handle, PChar(Cells[ACol, ARow]), -1, Rect, DT_RIGHT OR DT_VCENTER OR DT_SINGLELINE); end else begin Canvas.FillRect(Rect); Rect.Right := Rect.Right - 3; DrawText(Canvas.Handle, PChar(Cells[ACol, ARow]), -1, Rect, DT_RIGHT OR DT_VCENTER OR DT_SINGLELINE); end; end; end; ここで使っているカラー($00FFCA93など)はあくまでハイライト色をデフォルトとした場合です。 これで殆どデフォルトの描画で右寄せが完成しました。 gdsThemed の場合、Rect(範囲)が変わるだけで、同じような感じで出来ると思います。 やはり・・さん、TSさん、ありがとうございました。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.