Conteúdo

# Serviço.ScriptForge Basic

O serviço ScriptForge.Basic disponibiliza um conjunto de métodos LibreOffice Basic para serem executados num contexto Python. Os métodos do serviço Basic reproduzem exatamente a sintaxe e o comportamento das funções integradas do Basic.

Exemplo típico:

       bas.MsgBox('Exibir este texto numa caixa de mensagem a partir de um script Python')

O serviço ScriptForge.Basic está limitado a scripts em Python.

## Chamada de serviço

Antes de utilizar o serviço Basic, importe o método CreateScriptService() do módulo scriptforge:

        from scriptforge import CreateScriptService
        bas = CreateScriptService("Basic")

## Propriedades

Nome | Somente leitura | Tipo | Descrição
--- | --- | --- | ---
MB_OK, MB_OKCANCEL, MB_RETRYCANCEL, MB_YESNO, MB_YESNOCANCEL | Sim | Integer | Valores: 0, 1, 5, 4, 3
MB_ICONEXCLAMATION, MB_ICONINFORMATION, MB_ICONQUESTION, MB_ICONSTOP | Sim | Integer | Valores: 48, 64, 32, 16
MB_ABORTRETRYIGNORE, MB_DEFBUTTON1, MB_DEFBUTTON2, MB_DEFBUTTON3 | Sim | Integer | Valores: 2, 128, 256, 512
IDABORT, IDCANCEL, IDIGNORE, IDNO, IDOK, IDRETRY, IDYES | Sim | Integer | Valores: 3, 2, 5, 7, 1, 4, 6 Constantes que indicam o botão selecionado MsgBox.
StarDesktop | Sim | Objeto UNO | Devolve o objeto StarDesktop que representa a aplicação LibreOffice.
ThisComponent | Sim | Objeto UNO | Se o componente atual se referir a um documento LibreOffice, este método devolve o objeto UNO que representa o documento. Esta propriedade devolve None quando o componente atual não corresponde a um documento.
ThisDatabaseDocument | Sim | Objeto UNO | Se o script estiver a ser executado a partir de um documento Base ou de qualquer um dos seus subcomponentes, este método devolve o componente principal da instância Base. Caso contrário, esta propriedade devolve None.

Lista de métodos do serviço básico
CDate CDateFromUnoDateTime CDateToUnoDateTime ConvertFromUrl (*) ConvertToUrl (*) CreateUnoService CreateUnoStruct (*) DateAdd | DateDiff DatePart DateValue Format GetDefaultContext GetGuiType (*) GetPathSeparator (*) GetSystemTicks | GlobalScope.BasicLibraries GlobalScope.DialogLibraries InputBox (*) MsgBox (*) Now RGB Xray

Existem alternativas em Python para os métodos assinalados com (*).

## CDate

Converte uma expressão numérica ou uma cadeia de caracteres num objeto nativo do Python do tipo datetime.datetime.

Este método disponibiliza a função incorporada do Basic CDate para scripts Python.

### Sintaxe:

svc.CDate(expression: any): obj

### Parâmetros:

expression: uma expressão numérica ou uma cadeia de caracteres que representa uma data.

Ao converter uma expressão de cadeia de caracteres, a data e a hora devem ser introduzidas de acordo com um dos padrões de aceitação de data definidos para a sua configuração de localização (consulte LibreOffice - Preferências Ferramentas - Opções - Idiomas e Configurações Regionais - Geral) ou no formato de data ISO (atualmente, apenas o formato ISO com hífens, por exemplo, «2012-12-31», é aceite). Nas expressões numéricas, os valores à esquerda da vírgula representam a data, a partir de 31 de dezembro de 1899. Os valores à direita da vírgula representam a hora.

### Exemplo:

        d = bas.CDate(1000.25)
        bas.MsgBox(str(d)) # 1902-09-26 06:00:00
        bas.MsgBox(d.year) # 1902

## CDateFromUnoDateTime

Converte uma representação de data/hora do UNO num objeto nativo do Python do tipo datetime.datetime.

### Sintaxe:

svc.CDateFromUnoDateTime(unodate: uno): obj

### Parâmetros:

unodate: Um objeto de data/hora UNO de um dos seguintes tipos: com.sun.star.util.DateTime, com.sun.star.util.Date ou com.sun.star.util.Time

### Exemplo:

O exemplo seguinte cria um objeto com.sun.star.util.DateTime e converte-o num objeto Python datetime.datetime.

        uno_date = bas.CreateUnoStruct('com.sun.star.util.DateTime')
        uno_date.Year = 1983
        uno_date.Month = 2
        uno_date.Day = 23
        new_date = bas.CDateFromUnoDateTime(uno_date)
        bas.MsgBox(str(new_date)) # 1983-02-23 00:00:00

## CDateToUnoDateTime

Converte uma representação de data num objeto com.sun.star.util.DateTime.

### Sintaxe:

svc.CDateToUnoDateTime(date: obj): uno

### Parâmetros:

data: Um objeto de data/hora em Python de um dos seguintes tipos: datetime.datetime, datetime.date, datetime.time, float (time.time) ou time.struct_time.

### Exemplo:

        from datetime import datetime
        current_datetime = datetime.now()
        uno_date = bas.CDateToUnoDateTime(current_datetime)
        bas.MsgBox(str(uno_date.Year) + "-" + str(uno_date.Month) + "-" + str(uno_date.Day))

## ConvertFromUrl

Devolve um nome de ficheiro com o caminho do sistema para o URL file: indicado.

### Sintaxe:

svc.ConvertFromUrl(url: str): str

### Parâmetros:

url: Um URL file: absoluto.

### Tipo de retorno:

Um nome de ficheiro no caminho do sistema.

### Exemplo:

        filename = bas.ConvertFromUrl( "file:///C:/Program%20Files%20(x86)/LibreOffice/News.txt" )
        bas.MsgBox(filename)

O módulo uno O método fileUrlToSystemPath() devolve um caminho do sistema utilizando uma sintaxe idêntica.

        import uno
        filename = uno.fileUrlToSystemPath( "file:///C:/Program%20Files%20(x86)/LibreOffice/News.txt" )
        bas.MsgBox(filename)

## ConvertToUrl

Devolve um URL file: para o caminho de sistema indicado.

### Sintaxe:

svc.ConvertToUrl(systempath: str): str

### Parâmetros:

systempath: Um nome de ficheiro do sistema na forma de uma cadeia de caracteres.

### Tipo de retorno:

Um URL file: na forma de uma cadeia de caracteres.

### Exemplo:

        url = bas.ConvertToUrl( 'C:\Program Files(x86)\LibreOffice\News.txt' )
        bas.MsgBox(url)

O método systemPathToFileUrl() do módulo uno devolve um URL de ficheiro para o caminho de sistema indicado.

        from uno import systemPathToFileUrl as ConvertToUrl
        filename = ConvertToUrl( 'C:\Program Files(x86)\LibreOffice\News.txt' )
        bas.MsgBox(filename)

## CreateUnoService

Instancia um serviço UNO com o ProcessServiceManager.

### Sintaxe:

svc.CreateUnoService(servicename: str): uno

### Parâmetros:

servicename: Um nome de serviço totalmente qualificado, como com.sun.star.ui.dialogs.FilePicker ou com.sun.star.sheet.FunctionAccess.

### Exemplo:

        dsk = bas.CreateUnoService('com.sun.star.frame.Desktop')

## CreateUnoStruct

Devolve uma instância de uma estrutura UNO do tipo especificado.

### Sintaxe:

svc.CreateUnoStruct(unostructure: str): uno

### Parâmetros:

unostrutura: Um nome de estrutura totalmente qualificado, como com.sun.star.beans.Property ou com.sun.star.util.DateTime.

### Exemplo:

        date_struct = CreateUnoStruct('com.sun.star.util.DateTime')

módulo Uno O método createUnoStruct() cria uma instância de um tipo de estrutura Uno.

        import uno
        p = uno.createUnoStruct( 'com.sun.star.beans.Property' )
        bas.MsgBox(p)

## DateAdd

Adiciona um intervalo de tempo a uma determinada data/hora um determinado número de vezes e devolve a data resultante.

### Sintaxe:

svc.DateAdd(interval: str, number: num, date: datetime): datetime

### Parâmetros:

interval: Uma expressão de cadeia de caracteres da tabela seguinte, que especifica o intervalo de data ou hora.

intervalo (valor de cadeia de caracteres) | Explicação
--- | ---
yyyy | Ano
q | Trimestre
m | Mês
y | Dia do ano
w | Dia da semana
ww | Semana do ano
d | Dia
h | Hora
n | Minuto
s | Segundo

number: Uma expressão numérica que especifica com que frequência o valor do interval será somado, se for positivo, ou subtraído, se for negativo.

data: Um determinado valor datetime.datetime; o valor interval será adicionado number vezes a este valor datetime.datetime.

### Tipo de retorno:

Um valor datetime.datetime.

### Exemplo:

        dt = datetime.datetime(2004, 1, 31)
        dt = bas.DateAdd("m", 1, dt)
        print(dt)

## DateDiff

Devolve o número de intervalos de data ou hora entre dois valores de data/hora especificados.

### Sintaxe:

svc.DateDiff(interval: str, date1: datetime, date2: datetime, firstdayofweek = 1, firstweekofyear = 1): int

### Parâmetros:

interval: Uma expressão de cadeia de caracteres que especifica o intervalo de datas, conforme detalhado no método DateAdd acima.

date1, date2: Os dois valores datetime.datetime a comparar.

firstdayofweek: Um parâmetro opcional que especifica o dia em que começa a semana.

valor do primeiro dia da semana | Explicação
--- | ---
0 | Utilizar o valor do sistema
1 | domingo (padrão)
2 | segunda-feira
3 | terça-feira
4 | quarta-feira
5 | quinta-feira
6 | sexta-feira
7 | sábado

firstweekofyear: Um parâmetro opcional que especifica a semana inicial de um ano.

valor da primeira semana do ano | Explicação
--- | ---
0 | Utilizar o valor do sistema
1 | Semana 1 é a semana de 1 de janeiro (padrão)
2 | Semana 1 é a primeira semana que contém quatro ou mais dias desse ano
3 | Semana 1 é a primeira semana que só contém dias do novo ano

### Tipo de retorno:

Um número.

### Exemplo:

        date1 = datetime.datetime(2005,1, 1)
        date2 = datetime.datetime(2005,12,31)
        diffDays = bas.DateDiff('d', date1, date2)
        print(diffDays)

## DatePart

A função DatePart devolve uma parte específica de uma data.

### Sintaxe:

svc.DatePart(interval: str, date: datetime, firstdayofweek = 1, firstweekofyear = 1): int

### Parâmetros:

interval: Uma expressão de cadeia de caracteres que especifica o intervalo de datas, conforme detalhado no método DateAdd acima.

date: A data e hora a partir da qual o resultado é calculado.

firstdayofweek, firstweekofyear: parâmetros opcionais que especificam, respetivamente, o dia inicial da semana e a semana inicial do ano, conforme detalhado no método DateDiff acima.

### Tipo de retorno:

A parte extraída para a data/hora indicada.

### Exemplo:

        print(bas.DatePart("ww", datetime.datetime(2005,12,31)
        print(bas.DatePart('q', datetime.datetime(1999,12,30)

## DateValue

Calcula um valor de data a partir de uma cadeia de caracteres de data.

### Sintaxe:

svc.DateValue(date: str): datetime

### Parâmetros:

data: Uma cadeia de caracteres que contém a data que será convertida num objeto Date.

A cadeia de caracteres passada para DateValue deve ser expressa num dos formatos de data definidos pela sua configuração de localização (ver LibreOffice - Preferências Ferramentas - Opções - Idiomas e configurações regionais - Geral) ou utilizando o formato de data ISO «aaaa-mm-dd» (ano, mês e dia separados por hífens).

### Tipo de retorno:

A data calculada.

### Exemplo:

        dt = bas.DateValue("23-02-2011")
        print(dt)

## Format

Converte um número numa cadeia de caracteres e, em seguida, formata-o de acordo com o formato que especificar.

### Sintaxe:

svc.Format(expression: any, format = ''): str

### Parâmetros:

expressão: Expressão numérica que pretende converter numa cadeia de caracteres formatada.

formato: String que especifica o código de formatação do número. Se formato for omitido, a função Format funciona como a função Str() da linguagem Basic da LibreOffice .

### Tipo de retorno:

Sequência de texto.

### Códigos de formatação

Em BASIC, um código format pode ser dividido em três secções separadas por ponto e vírgula. A primeira parte define o formato para valores positivos, a segunda parte para valores negativos e a terceira parte para o zero. Se especificar apenas um código format, este aplica-se a todos os números.

Pode definir a localização utilizada para controlar a formatação de números, datas e moedas no LibreOffice Basic em LibreOffice - Preferências Ferramentas - Opções - Idiomas e configurações regionais - Geral. Nos códigos de formatação do Basic, o ponto decimal (.) é sempre utilizado como marcador de posição para o separador decimal definido na sua configuração regional e será substituído pelo caractere correspondente.

O mesmo é aplicável às configurações regionais para data, hora e moeda. O código de formatação do Basic será interpretado e mostrado de acordo com a configuração regional do utilizador.

A lista seguinte descreve os códigos que pode utilizar para formatar uma expressão numérica:

Código | Descrição
--- | ---

0

Se a expressão tiver um algarismo na posição do 0 no código formato, esse algarismo é apresentado; caso contrário, é apresentado um zero.

Se a expressão tiver menos dígitos do que o número de zeros no código de formato (em ambos os lados da vírgula decimal), são apresentados zeros à esquerda ou à direita. Se a expressão tiver mais dígitos à esquerda do separador decimal do que o número de zeros no código formato, os dígitos adicionais são apresentados sem formatação.

As casas decimais na expressão são arredondadas de acordo com o número de zeros que aparecem após o separador decimal no código formato.

#

Se a expressão contiver um algarismo na posição do marcador de lugar # no código formato, esse algarismo é apresentado; caso contrário, nada é apresentado nessa posição.

Este símbolo funciona como o 0, com a diferença de que os zeros à esquerda ou à direita não são apresentados se houver mais caracteres # no código formato do que dígitos na expressão. Apenas os dígitos relevantes da expressão são apresentados.

. (period)

O marcador decimal determina o número de casas decimais à esquerda e à direita do separador decimal.

Se o código format contiver apenas marcadores de posição # à esquerda deste símbolo, os números inferiores a 1 começam com um separador decimal. Para apresentar sempre um zero à esquerda nos números fracionários, utilize 0 como marcador de posição para o primeiro dígito à esquerda do separador decimal.

A utilização do ponto como separador de milhares e decimal depende da configuração regional. Ao introduzir um número no código fonte do Basic, utilize sempre um ponto como separador decimal. O carácter mostrado como separador decimal depende do formato numérico nas definições do sistema.

% | Multiplica a expressão por 100 e insere o símbolo de percentagem (%) no local onde a expressão aparece no código formato.

E- E+ e- e+

Se o código format contiver pelo menos um marcador de posição para dígitos (0 ou #) à direita do símbolo E-, E+, e- ou e+, a expressão é formatada no formato científico ou exponencial. A letra E ou e é inserida entre o número e o expoente. O número de marcadores de posição para dígitos à direita do símbolo determina o número de dígitos no expoente.

Se o expoente for negativo, é mostrado um sinal negativo antes de um expoente com E-, E+, e-, e+. Se o expoente for positivo, só é mostrado o sinal de mais antes dos expoentes com E+ ou e+.

- + $ ( ) space | Um sinal de mais (+), de menos (-), o símbolo do dólar ($), um espaço ou parênteses introduzidos diretamente no código format são apresentados como caracteres literais.

\

Para mostrar diferentes dos que aqui estão listados, terá de precedê-los com uma barra invertida (\) ou colocá-los entre aspas (" ").

A barra invertida exibe o caractere seguinte no código formato.

Os caracteres no código formato que têm um significado especial só podem ser apresentados como caracteres literais se forem precedidos por uma barra invertida. A própria barra invertida não é apresentada, a menos que se introduza uma barra invertida dupla (\\) no código de formato.

Os caracteres que têm de ser precedidos por uma barra invertida no código do formato para serem mostrados como caracteres literais são os caracteres de formatação da data e hora (a, c, d, h, m, n, p, q, s, t, w, y, /, :), caracteres de formatação numérica (#, 0, %, E, e, vírgula, ponto final) e os caracteres de formatação de cadeias (@, &, <, >, !).

### Formatos predefinidos

Também pode utilizar os seguintes formatos numéricos predefinidos. Com exceção de «Número geral», todos os códigos de formato predefinidos apresentam o número como um número decimal com duas casas decimais.

Se utilizar formatos pré-definidos, o nome do formato terá de estar entre aspas.

Código | Descrição
--- | ---
"<" | Converte expressão para minúsculas.
">" | Converte expressão para maiúsculas.
"c" or "General Date" | Devolve a expressão numérica no formato de data curto, opcionalmente com «H:MM:SS AM/PM». Se expressão for uma cadeia de caracteres, devolve a cadeia de caracteres.
"n" | Devolve a parte dos minutos da expressão numérica, com 1 ou 2 dígitos.
"nn" | Devolve o minuto da expressão numérica com dois dígitos.
"w" | Devolve o dia da semana correspondente à expressão numérica. 1 corresponde ao domingo e 7 ao sábado.
"General Number" | Devolve a expressão numérica com 12 dígitos (0.############).
"Currency" | Devolve a expressão numérica na moeda da configuração regional.
"Fixed" | Devolve a expressão numérica com 2 casas decimais (0,00).
"Standard" | Devolve a expressão numérica com separadores de milhares e 2 casas decimais (@0,00).
"Percent" | Devolve a expressão numérica como valor percentual (0,00 %).
"Scientific" | Devolve a expressão numérica em notação científica (#.00E+00).
"Yes/No" | Devolve «Sim» se a expressão numérica não for igual a zero; caso contrário, devolve «Não». «Sim» e «Não» são localizados.
"True/False" | Devolve «True» se a expressão numérica não for igual a zero; caso contrário, devolve «False». «True» e «False» são valores localizados.
"On/Off" | Devolve «On» se a expressão numérica não for igual a zero; caso contrário, devolve «Off». «On» e «Off» são localizados.
"Long Date" or "dddddd" | Devolve a expressão numérica no formato de data longo do sistema, dependendo da configuração regional.
"Medium Date" | Devolve a expressão numérica no formato de data DD-MMM-AA, dependendo da configuração regional.
"Short Date" or "ddddd" | Devolve a expressão numérica no formato de data curto do sistema, dependendo da configuração regional.
"Long Time" or "ttttt" | Devolve a expressão numérica no formato de hora longo do sistema, que depende da configuração regional («H:MM:SS AM/PM»).
"Medium Time" | Devolve a expressão numérica no formato de hora médio do sistema, que depende da configuração regional (HH:MM AM/PM).
"Short Time" | Devolve a expressão numérica no formato de hora curto do sistema, que depende da configuração regional (HH:MM).

Pode definir a localização utilizada para controlar a formatação de números, datas e moedas no LibreOffice Basic em LibreOffice - Preferências Ferramentas - Opções - Idiomas e configurações regionais - Geral. Nos códigos de formatação do Basic, o ponto decimal (.) é sempre utilizado como marcador de posição para o separador decimal definido na sua configuração regional e será substituído pelo caractere correspondente.

O mesmo é aplicável às configurações regionais para data, hora e moeda. O código de formatação do Basic será interpretado e mostrado de acordo com a configuração regional do utilizador.

### Exemplo:

        txt = bas.Format(6328.2, '##.##0.00')
        print(txt)

## GetDefaultContext

Devolve o contexto predefinido da fábrica de serviços do processo, se existir; caso contrário, devolve uma referência nula.

GetDefaultContext é uma alternativa ao método getComponentContext()disponível a partir da variável global XSCRIPTCONTEXT ou do módulo uno.py.

### Sintaxe:

svc.GetDefaultContext(): uno

### Tipo de retorno:

É utilizado o contexto de componente predefinido ao instanciar serviços através de XMultiServiceFactory. Consulte o capítulo Professional UNO no Guia do Desenvolvedor em api.libreoffice.org para obter mais informações.

### Exemplo:

        ctx = bas.GetDefaultContext()

## GetGuiType

Devolve um valor numérico que especifica a interface gráfica do utilizador. Esta função é fornecida apenas para garantir a compatibilidade com versões anteriores.

Consulte o método system() do módulo Python platform para identificar o sistema operativo.

### Sintaxe:

svc.GetGuiType(): int

### Exemplo:

        n = bas.GetGuiType()

Estão disponíveis instruções mais detalhadas sobre o script na página de ajuda Identificar o sistema operativo.

• O serviço ScriptForge.Platform fornece um conjunto de propriedades sobre o ambiente e o contexto de execução atuais, incluindo a deteção da plataforma.
• Está disponível uma identificação abrangente do nome do sistema operativo através da fórmula de cálculo INFO("system").

## GetPathSeparator

Devolve o separador de diretórios específico do sistema operativo utilizado para especificar os caminhos dos ficheiros.

Utilize os.pathsep do módulo os do Python para identificar o separador de caminho.

### Sintaxe:

svc.GetPathSeparator(): str

### Exemplo:

        sep = bas.GetPathSeparator()

## GetSystemTicks

Devolve o número de ticks do sistema fornecidos pelo sistema operativo. Pode utilizar esta função para otimizar determinados processos. Utilize este método para estimar o tempo em milissegundos:

### Sintaxe:

svc.GetSystemTicks(): int

### Exemplo:

        ticks_ini = bas.GetSystemTicks()
        time.sleep(1)
        ticks_end = bas.GetSystemTicks()
        bas.MsgBox("{} - {} = {}".format(ticks_end, ticks_ini,ticks_end - ticks_ini))

## GlobalScope.BasicLibraries

Devolve o objeto UNO que contém todas as bibliotecas e módulos Basic partilhados.

Este método é o equivalente em Python a GlobalScope.BasicLibraries nos scripts Basic.

### Sintaxe:

svc.GlobalScope.BasicLibraries(): uno

### Tipo de retorno:

com.sun.star.script.XLibraryContainer

### Exemplo:

O exemplo seguinte carrega a biblioteca Gimmicks Basic, caso ainda não tenha sido carregada.

        libs = bas.GlobalScope.BasicLibraries()
        if not libs.isLibraryLoaded("Gimmicks"):
            libs.loadLibrary("Gimmicks")

## GlobalScope.DialogLibraries

Devolve o objeto UNO que contém todas as bibliotecas de diálogos partilhadas.

Este método é o equivalente em Python a GlobalScope.DialogLibraries nos scripts Basic.

### Sintaxe:

svc.GlobalScope.DialogLibraries(): uno

### Tipo de retorno:

com.sun.star.comp.sfx2.DialogLibraryContainer

### Exemplo:

O exemplo seguinte mostra uma caixa de mensagem com os nomes de todas as bibliotecas de diálogos disponíveis.

        dlg_libs = bas.GlobalScope.DialogLibraries()
        lib_names = dlg_libs.getElementNames()
        bas.MsgBox("\n".join(lib_names))

## InputBox

### Sintaxe:

svc.InputBox(prompt: str, [title: str], [default: str], [xpostwips: int, ypostwips: int]): str

### Parâmetros:

prompt: Expressão de cadeia de caracteres apresentada como mensagem na caixa de diálogo.

título: Expressão de cadeia de caracteres apresentada na barra de título da caixa de diálogo.

padrão: Expressão de cadeia de caracteres apresentada na caixa de texto como valor padrão, caso não seja introduzida qualquer outra entrada.

xpostwips: Expressão numérica que especifica a posição horizontal da caixa de diálogo. A posição é uma coordenada absoluta e não se refere à janela do LibreOffice.

ypostwips: Expressão numérica que especifica a posição vertical da caixa de diálogo. A posição é uma coordenada absoluta e não se refere à janela do LibreOffice.

Se xpostwips e ypostwips forem omitidos, a caixa de diálogo é centrada no ecrã. A posição é especificada em twips.

### Tipo de retorno:

String

### Exemplo:

        txt = s.InputBox('Introduza uma frase:', "Caro utilizador")
        s.MsgBox(txt, s.MB_ICONINFORMATION, "Confirmação da frase")

Para obter informações mais detalhadas, consulte Entrada/Saída para o ecrã com Python na Wiki.

## MsgBox

Exibe uma caixa de diálogo com uma mensagem e devolve um valor opcional.
As constantes MB_xx ajudam a especificar o tipo de caixa de diálogo, o número e o tipo de botões a exibir, bem como o tipo de ícone. Ao somar os seus respetivos valores, formam padrões de bits que definem a aparência da caixa de diálogo MsgBox.

### Sintaxe:

bas.MsgBox(prompt: str, [buttons: int], [title: str])[: int]

### Parâmetros:

prompt: Expressão de cadeia de caracteres apresentada como mensagem na caixa de diálogo. É possível inserir quebras de linha com Chr$(13).

título: Expressão de cadeia de caracteres apresentada na barra de título da caixa de diálogo. Se for omitida, a barra de título apresenta o nome da respetiva aplicação.

buttons: Qualquer expressão inteira que especifique o tipo de caixa de diálogo, bem como o número e o tipo de botões a apresentar e o tipo de ícone. buttons representa uma combinação de padrões de bits, ou seja, é possível definir uma combinação de elementos somando os seus respetivos valores:

### Tipo de retorno:

Um número inteiro opcional, conforme descrito nas propriedades IDxx acima.

### Exemplo:

        txt = s.InputBox('Introduza uma frase:', "Caro utilizador")
        s.MsgBox(txt, s.MB_ICONINFORMATION, "Confirmação da frase")

Para obter informações mais detalhadas, consulte Entrada/Saída para o ecrã com Python na Wiki.

## Now

Devolve a data e a hora atuais do sistema como um objeto nativo do Python do tipo datetime.datetime.

### Sintaxe:

svc.Now(): datetime

### Exemplo:

        bas.MsgBox(bas.Now(), bas.MB_OK, "Now")

## RGB

Devolve um valor de cor inteiro composto pelos componentes vermelho, verde e azul.

### Sintaxe:

svc.RGB(red:int, green: int, blue: int): int

### Parâmetros:

vermelho: Qualquer expressão numérica que represente a componente vermelha (0-255) da cor composta.

verde: Qualquer expressão numérica que represente a componente verde (0-255) da cor composta.

azul: Qualquer expressão numérica que represente a componente azul (0-255) da cor composta.

O valor Long resultante é calculado através da seguinte fórmula:
Resultado = vermelho×65536 + verde×256 + azul.

No modo de compatibilidade VBA (Option VBASupport 1), o valor Long é calculado como
Resultado = vermelho + verde×256 + azul×65536
Consulte Função RGB [VBA]

Português A caixa de diálogo do seletor de cores ajuda a calcular os componentes de vermelho, verde e azul de uma cor composta. Ao alterar a cor do texto e selecionar Cor personalizada, é apresentada a caixa de diálogo do seletor de cores.

### Tipo de retorno:

Integer

### Exemplo:

        YELLOW = bas.RGB(255,255,0)

## Xray

Inspecionar objetos ou variáveis do Uno.

### Sintaxe:

svc.Xray(obj: any)

### Parâmetros:

obj: Uma variável ou um objeto UNO.

### Exemplo:

        bas.Xray(bas.StarDesktop)

Todas as rotinas ou identificadores do ScriptForge Basic que tenham o caractere de sublinhado «_» como prefixo estão reservados para uso interno. Não se destinam a ser utilizados em macros do Basic ou em scripts Python.

Tópicos relacionados

Especificador GlobalScope

Programação com scripts Python

uno.fileUrlToSystemPath()

uno.systemPathToFileUrl()

Entrada/Saída para o ecrã com Python na wiki

XSCRIPTCONTEXT.getComponentContext()

uno.getComponentContext()

platform.system()

os.pathsep()

Necessitamos da sua ajuda!