2ちゃんねるブラウザ「OpenJane」改造総合スレ 2
「読んだ位置」カラムをつける
オブジェクトツリーからListview.Columnsを選んで項目をひとつ追加。
次にTMainWnd.ListViewDataの最後(または新しいカラムの位置)にこれを追加。
if (0 <= thread.viewPos) and //読んだ位置情報がある
(10 < thread.lines - thread.viewPos) then //総取得レスから遠い場合だけに絞る(無くても可)
Item.SubItems.Add(IntToStr(thread.viewPos +1))
else
Item.SubItems.Add('');
これで途中までしか読んでないスレは、読んでいる途中のレス番がスレ覧に表示される。
カラムのソートが必要な場合ははTMainWnd.ListViewColumnClickで
10: ListView.Sort(@ListCompareFuncViewPos);
見たいにカラムの列番号で指定して、その上あたりにあるソート関数のとこにこれを追加。
function ListCompareFuncViewPos(Item1, Item2: Pointer): integer;
begin
result := integer(TThreadItem(Item1).lines - TThreadItem(Item1).viewPos <= 10)
- integer(TThreadItem(Item2).lines - TThreadItem(Item2).viewPos <= 10);
if result <> 0 then
exit;
result := TThreadItem(Item1).viewPos - TThreadItem(Item2).viewPos;
if result = 0 then
result := ListCompareFuncNumber(Item1, Item2);
if MainWnd.currentSortColumn = -10 then
//ListViewColumnClickで指定したカラムの列番号
result := -result;
end;
カラムの非表示との兼ね合いは考慮してないのでそれ以前のソース使うか各自で対応して。