Tenesta SFDialogs.Dialog

Tenesta Dialog bidreg til handsaminga av dialogar oppretta med Basic lDialog Editor. Kvar fÞrekomst av den nÄverande klassen representerer éin dialogboks som vert vist for brukaren.

tip

Ein dialogboks kan visast i modal eller ikkje-modal modus.


I modal modus vert boksen vist og utfÞringa av makroprosessen vert utsett til ein av OK- eller Avbryt -knappane vert trykt pÄ. I mellomtida kan brukarhandlingar utfÞrt pÄ boksen lÞysa ut spesifikke handlingar.

I ikkje-modal modus er dialogvindauget «flytande» pÄ brukarskrivebordet, og kÞyringa av makroprosessen held fram som normalt. Eit ikkje-modalt dialogvindauge vert lukka nÄr den vert avslutta med Terminate()-metoden eller nÄr LibreOfficeDev-Þkta vert avslutta. Lukkeknappen for vindauget er inaktiv i ikkje-modale dialogvindauge.

Eit dialogvindauge forsvinn frÄ minnet etter eksplisitt avslutning.

tip

Tenesta SFDialogs.Dialog er i nĂŠrt slektskap med tenesta SFDialogs.DialogControl.


Oppkall og bruk av tenester

Before using the Dialog service the ScriptForge library needs to be loaded or imported:

note

‱ Basic macros require to load ScriptForge library using the following statement:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

‱ Python scripts require an import from scriptforge module:
from scriptforge import CreateScriptService


Tenesta Dialog vert kalla opp med metoden CreateScriptService. Ho krev tre posisjons-argument for Ă„ opna dialogvindauget.

Container: "GlobalScope" for fÞrehandsinstallerte bibliotek eller eit vindaugenamn som er definert av tenesta ScriptForge.UI. Standardverdien tom streng "" stÄr for det gjeldande dokumentet.

Bibliotek: Biblioteknamn (som skil mellom store og smÄ bokstavar) finst i behaldaren. Standardverdien er «Standard».

Dialognamn: Ein streng som skil mellom store og smÄ bokstavar, gjev dialogvindauget.

PRODUCTNAME Basic- og Python-eksempla nedanfor viser dialogvindauget dlgConsole, som hĂžyrer til det delte biblioteket ScriptForge:


      Dim oDlg As Object, lButton As Long
      Dim Container As String, Library As String, DialogName As String
      Set oDlg = CreateScriptService("SFDialogs.Dialog", "GlobalScope", "ScriptForge", "dlgConsole")
      ' 
 initialisering av kontrollelementa vert skrivne her

      lButton = oDlg.Execute()
      ' Standardmodus = Modal
      If lButton = oDlg.OKBUTTON Then
      ' 
 Handsama kontrollelementa og gjera det som trengst her
      End If
      oDlg.Terminate()
  

Eller med Python:


    dlg = CreateScriptService('SFDialogs.Dialog', 'GlobalScope', 'ScriptForge', 'dlgConsole')
    ' 
 initialisering av kontrollelementa vert skrivne her

    rc = dlg.Execute()
    ' Standardmodus er Modal
    if rc == dlg.OKBUTTON:
        ' 
 Handsama kontrollelementa og gjera det som trengst her
    dlg.Terminate()
  

Alternativt kan ein fĂžrekomst av Dialog hentast via tenesta SFDialogs.DialogEvent, viss dialogvindauget vart initiert med tenesta Dialog. DialogEvent returnerer den fĂžrekomsten av tenesta SFDialogs.Dialog som utlĂžyste hendinga.


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

Med Python


    def some_event(event: uno):
        dlg = CreateScriptService("SFDialogs.DialogEvent", event)
  

Merk at i dei tidlegare eksempla kan prefikset "SFDialogs." slÞyfast nÄr det passar best.

Eigenskapar

Namn

Skriveverna

Type

Beskriving

OKBUTTON

Ja

Integer

Verdi = 1. Der vart trykt pÄ ein OK-knapp.

CANCELBUTTON

Ja

Integer

Verdi = 0. Der vart trykt pÄ ein Avbryt-knapp.

Caption

Nei

String

Spesifiser tittelen pÄ dialogvindauget.

Height

Nei

Long

Spesifiser hÞgda pÄ dialogvindauget.

Modal

Ja

Boolean

Viser om dialogvindauget vert kĂžyrd i modal-modus.

Name

Ja

String

Namnet pÄ dialogvindauget

Page

Nei

Integer

Eit dialogvindauge kan ha fleire sider som brukaren kan gÄ gjennom steg for steg. Kva side i dialogvindauget som er gjeldande, vert definert i sideeigenskapen.

Visible

Nei

Boolean

Spesifiserer om dialogvindauget er synleg pÄ skrivebordet. Som standard er han ikkje synleg fÞr etter at metoden Execute() er utfÞrt.

XDialogModel

Ja

UNO
object

Det UNO-objektet som representer modellen for dialogvindauget. SjÄ detaljert informasjon i XControlModel og UnoControlDialogModel i dokumentasjonen for API-en ( Application Programming Interface).

XDialogView

Ja

UNO
object

Det UNO-objektet som representer modellen for dialogvindauget. SjÄ detaljert informasjon i XControlModel og UnoControlDialogModel i dokumentasjonen for API-en ( Application Programming Interface).

Width

Nei

Long

Spesifiser breidda pÄ dialogvindauget.


Hendingseigenskapar

Returnerer ein URI-streng med referanse til skriptet som utlÞyste hendinga. SjÄ spesifikasjonen i spesifikasjonane for skript-ramma.

Skriv inn eit namn for objektet

Skriveverna

Basic IDE-beskriving

OnFocusGained

Ja

NÄr han fÄr fokus

OnFocusLost

Ja

NÄr han mistar fokus

OnKeyPressed

Ja

Ved tastetrykk

OnKeyReleased

Ja

Etter tastetrykk

OnMouseDragged

Ja

MuserĂžrsle medan ein tast er trykt

OnMouseEntered

Ja

Mus innanfor

OnMouseExited

Ja

Mus utanfor

OnMouseMoved

Ja

Mus flytt

OnMousePressed

Ja

Museknapp trykt ned

OnMouseReleased

Ja

Museknapp sloppe


Metodar

Activate
Controls

EndExecute
Execute

GetTextsFromL10N
Terminate


Activate

Set fokus pÄ det gjeldande dialogvindauget. Returner Sann viss fokuseringa lukkast.

Denne metoden vert kalla opp frÄ eit dialogvindauge, ei kontrollhending eller nÄr det vert vist eit dialogvindauge i ikkje-modal modus.

Syntaks:

svc.Activate(): bool

Eksempel:


      Dim oDlg As Object
      Set oDlg = CreateScriptService(,, "myDialog")
      oDlg.Execute()
      ' ...
      oDlg.Activate()
   

BÄde Python- og LibreOfficeDev-Basic-eksempla gÄr ut frÄ at dialogvidauget er lagra i Standard-biblioteket i det gjeldande dokument.


     dlg = CreateScriptService(,,'myDialog')
     dlg.Execute()
     # ...
     dlg.Activate()
   

Controls

Returner anten:

Syntaks:

svc.Controls(): str[0..*]

svc.Controls(controlname: str): svc

Parametrar:

KontrolNamn: Eit gyldig kontrollnamn som ein streng (som skil mellom smÄ og store bokstavar). Viss denne manglar vert lista over kontrollnamn returnert som ei nullbasert matrise.

Eksempel:


      Dim myDialog As Object, myList As Variant, myControl As Object
      Set myDialog = CreateScriptService("SFDialogs.Dialog", , "Standard", "Dialog1")
      myList = myDialog.Controls()
      Set myControl = myDialog.Controls("myTextBox")
   

     dlg = CreateScriptService('SFDialogs.Dialog','', 'Standard', 'Dialog1')
     ctrls = dlg.Controls()
     ctrl = dlg.Controls('myTextBox')
   

EndExecute

Avsluttar visinga av eit modalt dialogvindauge og returnerer argumentet som returverdi for den gjeldande kĂžyrehandlinga Execute ().

EndExecute() er til vanleg Ă„ finna i handsaminga av ein makro som er utlĂžyst av ei hending i eit dialogvindauge eller eit kontrollelement.

Syntaks:

svc.EndExecute(returnvalue: int)

Parametrar:

returverdi: Verdien som vert sendt til den kĂžyrande Execute()-metoden.

Eksempel:

Med LibreOfficeDev Basic:


      Sub OnEvent(poEvent As com.sun.star.lang.EventObject)
          Dim oDlg As Object
          Set oDlg = CreateScriptService("SFDialogs.DialogEvent", poEvent)
          oDlg.EndExecute(ReturnValue := 25)
      End Sub
   

Med Python:


     from com.sun.star.lang import EventObject
     def on_event(event: EventObject):
         dlg = CreateScriptService("SFDialogs.DialogEvent", event)
         dlg.EndExecute(25)
   
tip

Overnemnde com.sun.star.lang.EventObject er valfrie. Slike merknadar hjelper til med Ă„ identifisere LibreOfficeDev Application Programming Interface (API).


Execute

Viser dialogvindauget og ventar, nÄr modal, pÄ avslutning av brukaren. Den returnerte verdien er anten:

For ikkje-modale dialogvindauge returnerer metoden alltid 0 og utfĂžringa av makroen held fram-.

Syntaks:

svc.Execute(modal: bool = True): int

Parametrar:

modal: Usann ved eit ikkje-modalt dialogvindauge. Standard = Sann .

Eksempel:

I dette Basic-eksempelet er dialogvindauget myDialog lagra i det gjeldande dokumentet sitt Standard-bibliotek.


      Dim oDlg As Object, lReturn As Long
      Set oDlg = CreateScriptService("SFDialogs.Dialog", , , "myDialog")
      lReturn = oDlg.Execute(Modal := False)
      Select Case lReturn
          ' ...
      End Select
   

Denne Python-koden viser det modale dialogvindauget DlgConvert i det delte Basic-biblioteket DlgConvert.


     dlg = CreateScriptService("SFDialogs.Dialog", 'GlobalScope', 'Euro', "DlgConvert")
     rc = dlg.Execute()
     if rc == dlg.CANCELBUTTON:
         # ...
   

GetTextsFromL10N

Replaces all fixed text strings in a dialog by their translated versions based on a L10N service instance. This method translates the following strings:

The method returns True if successful.

To create a list of translatable strings in a dialog use the AddTextsFromDialog method from the L10N service.

Syntaks:

svc.GetTextsFromL10N(l10n: svc): bool

Parametrar:

l10n: A L10N service instance from which translated strings will be retrieved.

Eksempel:

The following example loads translated strings and applies them to the dialog "MyDialog".

I Basic

     oDlg = CreateScriptService("Dialog", "GlobalScope", "Standard", "MyDialog")
     myPO = CreateScriptService("L10N", "/home/user/po_files/")
     oDlg.GetTextsFromL10N(myPO)
     oDlg.Execute()
   
I Python

     dlg = CreateScriptService("Dialog", "GlobalScope", "Standard", "MyDialog")
     myPO = CreateScriptService("L10N", "/home/user/po_files/")
     dlg.GetTextsFromL10N(myPO)
     dlg.Execute()
   
tip

Read the L10N service help page to learn more about how PO and POT files are handled.


Terminate

Avslutt tenesta Dialog i den gjeldande fĂžrekomsten. Returner Sann viss avslutninga lukkast.

Syntaks:

svc.Terminate(): bool

Eksempel:

Basic- og Python-eksempla nedanfor opnar dei ikkje-modale dialogvindauga DlgConsole og dlgTrace. Dei er lagra i dei delte biblioteka ScriptForge og Access2Base. Knappane for Ä lukka dialogvindauga er kopla frÄ, og eksplisitt avslutning vert utfÞrt pÄ slutten av ein kÞyrande prosess.

I dette eksempelet erstattar ein knapp i DlgConsole hemma lukking av vindauget:


     oDlg = CreateScriptService("SFDialogs.Dialog","GlobalScope","ScriptForge","DlgConsole")
     oDlg.Execute(modal:=False)
     Wait 5000
     oDlg.Terminate()
   

Med Python:


     from time import sleep
     dlg = CreateScriptService('SFDialogs.Dialog',"GlobalScope",'Access2Base',"dlgTrace")
     dlg.Execute(modal=False)
     sleep 5
     dlg.Terminate()
   
warning

Alle ScriptForge Basic-rutinane og -identifikatorane som vert innleidde med understrek «_» er reserverte for internt bruk. Dei er ikkje meint brukte i Basic-makroar.