Difference between revisions of "TScrollBar/ja"
From Lazarus wiki
Jump to navigationJump to search (→例) |
|||
Line 16: | Line 16: | ||
* オブジェクトインスペクタで、最初のスクロールバーのプロパティを次のように変更する:「Name」を「sbVert」、「Kind」を「sbVertical」、「Align」を「alRight」へ。 | * オブジェクトインスペクタで、最初のスクロールバーのプロパティを次のように変更する:「Name」を「sbVert」、「Kind」を「sbVertical」、「Align」を「alRight」へ。 | ||
* オブジェクトインスペクタで、2番目のスクロールバーのプロパティを「Name」を「sbHori」、「Align」を「alBottom」に変更する。 | * オブジェクトインスペクタで、2番目のスクロールバーのプロパティを「Name」を「sbHori」、「Align」を「alBottom」に変更する。 | ||
− | * フォームに[[TPaintBox]] | + | * フォームに[[TPaintBox]](追加のコンポーネントパレット)を追加し、「align」を「alClient」に設定する。 |
− | * フォームに[[TImageList]] | + | * フォームに[[TImageList]](共通のコントロールコンポーネントパレット)を追加する。 |
* 画像をImageListにアップロードする: | * 画像をImageListにアップロードする: | ||
** ImageList1を右クリックし、ポップアップメニューから''ImageList Editor...''を選択する。 | ** ImageList1を右クリックし、ポップアップメニューから''ImageList Editor...''を選択する。 | ||
− | ** ''Add'' | + | ** ''Add''をクリックし、画像を選択する(できれば小さなアイコン16 x 16などを推奨する。例:Lazarus/images/icons/lazarus16x16)。 |
** ''OK''で選択を完了します。 | ** ''OK''で選択を完了します。 | ||
* PaintBoxを選択し、オブジェクトインスペクタでイベントの下にある''OnPaint''イベントハンドラを作成し、次のコードを記述する: | * PaintBoxを選択し、オブジェクトインスペクタでイベントの下にある''OnPaint''イベントハンドラを作成し、次のコードを記述する: |
Latest revision as of 05:36, 24 March 2024
│
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:
以下も参照のこと