掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TStringGrid でカラム名の省略文字(...)を表示するには? (ID:29561)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
TStringGrid でカラムの幅が変更されたときにカラム名が 表示しきれない場合はは、省略文字を'...'を表示させたいのですが 何か関数はあるのでしょうか? とりあえず、自分で書いてみましたがいまいちです。 よろしくお願いします。 procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var uFormat: UINT; ARect: TRect; AText, TmpText: string; WText: WideString; DotStr: string; begin with Sender as TStringGrid do begin SetBKMode(Canvas.Handle, Windows.TRANSPARENT); Canvas.FillRect(Rect); Canvas.Pen.Width := 1; Canvas.Pen.Color := clSilver; //固定行の場合 if ARow = 0 then begin ARect := Rect; WText := Cells[ACol, ARow]; //ワイド文字にセット TmpText := WText; DotStr := ''; while Canvas.TextWidth(TmpText + DotStr) + 3 > (Rect.Right - Rect.Left) do begin //全て'.' にならないように1文字は残す if Length(WText) = 1 then Break; Delete(WText, Length(WText), 1); TmpText := WText; DotStr := DotStr + '.'; end; AText := TmpText + DotStr; uFormat := DT_VCENTER or DT_SINGLELINE; DrawText(Canvas.Handle, PChar(AText), Length(AText), ARect, uFormat); Canvas.MoveTo(Rect.Right-1, Rect.Top+1); Canvas.LineTo(Rect.Right-1, Rect.Bottom-2); Exit; end; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.