OOobbs3/110
質問
お世話になります。 こちらのサイトで拝見した
【タブっぽくコントロールの表示切り替え】
http://hermione.s41.xrea.com/pukiwiki/index.php?OOoBasic%2FForm%2FMemo どうすれば、コントロールの座標値をマクロで動的に設定できるでしょうか? コーディングしたファイルをアップロードするので、よろしくお願いいたします。 (画面の下の方からダウンロードできるようです) 回答
お手数おかけいたしますが、よろしくお願いいたします 'レイアウトを初期化する Sub InitLayout(oForm As Object) oDoc = ThisComponent oController = oDoc.getCurrentController() oDoc.lockControllers() ' コントローラをロックしてチラつきを少し防ぐ 'On Error GoTo Handler For Each aTab In InitTabs() For Each sName In aTab.ControlNames Item = FindControl(sName,oForm, oController) Pos = Item.view.getPosSize () Item.setPosSize( _ Pos.X + aTab.ShiftX, _ Pos.Y + aTab.ShiftY, _ Pos.Width,Pos.Height, com.sun.star.awt.PosSize.POSSIZE _ ) Item.setVisible( False ) Next sName Next aTab oDoc.unlockControllers() 'Handler: 'oDoc.unlockControllers() End Sub
ありがとうございます。 おかげさまでできました。 サンプルファイルもアップしておきます。 'レイアウトを初期化する Sub InitLayout(oDrawPage,oForm As Object) oDoc = ThisComponent oController = oDoc.getCurrentController() oDoc.lockControllers() ' コントローラをロックしてチラつきを少し防ぐ 'On Error GoTo Handler For Each aTab In InitTabs() For Each sName In aTab.ControlNames Item = FindDrawObjByControlName(sName,oDrawPage) aPoint = CreateUnoStruct("com.sun.star.awt.Point") aPoint.X = Item.Position.X + aTab.ShiftX aPoint.Y = Item.Position.Y + aTab.ShiftY Item.Position = aPoint Next sName Next aTab oDoc.unlockControllers() 'Handler: ' oDoc.unlockControllers() End Sub Function FindDrawObjByControlName(cName As String,oDrawPage) For Each DrawObj In oDrawPage If DrawObj.Control.Name = cName Then FindDrawObjByControlName = DrawObj End If Next DrawObj End Function
感想,コメント,メモ
|