掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TListViewに棒グラフの線をリアルタイムに表示するには? (ID:5513)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
かなり時間が掛かってしまいましたが、ようやく時間が出来まして上記検証が行えました。 使用方法を知るために、下記のようなTESTソースを試みました。 procedure TForm1.ListView1AdvancedCustomDrawSubItem( Sender: TCustomListView; Item: TListItem; SubItem: Integer; State: TCustomDrawState; Stage: TCustomDrawStage; var DefaultDraw: Boolean); var Rect:TRect; j: integer; str: String; begin ListView_GetSubItemRect(ListView1.Handle, 0, 4, LVIR_BOUNDS, @Rect); str := 'Top='+ IntToStr(Rect.Top)+'/'+ 'Left='+ IntToStr(Rect.Left)+'/'+ 'Right='+ IntToStr(Rect.Right)+'/'+ 'Bottom='+ IntToStr(Rect.Bottom); Form1.Caption := str; rect.Top := rect.Bottom -2; //%仮計算TEST j := (rect.Right - rect.Left) div (200 div 50); rect.Right := rect.Left + j; Sender.Canvas.Pen.Color := $00FF0000; Sender.Canvas.Rectangle(rect); // フォントの変更イベントを作ってやれば文字が大きくならない with Sender.Canvas do if Assigned(Font.OnChange) then Font.OnChange(Font); end; 結果は、リアルタイム描画に成功となりました。 描画方法に関しては、初期の打開策のものですが、 幅を広げると見事に、%に従った幅になりました。 このソースでは、1行目のみですが上下左右の大きさを Form1.Caption に表示させております。 この数字がリアルタイムに変わりますね。 描画方法そのものに関しての問題は、追々やっていこうかと思います。 当初の問題が解決致しました。 ありがとう御座いました。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.