SFDialogs.DialogControl zerbitzua

DialogControl zerbitzuak Basic-en elkarrizketa-koadroen editorearekin definitutako elkarrizketa-koadro baten kontrolak kudeatzen ditu. Uneko zerbitzuaren instantzia bakoitzak elkarrizketa-koadro bateko kontrol bakun bat ordezkatzen du.

Fokua elkarrizketa-koadroko kontrolek bistaratzen dituzten balioak eskuratzen eta ezartzen ezarrita dago. Formatua atzitzeko, XControlModel and XControlView propietateak erabiltzen dira.

Ikusi nola DialogControl.Value propietatearen eduki bakarra aldatzen den kontrol motaren arabera.

Arreta berezia eskaini zaie zuhaitz-kontrol motako kontrolei. Erraza da zuhaitz bat betetzea, bai adarrez adar, bat adar sorta oso bat aldi berean. Zuhaitz-kontrol bat estatikoki zein dinamikoki bete daiteke.

tip

SFDialogs.DialogControl zerbitzuak erlazio estua du SFDialogs.Dialog zerbitzuarekin.


Zerbitzuari deitzea

DialogControl zerbitzuari lehendik dagoen Dialog zerbitzu-instantzia batetik deitu behar zaio, Controls() metodoa erabilita. Elkarrizketa-koadroa SFDialogs.Dialog zerbitzuarekin hasi behar da.


      Dim myDialog As Object, myControl As Object
      Set myDialog = CreateScriptService("SFDialogs.Dialog", "GlobalScope", myLibrary, DialogName)
      Set myControl = myDialog.Controls("myTextBox")
      myControl.Value = "Elkarrizketa-koadroaren hasierako ordua: " & Now()
      myDialog.Execute()
      ' ... kontrolen uneko balioak prozesatzen ditu
      myDialog.Terminate()
   

     from time import localtime, strftime
     dlg = CreateScriptService('SFDialogs.Dialog', 'GlobalScope', lib_name, dlg_name)
     text = dlg.Controls('myTextBox')
     text.Value = "Elkarrizketa-koadroaren hasierako ordua: " + strftime("%a, %d %b %Y %H:%M:%S", localtime())
     dlg.Execute()
     # ... kontrolen uneko balioak prozesatzen ditu
     dlg.Terminate()
   

Horren ordez, kontrol-instantzia bat SFDialogs.DialogEvent zerbitzuaren bidez atzitu daiteke, betiere elkarrizketa-koadroa Dialog zerbitzuarekin hasi bada. DialogEvent zerbitzuak gertaera abiarazi duen SFDialogs.DialogControl klase-instantzia itzultzen du.


      Sub SomeEvent(ByRef poEvent As Object)
          Dim oControl As Object
          Set oControl = CreateScriptService("SFDialogs.DialogEvent", poEvent)
          ' ...
      End Sub
   

     def some_event(event: uno):
         ctrl = CreateScriptService('SFDialogs.DialogEvent', event)
         # ...
   

Kontuan izan aurreko adibideetan "SFDialogs." aurrizkia ez dela beharrezkoa.

Kontrol motak

DialogControl zerbitzua honako kontrol motetarako dago erabilgarri:

Propietateak

Izena

Irakurtzeko soilik

Mota

Honi aplikagarria:

Deskribapena

Cancel

Ez

Boolean

Button

Komando-botoi batek 'Utzi' botoi baten portaera duen ala ez zehazten du.

Caption

Ez

String

Button, CheckBox, FixedLine, FixedText, GroupBox, RadioButton

Kontrolari lotutako testua zehazten du.

ControlType

Bai

String

Dena

Goian zerrendatutako motetako bat.

CurrentNode

Ez

UNO
objektua

TreeControl

Zuhaitz-kontrolean hautatutako goreneko uneko nodoa. Begiratu XmutableTreeNode Application Programming Interface (API) dokumentazioan informazio xeheagorako.

note

Propietate hau LibreOffice 7.2 bertsiotik aurrera dago erabilgarri.


Default

Ez

Boolean

Button

Komando-botoi bat botoi lehenetsia ('Ados') den ala ez zehazten du.

Enabled

Ez

Boolean

Dena

Kontrola kurtsorearekin atzitu daitekeen ala ez zehazten du.

Format

Ez

String

DateField, TimeField, FormattedField

(irakurtzeko soilik)

Datak eta orduak bistaratzeko formatua zehazten du. Kate hauetako bat izan behar du:

Datetarako: "Standard (short)", "Standard (short YY)", "Standard (short YYYY)", "Standard (long)", "DD/MM/YY", "MM/DD/YY", "YY/MM/DD", "DD/MM/YYYY", "MM/DD/YYYY" , "YYYY/MM/DD", "YY-MM-DD", "YYYY-MM-DD".

Orduetarako: "24h short", "24h long", "12h short", "12h long".

ListCount

Bai

Long

ComboBox, ListBox

Zerrenda-koadro baten edo konbinazio-koadro baten errenkada kopurua zehazten du.

ListIndex

Ez

Long

ComboBox, ListBox

Zerrenda-koadro batean edo konbinazio-koadro batean zein elementu dagoen hautatuta zehazten du.

Locked

Ez

Boolean

ComboBox, CurrencyField, DateField, FileControl, FormattedField, ListBox, NumericField, PatternField, TextField, TimeField

Kontrola irakurtzeko soilik den zehazten du.

MultiSelect

Ez

Boolean

ListBox

Erabiltzaileak zerrenda-koadro batean hautapen anitz egin ditzakeen zehazten du.

Name

Bai

String

Dena

Kontrolaren izena.

Page

Ez

Integer

Dena

Elkarrizketa-koadro batek orri bat baino gehiago izan dezake. Erabiltzaileak banan banan joan daiteke batetik bestera. Elkarrizketa-koadroaren objektuaren 'Page' propietateak koadroaren zein orri dagoen aktibo definitzen du.

Kontrol baten 'Page' propietateak kontrola elkarrizketa-koadroko zein orritan egongo den ikusgai definitzen du.

Parent

Bai

Dialog
zerbitzua

Dena

SFDialogs.Dialog klase-objektuaren instantzia gurasoa.

Picture

Ez

String

Button, ImageControl

Zehaztutako kontrolean bistaratuko den bit-mapa edo beste motaren bateko grafikoa duen fitxategi-izena zehazten du. Fitxategi-izenak ScriptForge.FileSystem zerbitzuaren FileNaming atributuarekin bat etorri behar du.

RootNode

Bai

UNO
objektua

TreeControl

Erro-nodorik behekoena ordezkatzen duen objektu bat (normalean erro-nodo bakar bat dago). Begiratu XmutableTreeNode Application Programming Interface (API) dokumentazioan informazio xeheagorako.

note

Propietate hau LibreOffice 7.2 bertsiotik aurrera dago erabilgarri.


RowSource

Ez

Array of strings

ComboBox, ListBox

Konbinazio-koadroan edo zerrenda-koadroan dauden datuak zehazten ditu.

Text

Bai

String

ComboBox, FileControl, FormattedField, PatternField, TextField

Kontrolak erakusten duen testua atzitzeko aukera ematen du.

TipText

Ez

String

Dena

Saguaren erakuslea kontrolaren gainean jartzen denean agertzen den aholkuaren testua zehazten du.

TripleState

Ez

Boolean

CheckBox

Kontrol-laukia grisean agertu daitekeen ala ez zehazten du.

Value

Ez

Variant

Begiratu Value propietatea

Visible

Ez

Boolean

Dena

Kontrola ezkutuan dagoen ala ikusgai dagoen zehazten du.

XControlModel

Bai

UNO
objektua

Dena

Kontrol-eredua ordezkatzen duen UNO objektua. Begiratu APIaren dokumentazioko XControlModel eta UnoControlDialogModel informazio xeheagorako.

XControlView

Bai

UNO
objektua

Dena

Kontrol-bista ordezkatzen duen UNO objektua. Begiratu APIaren dokumentazioko XControl eta UnoControlDialog informazio xeheagorako.

XTreeDataModel

Bai

UNO
objektua

TreeControl

Zuhaitz-kontrolaren datu-eredua ordezkatzen duen UNO objektua. Begiratu APIaren dokumentazioko XMutableTreeDataModel informazio xeheagorako.

note

Propietate hau LibreOffice 7.2 bertsiotik aurrera dago erabilgarri.



Value propietatea

Kontrol mota

Mota

Deskribapena

Button

Boolean

Txandakatze-botoietarako soilik

CheckBox

Boolearra edo osoa

0, False: markatu gabea
1, True: markatua
2: grisean, ezezaguna

ComboBox

String

Hautatutako balioa. ListIndex propietatea ordezko aukera bat da.

CurrencyField

Zenbakia

DateField

Date

FileControl

String

ScriptForge.FileSystem zerbitzuaren FileNaming propietatearen arabera formatua eman zaion fitxategi-izen bat.

FormattedField

Katea edo zenbakia

ListBox

Kate edo kateen matrizea

Hautatutako errenkada(k) eskalar gisa edo matrize gisa, MultiSelect atributuaren arabera.

NumericField

Zenbakia

PatternField

String

ProgressBar

Zenbakia

Muga aurredefinituen barruan egon behar du

RadioButton

Boolean

Botoi bakoitzak bere izen propioa du. Elkarrekin lotuta daude beren TAB kokaguneak elkarren albokoak badira. Irrati-botoi baten balioa True bada, erlazionatutako gainerako botoiei automatikoki False ezarriko zaie.

ScrollBar

Zenbakia

Muga aurredefinituen barruan egon behar du

TextField

String

Eremuan ageri den testua

TimeField

Date


Gertaeraren propietateak

Gertaerak abiarazi duen scriptaren erreferentzia duen URI kate bat itzultzen du. Begiratu espezifikazioa scriptgintzako lan-markoaren URI espezifikazioan.

note

Gertaera-propietate hauek LibreOffice 7.2 bertsiotik aurrera daude erabilgarri.


Izena

Irakurtzeko soilik

Deskripzioa, Basic IDEan etiketatu den moduan

OnActionPerformed

Bai

Exekutatu ekintza

OnAdjustmentValueChanged

Bai

Doitzean

OnFocusGained

Bai

Fokua hartzean

OnFocusLost

Bai

Fokua galtzean

OnItemStateChanged

Bai

Elementuaren egoera aldatzean

OnKeyPressed

Bai

Tekla sakatzean

OnKeyReleased

Bai

Tekla askatzean

OnMouseDragged

Bai

Tekla sakatuta dagoenean sagua arrastatzean

OnMouseEntered

Bai

Sagua barnean dagoenean

OnMouseExited

Bai

Sagua kanpoan dagoenean

OnMouseMoved

Bai

Sagua mugitzean

OnMousePressed

Bai

Saguaren botoia sakatzean

OnMouseReleased

Bai

Saguaren botoia askatzean

OnNodeExpanded

Ez

(Ez Basic IDEan) hedatze-botoia zuhaitz-kontroleko nodo batean sakatzen denean

OnNodeSelected

Ez

(Ez Basic IDEan) zuhaitz-kontroleko nodo bat hautatzen denean

OnTextChanged

Bai

Testua aldatzean


Metodoak

DialogControl zerbitzuaren metodoen zerrenda

AddSubNode
AddSubTree

CreateRoot
FindNode

SetFocus
WriteLine


note

Metodo hauek LibreOffice 7.2 bertsiotik aurrera daude erabilgarri.


AddSubNode

Sortu eta itzuli zuhaitzaren nodo berria, nodo guraso baten azpiko UNO objektu gisa. Begiratu XMutableTreeNode Application Programming Interface (API) dokumentazioan informazio xeheagorako.

Metodo hau elkarrizketa-koadroa bistaratu baino lehen deitu daiteke, hasierako zuhaitza eraikitzeko. Zuhaitza dinamikoki osatzeko ere deitu daiteke, bai elkarrizketa-koadro batetik bai kontrol-gertaera batetik (OnNodeExpanded gertaera erabilita).

Sintaxia:

svc.AddSubNode(parentnode: uno, displayvalue: str, opt datavalue: any): uno

Parametroak:

parentnode: Nodo motako UNO objektu bat, com.sun.star.awt.tree.XMutableTreeNode motakoa.

displayvalue: Zuhaitzaren kontrol-laukian ageri den testua.

datavalue: Nodo berriari lotutako edozein balio. datavalue kate bat, data bat edo zenbaki bat izan daiteke. Aplikagarria ez bada, ez erabili argumentu hau.

Adibidea:

LibreOffice Basic eta Python adibideek uneko dokumentuaren myDialog elkarrizketa-koadroa Standard liburutegitik hartzen dute.


      Dim oDlg As Object, myTree As Object, myNode As Object, theRoot As Object
      Set oDlg = CreateScriptService("Dialog",,, "myDialog")
      Set myTree = oDlg.Controls("myTreeControl")
      Set theRoot = myTree.CreateRoot("Tree top")
      Set myNode = myTree.AddSubNode(theRoot, "A branch ...")
   

     dlg = CreateScriptService('SFDialogs.Dialog', None, None, 'myDialog')
     tree = dlg.Controls('myTreeControl')
     root = tree.CreateRoot('Tree top')
     node = tree.AddSubNode(root, 'A branch ...')
   

AddSubTree

True (egia) itzultzen du nodo guraso baten mendeko azpizuhaitz bat zuhaitz-kontrol batean ongi txertatu daitekeenean. Nodo gurasok dagoeneko nodo haurrak baditu metodo honi deitu baino lehen, nodo haurrak ezabatu egingo dira.

Metodo hau elkarrizketa-koadroa bistaratu baino lehen deitu daiteke, hasierako zuhaitza eraikitzeko. Zuhaitza dinamikoki osatzeko ere deitu daiteke, bai elkarrizketa-koadro batetik bai kontrol-gertaera batetik (OnNodeExpanded gertaera erabilita).

Sintaxia:

svc.AddSubTree(parentnode: uno, flattree: any, opt withdatavalue: bool): bool

Parametroak:

parentnode: Nodo motako UNO objektu bat, com.sun.star.awt.tree.XMutableTreeNode motakoa.

flattree: Bi dimentsiotako matrize bat, bistaratze-balioak dituen zutabeetan ordenatuta. Horrelako matrize bat bidaltzeko, erabili GetRows metodoa SFDatabases.Database zerbitzuan aplikatuta. Bistaratuko den testua duen matrize-elementu bat Empty edo Null bada, ez da azpinodo berririk sortuko eta errenkadaren gainerakoa saltatu egingo da.


      Zuhaitz laua    >>>>    Emaitza gisa sortutako azpizuhaitza
      A1	B1	C1             |__   A1	
      A1	B1	C2                   |__   B1
      A1	B2	C3                         |__  C1
      A2	B3	C4                         |__  C2
      A2	B3	C5                   |__   B2
      A3	B4	C6                         |__  C3
                             |__   A2
                                   |__   B3
                                         |__  C4
                                         |__  C5
                             |__   A3
                                   |__   B4
                                         |__  C6
   

withdatavalue: Balio lehenetsia den False erabiltzen denean, flattree matrizeko zutabe bakoitzak zuhaitz-kontrolean bistaratuko diren testuak ditu. Balioa True bada, bistaratuko diren testuak (displayvalue) 0, 2, 4... zutabeetan daude eta datu-balioak (datavalue) 1, 3, 5... zutabeetan daude.

Adibidea:


      Dim myTree As Object, theRoot As Object, oDb As Object, vData As Variant
      Set myTree = myDialog.Controls("myTreeControl")
      Set theRoot = myTree.CreateRoot("By product category")
      Set oDb = CreateScriptService("SFDatabases.Database", "/home/.../mydatabase.odb")
      vData = oDb.GetRows("SELECT [Category].[Name], [Category].[ID], [Product].[Name], [Product].[ID] " _
          & "FROM [Category], [Product] WHERE [Product].[CategoryID] = [Category].[ID] " _
          & "ORDER BY [Category].[Name], [Product].[Name]")
      myTree.AddSubTree(theRoot, vData, WithDataValue := True)
   

     SQL_STMT = "SELECT [Category].[Name], [Category].[ID], [Product].[Name], [Product].[ID] \
         FROM [Category], [Product] WHERE [Product].[CategoryID] = [Category].[ID] \
         ORDER BY [Category].[Name], [Product].[Name]"
     tree = dlg.Controls('myTreeControl')
     root = tree.CreateRoot('By Product category')
     db = CreateScriptService('SFDatabases.Database', '/home/.../mydatabase.odb')
     sub_tree = db.GetRows(SQL_STMT)
     tree.AddSubTree(root, sub_tree, withdatavalue=True)
   

CreateRoot

Zuhaitz-kontrolaren erro-nodo berri bat itzultzen du, com.sun.star.awt.tree.XMutableTreeNode motako UNO objektu mota gisa. Zuhaitz-erro berria lehendik dauden erro-nodoen aurrean txertatuko da. Begiratu XMutableTreeNode Application Programming Interface (API) dokumentazioan informazio xeheagorako.

Metodo honi elkarrizketa-koadroa bistaratu baino lehen deitu dakioke, hasierako zuhaitza eraikitzeko. Zuhaitza dinamikoki osatzeko ere deitu dakioke elkarrizketa-koadro batetik edo kontrol-gertaera batetik.

Sintaxia:

svc.CreateRoot(displayvalue: str, opt datavalue: any): uno

Parametroak:

displayvalue: Zuhaitzaren kontrol-koadroan ageri den testua.

datavalue: Nodo berriari lotutako edozein balio. datavalue kate bat, data bat edo zenbaki bat izan daiteke. Aplikagarria ez bada, ez erabili argumentu hau.

Adibidea:


      Dim myTree As Object, myNode As Object
      Set myTree = myDialog.Controls("myTreeControl")
      Set myNode = myTree.CreateRoot("Tree starts here ...")
   

     tree = dlg.Controls('myTreeControl')
     node = tree.CreateRoot('Tree starts here ...')
   

FindNode

Zuhaitza zeharkatzen du eta, modu errekurtsiboan eta errotik hasita, irizpideren bat betetzen duen nodo bat aurkitzen du. Aski da bat etortze batekin, bai bistaratze-balioa displayvalue ereduarekin bat etortzea bai bere datu-balioa datavalue parametroarekin bat etortzea. Konparazioak maiuskulak/minuskulak kontuan hartu ditzakete edo ez. Bat datorren lehen agerraldia com.sun.star.awt.tree.XMutableTreeNode nodo motako UNO objektu gisa itzuliko da. Begiratu XMutableTreeNode Application Programming Interface (API) dokumentazioan informazio xeheagorako.

Aurkitzen ez bada, metodoak Nothing itzuliko du, IsNull() funtzio integratuarekin probatuko dena.

Metodo honi elkarrizketa-koadroa bistaratu baino lehen deitu dakioke, hasierako zuhaitza eraikitzeko. Elkarrizketa-koadro batetik edo kontrol-gertaera batetik ere deitu dakioke.

Sintaxia:

svc.FindNode(displayvalue: str = '', opt datavalue: any, casesensitive = False): uno

Parametroak:

Bi argumentutako bat, displayvalue edo datavalue, zehaztu behar da. Biak badaude, bat etortze bakarra aski da nodoa hautatzeko..

displayvalue: Bat etortzeetarako erabiliko den eredua. Begiratu SF_String.IsLike() metodoa erabili daitezkeen balizko komodinak ezagutzeko. Zero luzerako kate baten berdina bada (modu lehenetsia), bistaratze-balioa ez da bilatuko.

datavalue: Nodo berriari lotutako edozein balio. datavalue kate bat, data bat edo zenbaki bat izan daiteke. Aplikagarria ez bada, ez erabili argumentu hau.

casesensitive: Balio lehenetsia False da.

Adibidea:


      Dim myTree As Object, myNode As Object
      Set myTree = myDialog.Controls("myTreeControl")
      Set myNode = myTree.FindNode("*Sophie*", CaseSensitive := True)
   

     tree = dlg.Controls('myTreeControl')
     node = FindNode('*Sophie*', casesensitive=True)
     if node is None:
         # ...
   

SetFocus

Ezarri fokua kontrolean. True itzuliko du fokuratzea ongi gauzatu bada.

Metodo honi sarritan elkarrizketa-koadro batetik edo kontrol-gertaera batetik deitzen zaio.

Sintaxia:

svc.SetFocus(): bool

Adibidea:


      Dim oControl As Object
      Set oDlg = CreateScriptService("SFDialogs.Dialog",,, "myDialog")
      Set oControl = oDlg.Controls("thisControl")
      oControl.SetFocus()
    

      dlg = CreateScriptService('Dialog', None, None, 'myDialog')
      ctrl = dlg.Controls('thisControl')
      ctrl.SetFocus()
    

WriteLine

Gehitu lerro bat lerro anitzeko testu-eremu baten amaierari. Lerro berriaren karakterea txertatuko da halakoa behar denean. Metodoak True itzuliko du ongi gauzatzen denean.

Errore bat gertatuko da kontrola ez bada TextField motakoa edo lerro anitzekoa ez bada.

Sintaxia:

svc.WriteLine(opt line: str): bool


      oControl.WriteLine([Line As String]) As Boolean
   

Parametroak:

Line: Txertatuko den katea. Balio lehenetsia lerro hutsa da.

Adibidea:


      Dim oDlg As Object, oControl As Object
      Set oDlg = CreateScriptService("SFDialogs.Dialog",,, "myDialog")
      Set oControl = oDlg.Controls("thisControl")
      oControl.WriteLine("a new line")
   

     dlg = CreateScriptService('SFDialogs.Dialog', None, None, 'myDialog')
     ctrl = dlg.Controls('thisControl')
     ctr.WriteLine("a new line")
   
warning

Aurrizki gisa azpimarra bat ("_") duten ScriptForge Basic errutina edo identifikatzaile guztiak barneko erabilerarako erreserbatuta daude. Ez daude Basic makroetan erabiltzeko pentsatuta.


Emaguzu laguntza!