掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
2重表示をなくすには? (ID:40549)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>OffsetRectを入れたけど、 >やり方がマズい??? 最初の質問でセル文字の alignment を変更してあるのを見落としていたw。 固定セルの alignment を中央寄せ、または右寄せに変更したいのなら背景をグラデーションで塗らないとまずいね。 ここではグラデーションの色として clBtnFace を指定している。 procedure GradientFillRect(Canvas: TCanvas; Rect: TRect; aColor: TColor); var H, L, S: WORD; begin ColorRGBToHLS(ColorToRGB(aColor), H, L, S); GradientFillCanvas(Canvas, ColorHLSToRGB(H, L+80, S), ColorHLSToRGB(H, L-40, S), Rect, gdVertical); end; procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin with (Sender as TStringGrid) do begin if (gdFixed in State) then begin Canvas.Brush.Style := bsClear; // clBtnFace色のグラデーションで塗る(上を明るく、下を暗く) GradientFillRect(Canvas, Rect, clBtnFace{ $E0E0E0 }); DrawText(Canvas.Handle, PChar(Cells[ACol,ARow]), -1, Rect, DT_SINGLELINE or DT_VCENTER or DT_RIGHT); end else begin end; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.