Strona 1 z 1
Jak korzystać z Dialog1 - wyskakujący formularz
: wt wrz 29, 2009 11:24 am
autor: nkab

- Dialog1.jpg (17.39 KiB) Przejrzano 3596 razy
Usłuję uruchomić kod z helpa:
kod:
Kod: Zaznacz cały
REM ***** BASIC *****
'Funkcja globalna dotycząca ładowania okien dialogowych
Function LoadDialog(nazwa_biblioteki as String, nazwa_okna as String, Optional oLibContainer)
Dim oLib as Object
Dim oLibDialog as Object
Dim oRuntimeDialog as Object
If IsMissing(oLibContainer ) then
oLibContainer = DialogLibraries
End If
oLibContainer.LoadLibrary(nazwa_biblioteki)
oLib = oLibContainer.GetByName(nazwa_biblioteki)
oLibDialog = oLib.GetByName(nazwa_okna)
oRuntimeDialog = CreateUnoDialog(oLibDialog)
LoadDialog() = oRuntimeDialog
End Function
'Wyświetlanie okna dialogowego
'globalna definicja zmiennych
Dim oDialog1 AS Object
Sub StartDialog1
BasicLibraries.LoadLibrary("Tools")
oDialog1 = LoadDialog("Standard", "Dialog1")
oDialog1.Execute() 'wyswietlenie okna
end sub
'Odczyt lub edycja właściwości formantów w programie BASIC
Sub Sample1
BasicLibraries.LoadLibrary("Tools")
oDialog1 = LoadDialog("Standard", "Dialog1")
oDialog1Model = oDialog1.Model 'pobranie modelu okna dialogowego
oLabel1 = oDialog1.GetControl("Label1") 'wyświetlenie tekstu Label1
MsgBox oLabel1.Text
oLabel1.Text = "Nowe pliki" 'ustawienie nowego tekstu dla formantu Label1
MsgBox oLabel1.Text
end sub
... ale w msgbox jest uwidocznione, że Label1 ma już tekst "Nowe pliki" a na obrazku widać, że jednak nie.
Wogóle jak wykorzystywać w makrach ten wyskaujący formularz, czy może jednak inaczej się to w praktyce rozwiązuje.
Andrzej.
Re: Jak korzystać z Dialog1 - wyskakujący formularz
: śr wrz 30, 2009 9:35 am
autor: Jan_J
Nie poprawię Twojego przykładu, zbyt rzadko tego używam. Ale jeżeli używam, to piszę kod generatora dialogu nie używając kreatorów. Takie prawicowo-nacjonalistyczne odchylenie. Tak jak to próbujesz -- też można; wtedy kod dialogu jest na trwałe zapisany w Twojej konfiguracji OOo, i tylko go stamtąd pobierasz.
Oto działający przykład:
Kod: Zaznacz cały
Sub Test()
fname = "file:///"
fname = OpenFileDialog(fname, "Otwórz plik")
fname = SaveFileDialog(fname, "Zapisz plik")
End Sub
function OpenFileDialog(fname, title) as string
sFilePickerArgs = Array(com.sun.star.ui.dialogs.TemplateDescription.FILEOPEN_SIMPLE)
oFilePicker = CreateUnoService( "com.sun.star.ui.dialogs.FilePicker" )
With oFilePicker
.Initialize ( sFilePickerArgs() )
.setDisplayDirectory ( fname )
.setControlProperty ("CancelButton", "Visible", true)
.setControlProperty ("HelpButton", "Visible", false)
.setTitle ( title )
End With
If oFilePicker.execute() Then
sFiles = oFilePicker.getFiles()
sFileURL = sFiles(0)
fname = sFileURL
Else
fname = ""
End If
oFilePicker.Dispose()
OpenFileDialog = fname
End function
function SaveFileDialog(fname$, title) as string
sFilePickerArgs = Array(com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_SIMPLE)
oFilePicker = CreateUnoService( "com.sun.star.ui.dialogs.FilePicker" )
With oFilePicker
.Initialize ( sFilePickerArgs() )
.setDisplayDirectory ( fname )
.setControlProperty ("CancelButton", "Visible", true)
.setControlProperty ("HelpButton", "Visible", false)
.setTitle ( title )
End With
If oFilePicker.execute() Then
sFiles = oFilePicker.getFiles()
sFileURL = sFiles(0)
fname = sFileURL
Else
fname = ""
End If
oFilePicker.Dispose()
SaveFileDialog = fname
End function
Re: Jak korzystać z Dialog1 - wyskakujący formularz
: śr wrz 30, 2009 2:18 pm
autor: jkwin
Sprobuj tak:
Kod: Zaznacz cały
Sub pokaz_dialog
DialogLibraries.LoadLibrary( "Standard" )
oDlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1) 'nazwa okna dialogowego- Dialog1
'oDLg.Title = "Tytuł dialogu"
oWpis = oDlg.Model.GetByName("Label1")
oWpis.Label= "Nowe pliki"
MsgBox oWpis.Label
oDlg.Execute()
End Sub
Re: Jak korzystać z Dialog1 - wyskakujący formularz
: czw paź 01, 2009 5:43 pm
autor: nkab
Co ja zrobiłbym bez Was.
Będę próbował, chociaż narazie Calc jest dla mnie obcy jednak wielu moich klientów
uzywa tylko Oo i poprostu zmuszony jestem go poznać.
Wyrazy wdzięczności
Andrzej.
Re: Jak korzystać z Dialog1 - wyskakujący formularz
: pt paź 02, 2009 3:16 pm
autor: Jan_J
... jednak wielu moich klientów uzywa tylko Oo
To mogłoby być ciekawe... jakaś syntetyczna notka na ten temat, oczywiście bez ujawniania żadnych konkretów, w dziale ,,Pogawędki''?
Re: Jak korzystać z Dialog1 - wyskakujący formularz
: pn paź 05, 2009 12:19 pm
autor: nkab
>>... jednak wielu moich klientów uzywa tylko Oo
>To mogłoby być ciekawe... jakaś syntetyczna notka na ten temat, oczywiście bez ujawniania żadnych konkretów,...
Poprostu powstało sporo małych jednoosobowych firemek, które jakoś muszą pomniejszać koszty
na starcie.
Co okna formularza Dialog1 to wystarczyło zmienne obiektowe dać jako globalne (na zewnątrz funkcji)
i już aktalizacja danych była, nazwijmy to, on-line.
Andrzej.