C++ Builder CE 中級プログラミング

GitHubAPIを使って、リモートレポジトリの一覧を得る 3. TListViewへの表示

の続きで、最終回です。たぶん。一回目でなんとなくフォームに置いたTListViewですが、プロパティーなどを設定します。まずViewStyle

のごとくvsReportにしておきます。カラムをセットします。下記は一例ですが、

として、

こんな感じにしておきます。カラムの幅もだいたい良い感じで設定して、

上部に余計なdebug情報がありますが、TListViewの部分は良さそうですね。カラムをクリックした時にTEditにurlが入ると、それを使ってブラウザからレポジトリにアクセスできますので、便利ですね。で、

ここでダブルクリックでhookする関数を生成(スケルトン)します。

void __fastcall TForm1::ListView1Click(TObject *Sender)
{
    Edit1->Text = entries[ListView1->ItemIndex].url;
}
//---------------------------------------------------------------------------

これを中身に記述して。動かして見ますかね。一番上のカラム(行)をクリックすると、

Edit1の中を選択して、Ctrl-CとかしてからCtrl-Vすると、

GitHub - alt-doc-nao/bootnext: switch disk using bootnext i.e. bootonce
switch disk using bootnext i.e. bootonce. Contribute to alt-doc-nao/bootnext development by creating an account on GitHu...

が得られます。bootnext自体はPublic(Private=false)なレポジトリなので、誰でも上のリンクを辿ってアクセスできます。別の行をクリックすると、そのレポジトリに対応したurlが得られます。良さそうなので、仕上げでデバッグのために使っていたTMemoとかTLabelを削除して、関連のコードを消すかコメントアウトします。

最終形はこうなります。一番下のFirst repositoryをクリックして得られたurlは、

Build software better, together
GitHub is where people build software. More than 150 million people use GitHub to discover, fork, and contribute to over...

となりますが、Privateなレポジトリなので、ここへアクセスしようとしても、読者の方々は

404になり、Sign inを促されます。カラムをダブルクリックするとそのurlへブラウザからアクセスするとかも可能ですね。

コメント