掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
D2010のStringGridでのセンター、右寄せの方法 (ID:35541)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
TSさん、分かり易い回答、ありがとうございます。 GradientFillCanvasの使い方が良く分かりました。 これでgdsGradientを使った固定セルの操作方法は解決できました。 StringGridの環境を DefaultDrawing := true Optoins の goDrawFocusSelect := true としている場合ですが、入力セルのSelectCellも単色の青ではなく、 グラデーションがかかったようなハイライト色になっていますが、 これをそのまま生かして、入力セルを右寄せ等にするにはどうすればいいんでしょうか。 殆どTSさんのコードを使わせてもらうのですが、 procedure TForm1.FormCreate(Sender: TObject); var i, n: integer; begin with StringGrid1 do begin DefaultDrawing:=True; for i := 1 to ColCount-1 do Cells[i,0]:='Col' + IntToStr(i); for i := 1 to RowCount -1 do Cells[0,i] := 'Row'+ IntToStr(i); for i := 1 to ColCount -1 do for n := 1 to RowCount - 1 do Cells[i,n] := IntToStr(i) + ',' + IntToStr(n); end; end; 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 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; では、塗りつぶしが利かず、SelectCell のテキストが2重に表示されてしまいます。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.