Top > OOoBasic > Dialog > SpinButton

スピンボタン Edit

最小値と最大値以内でステップごとに値を上下させるために使うスピンボタンコントロール。

このスピンボタンコントロールはダイアログエディタで作成できません。LibreOffice では 3.5 からダイアログエディタで作成できますが、以前のバージョンでは読み込めません。

プロパティ Edit

他のコントロールと共通のプロパティは次のものです。

スピンボタン Edit

プロパティ説明
SpinValuelong値。
SpinValueMaxlong最大値。
SpinValueMinlong最小値。
SpinIncrementlong値間隔。
Orientationintegerスピンボタンの方向。0: 水平、1: 垂直。
Repeatbooleanスピンボタン利用時に連続動作させる。
RepeatDelaybooleanスピンボタン利用時の連続動作間隔。

Edit

スピンコントロールはダイアログエディタで作成できないので、モデルとコントローラサービスをインスタンス化したのち、コントローラにモデルをセット、ダイアログ (コントローラコンテナ) にコントロールを追加します。ページ Step が効くように修正。OOoBasic/Dialog/Example5

Dim oEditModel As Object

Sub Main
  Dim oDialog As Object, oDialogModel As Object
  DialogLibraries.LoadLibrary("Standard")
  oDialog = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
  oDialogModel = oDialog.Model
  
  oLabel = oDialog.getControl("Label1")
  oPosSize = oLabel.PosSize
  oPeer = oLabel.Peer
  oToolkit = oPeer.Toolkit

  Dim oSpin As Object, oSpinModel As Object
  oSpinModel = CreateUnoService("com.sun.star.awt.UnoControlSpinButtonModel")
  oSpin = CreateUnoService("com.sun.star.awt.UnoControlSpinButton")
  
  With oSpinModel
    .Orientation = 1
  End With
  oSpin.setModel( oSpinModel )
  oSpin.createPeer(oToolkit,oPeer)
  oSpin.setPosSize( 0,0,oPosSize.Width,oPosSize.Height,com.sun.star.awt.PosSize.POSSIZE )
  
  Dim oSpinListener As Object
  oSpinListener = CreateUnoListener("SpinListener_","com.sun.star.awt.XAdjustmentListener")
  oSpin.addAdjustmentListener( oSpinListener )
  
  oEditModel = oDialogModel.getByName("TextField1")
  oDialogModel.Step = 1
  oDialog.execute()
  oDialog.dispose()
End Sub


Sub SpinListener_adjustmentValueChanged( _
    oEvent As com.sun.star.awt.AdjustmentEvent )
  oEditModel.Text = oEvent.Value
End Sub
Sub SpinListener_dispose()
End Sub

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes