Sunday, December 22, 2013

ஓப்பன் ஆஃபிஸ் பேஸிக்-104


ஓப்பன் ஆஃபிஸ் பேஸிக்கில் கட்டளைவரிகளை தொடர்ந்து செயல்படுமாறு இணைத்திடுகின்ற புரியாக்குதலும்(threading), செயல்களை மறுஅட்டவணை படுத்துதலும் (rescheduling) சிறிது வித்தியாசமான செயலாகும். ஏனெனில் இது இயக்க நேரத்தில் மட்டும் செயல்களை அட்டவணைபடுத்திடுவதற்கான வசதியை வைத்துள்ளது. மேலும் மூலக்குறிமுறைகளையும் உரையாடல் பெட்டிகளுக்கான கட்டளை வரிகளையும் மேம்படுத்தபட்ட நூலகத்தை நிருவகித்தலின்மூலம் பராமரிக்கின்றது இந்த மேம்படுத்தபட்ட நூலகத்தை நிருவகித்தலின் பொதுவான கட்டமைப்பானது Library container , Library , Library elements ஆகியமூன்று நிலைகளில் உள்ளன


அதிலும் Basic library container என்பது மூலக்குறிமுறைகளை மட்டும் dialog library container என்பது உரையாடல் பெட்டிகளுக்கான கட்டளைவரிகளைமட்டும் கொண்டுள்ளன. இதிலுள்ள முன்கூட்டியே கட்டமைக்கபட்ட BasicLibraries. DialogLibraries ஆகிய பண்பியல்புகளின் மூலம் இதனை அனுகி திருத்தம் செய்யலாம் இந்த பேஸிக்ஆனது இயங்க துவங்கும்போது நூலகத்தின் Standard என்பது மட்டும் எப்போதும் நினைவகத்தில் மேலேற்றம் செய்யபட்டிருக்கும் மற்றவை தேவைப்படும்போதும் மட்டும் மேலேற்றம் செய்து பயன்படுத்தி கொள்ளும் createLibrary() என்ற கட்டளைவரியின் வாயிலாக புதிய நூலகதாங்கி (library container) உருவாக்கபடும் அவ்வாறே நடப்பிலுள்ள நூலகதாங்கி (existing library container) யானது createLibraryLink()என்ற கட்டளைவரியின் வாயிலாக இணைத்து வேறு library container உருவாக்கபடும் உரையாடல் பெட்டியும் ,உரையாடல் பெட்டியின் கட்டுப்பாடும் model, view, controller ஆகிய மூன்று முக்கியதருக்க வகைகளில் Toolkit controls என்பதன் வாயிலாக கட்டுபடுத்தபடுகின்றது

மேற்கூறியவாறு உரையாடல் பெட்டியை வடிவமைத்து உருவாக்கியபின் அவ்வுரையாடல் பெட்டியை நம்முடைய பயன்பாட்டில் கொண்டுவரமுடியும் அதனை கட்டுபாட்டு பெட்டியாக எப்போதுவேண்டுமானாலும் மாற்றிகொள்ளமுடியும் மேலும் அதனுடைய பண்பியல்புகளையும் மாற்றியமைக்கமுடியும் அதுமட்டுமல்லாது கூடுதலான பக்கங்களை அதில் சேர்க்கமுடியும் மேலும் அதில் (இந்தமேக்ரோவில்)

oDialogModel = oDialog.getModel()

oButtonModel = oDialogModel.getByName("CommandButton1")

oButtonModel.setPropertyValue("Label", "My Label")

என்றவாறான கட்டளைவரிகளின் வாயிலாக பொத்தன்களையும்(Buttons)

oImageControlModel = oDialog.Model.ImageControl1

oImageControlModel.ImageURL =

"file:///D:/Office60/share/gallery/photos/beach.jpg"

oImageControlModel.ScaleImage = True

என்றவாறான கட்டளைவரிகளின் வாயிலாக உருவப்படகட்டுபாட்டையும் (ImageControl)

oCheckBoxModel = oDialog.Model.CheckBox3

oCheckBoxModel.TriState = True

oCheckBoxModel.State = 2

என்றவாறான கட்டளைவரிகளின் வாயிலாக தேர்வுசெய்பெட்டியையும்(CheckBox)

If oOptionButton.State Then

' The option is checked

Else

' The option is not checked

End If

என்றவாறானகட்டளைவரிகளின் வாயிலாக வாய்ப்பு பொத்தான்களையும் (OptionButtons)

Dim nCount As Integer, oListBox As Object

oListBox = oDialog.getControl("ListBox1")

nCount = oListBox.getItemCount()

oListBox.addItem( "New Item", nCount )

Dim nPos As Integer, nCount As Integer

nPos = 0

nCount = 1

oListBox.removeItems( nPos, nCount )

oListBox.selectItemPos( 0, True )

Dim sSelectedItem As String

sSelectedItem = oListBox.getSelectedItem()

Dim selectPos As Integer

selectPos = oListBox.getSelectedItemPos()

என்றவாறான கட்டளைவரிகளின் வாயிலாக பட்டி பெட்டியையும்(ListBox)

Dim nCount As Integer

Dim sItems As Variant

REM get control

oComboBox = oDialog.getControl("ComboBox1")

REM first remove all old items from the list

nCount = oComboBox.getItemCount()

oComboBox.removeItems( 0, nCount )

REM add new items to the list

sItems = Array( "Item1", "Item2", "Item3", "Item4", "Item5" )

oComboBox.addItems( sItems, 0 )

என்றவாறான கட்டளைவரிகளின் வாயிலாக சேர்க்கை பெட்டியையும்(ComboBox) உள்ளிணைக்க முடியும்

oScrollBarModel = oDialog.Model.ScrollBar1

oScrollBarModel.ScrollValueMax = 100

oScrollBarModel.BlockIncrement = 20

oScrollBarModel.LineIncrement = 5

oScrollBarModel.VisibleSize = 20

என்றவாறான கட்டளைவரிகளின் வாயிலாக கிடைவரிசை,நெடுவரிசை நகர்வுபட்டையையும் (Horizontal/Vertical Scroll Bar)

Dim oLabelModel As Object

Dim oScrollBarModel As Object

Dim ScrollValue As Long, ScrollValueMax As Long

Dim VisibleSize As Long

Dim Factor As Double

Static bInit As Boolean

Static PositionX0 As Long

Static Offset As Long

REM get the model of the label control

oLabelModel = oDialog.Model.Label1

REM on initialization remember the position of the label control and calculate offset

If bInit = False Then

bInit = True

PositionX0 = oLabelModel.PositionX

OffSet = PositionX0 + oLabelModel.Width - (oDialog.Model.Width - Border)

End If

REM get the model of the scroll bar control

oScrollBarModel = oDialog.Model.ScrollBar1

REM get the actual scroll value

ScrollValue = oScrollBarModel.ScrollValue

REM calculate and set new position of the label control

ScrollValueMax = oScrollBarModel.ScrollValueMax

VisibleSize = oScrollBarModel.VisibleSize

Factor = Offset / (ScrollValueMax - VisibleSize)

oLabelModel.PositionX = PositionX0 - Factor * ScrollValue

End Sub

என்றவாறான கட்டளைவரிகளின் வாயிலாக அதனை கட்டுபடுத்தவதற்கான சரிசெய்திடும் கைப்பிடி(AdjustmentHandler) என்பதையும்

Sub ProgressBarDemo()

Dim oProgressBar as Object, oProgressBarModel As Object, oDialog as Object

Dim ProgressValue As Long

REM Dialog1 contains progress bar ProgressBar1 saved in standard library

DialogLibraries.loadLibrary("Standard")

oDialog = CreateUnoDialog(DialogLibraries.Standard.Dialog1)

REM progress bar settings

Const ProgressValueMin = 0

Const ProgressValueMax = 40

Const ProgressStep = 4

REM set minimum and maximum progress value

oProgressBarModel = oDialog.getModel().getByName( "ProgressBar1" )

oProgressBarModel.setPropertyValue( "ProgressValueMin", ProgressValueMin)

oProgressBarModel.setPropertyValue( "ProgressValueMax", ProgressValueMax)

REM show progress bar

oDialog.setVisible( True )

REM increase progress value every second

For ProgressValue = ProgressValueMin To ProgressValueMax Step ProgressStep

oProgressBarModel.setPropertyValue( "ProgressValue", ProgressValue )

Wait 1000

Next ProgressValue

End Sub

என்றவாறான கட்டளைவரிகளின் வாயிலாக நடைபெறும் பணியின் தற்போதைய நிலையை அறிந்து கொள்வதற்கான (Progress Bar)என்பதை உள்ளிணைக்க முடியும்

Sunday, December 15, 2013

ஓப்பன் ஆஃபிஸ் பேஸிக்-103


பொதுவாக பெரும்பாலான செயலிகளின் வாயிலாக ஓப்பன் ஆஃபிஸ் பேஸிக் ஆனது விசுவல் பேஸிக்குடன்ஒத்தியங்குக்கின்றது. அவைகளுள் ஒருசில பின்வருமாறு

திரையின் உள்ளீட்டு வெளியீட்டு செயலிகள்

ஓப்பன் ஆஃபிஸ் பேஸிக் ஆனது அறிக்கைகளின் மூலமாகவும் செயலிகளின் மூலமாகவும் திரையில் தகவல்களை பிரதிபலிக்கசெய்தல் பயனாளரிடமிருந்து தகவல்களை பெறுதல் ஆகிய செயல்களை செய்கின்றது உதாரணமாக அச்சிடும்பணிக்கான செய்திகளை திரையில் பிரதிபலிக்கசெய்து பயனாளரிடமிருந்து பெறும் கட்டளைகளுக்கு ஏற்ப செயல்படுதல், செய்தி பெட்டியை (MsgBox) பிரதிபலிக்கசெய்து OK, Cancel, Yes ,No ஆகிய பொத்தான்களை பயனாளர்கள் தெரிவுசெய்து சொடுக்குவதற்கேற்ப செயல்படுதல் , அவ்வாறே உள்ளீட்டு பெட்டியை (InputBox )பிரதிபலிக்கசெய்து பயனாளர்கள் தெரிவுசெய்வதற்கேற்ப செயல்படுதல் ஆகிய செயல்கள் விசுவல் பேசிக்கின் செயலிகளுடன் ஓப்பன் ஆஃபிஸ் பேஸிக்கின் செயலிகளும் ஒத்தியங்குமாறு செய்யபட்டுள்ளன

கோப்புகளின் உள்ளீட்டு வெளியீட்டு செயலிகள்

குறிப்பிட்ட இயக்கமுறைமையில்தான் இயங்கமுடியும் என்ற கட்டுப்பாடு எதுவுமில்லாமல் விசுவல் பேஸிக் போன்றே ஓப்பன் ஆஃபிஸ் பேஸிக்கும் Function Read Directories( ) ,Sub SaveDataToFile( ) ,Function LoadDataFromFile( ) , Function CreateFolder( ) என்பன போன்ற கோப்புகளை கையாளும் உள்ளீட்டு வெளியீட்டு செயல்களை மிக எளிதாக செயல்படுத்துகின்றது

அதுமட்டுமல்லாது copy, move , remove files folders, openFileRead(), openFileWrite(), openFileReadWrite()) என்பன போன்ற கோப்புகளை கையாளும் உள்ளீட்டு வெளியீட்டு செயல்களையும் மிக எளிதாகசெயல்படுத்துகின்றது

நாளிற்கும் நேரத்திற்குமான செயலிகள்

DateSerial, DateValue, Day, Month, WeekDay, Year, Hour, Now, Second, TimeSerial, TimeValue, Date, Time, and Timer என்பன போன்ற நாளிற்கும் நேரத்திற்குமான செயலிகளை விசுவல் பேஸிக் போன்றே ஓப்பன் ஆஃபிஸ் பேஸிக்கும் செயல் படுத்துகின்றது

எண் செயலிகள்

Cos,Sin ,Tan,Atn ,Exp,Log,Sqr,Abs,Sgn என்பன போன்ற முக்கோணவியல் செயலிகளையும், எண்களின் செயலிகளையும் ஓப்பன் ஆஃபிஸ் பேஸிக் ஆனது விசுவல் பேஸிக் போன்றே செயல்படுத்துகின்றது

எழுத்துகளின் செயலிகள்

மேலும் பின்வரும் எழுத்துகளை கையாளும் செயலிகளையும் ஓப்பன் ஆஃபிஸ் பேஸிக் ஆனது விசுவல் பேஸிக் போன்றே செயல்படுத்துகின்றது Asc ,Chr ,Str,LCase ,UCase ,Left returns,Mid returns ,Right returns, Trim

இயக்கநேர செயலிகள்

அதுமட்டுமின்றி CreateUnoListener, CreateUnoService, GetProcessServiceManager, HasUnoInterfaces, IsUnoStruct, EqualUnoObjects என்பன பேன்ற இயக்கநேர செயலிகளையும் விசுவல் பேஸிக் போன்று ஓப்பன் ஆஃபிஸ் பேஸிக்கும் செயல்படுத்து கின்றது . கட்டளை செயலிக்கான உதாரணம்

மேலும் MsgBox StarDesktop.Dbg_SupportedInterfaces என்ற ஓப்பன் ஆஃபிஸ் பேஸிக்கின் கட்டளை செயலியானது

Dim oDesktop oDesktop = CreateUnoService( "com.sun.star.frame.Desktop" ) MsgBox oDesktop.Dbg_SupportedInterfaces

என்ற விசுவல் பேஸிக்கின் கட்டளை செயலியை போன்று செய்தி பெட்டியை திரையில் பிரதிபலிக்கசெய்கின்றது

அலுவலக பயன்பாடுகளை கையாளுதல்

அதுமட்டுமின்றி com.sun.star.text.XTextDocument., com.sun.star.sheet.Spreadsheet DocumentSettings , com.sun.star.drawing.DrawingDocument., என்பன போன்ற சேவைகளின் மூலமாக அலுவலக பயன்பாடுகளின் செயல்களையும் ஓப்பன் ஆஃபிஸ் பேஸிக் கையாளுகின்றது