TScrollBar/ja
From Lazarus wiki
Jump to navigationJump to search
│
Deutsch (de) │
English (en) │
suomi (fi) │
français (fr) │
日本語 (ja) │
TScrollBarは、ユーザーがスライダーを移動させることで関連するコントロールのコンテンツをスクロールできるコントロールだ。
使い方
TScrollBarを使うには、Component Palette/jaのStandard tab/jaで選択しformに置く。
例
以下は、スクロールバーの位置に応じてフォーム上の画像を移動させる方法である:
- フォームに2つのTScrollBarを配置する。
- オブジェクトインスペクタで、最初のスクロールバーのプロパティを次のように変更する:「Name」を「sbVert」、「Kind」を「sbVertical」、「Align」を「alRight」へ。
- オブジェクトインスペクタで、2番目のスクロールバーのプロパティを「Name」を「sbHori」、「Align」を「alBottom」に変更する。
- フォームにTPaintBox(追加のコンポーネントパレット)を追加し、「align」を「alClient」に設定する。
- フォームにTImageList(共通のコントロールコンポーネントパレット)を追加する。
- 画像をImageListにアップロードする:
- ImageList1を右クリックし、ポップアップメニューからImageList Editor...を選択する。
- Addをクリックし、画像を選択する(できれば小さなアイコン16 x 16などを推奨する。例:Lazarus/images/icons/lazarus16x16)。
- OKで選択を完了します。
- PaintBoxを選択し、オブジェクトインスペクタでイベントの下にあるOnPaintイベントハンドラを作成し、次のコードを記述する:
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
ImageList1.Draw(
Paintbox1.Canvas,
sbHori.Position * (PaintBox1.ClientWidth - ImageList1.Width) div sbHori.Max,
sbVert.Position * (Paintbox1.ClientHeight - ImageList1.Height) div sbVert.Max,
0);
end;
</source>
* スクロールバーの位置の変更によってフォームを再描画するために、スクロールバーのイベントハンドラに''OnChange''を作成し、他のスクロールバーにも同様のイベントハンドラを呼び出す。
<source>
procedure TForm1.sbVertChange(Sender: TObject);
begin
RePaint;
end;
Your little program could look like:
以下も参照のこと