> ## Documentation Index
> Fetch the complete documentation index at: https://docs-fw.madbuilder.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# TTime

> O `TTime` é um componente de escolha de tempo, possibilitando a inserção e manipulação de horários através de uma interface amigável que integra funcionalidades de um time picker.

Derivado da classe `TEntry`, métodos herdados não sobrescritos podem também ser utililzados por objetos `TTime`. Acesse a [documentação do componente/classe-pai](https://madbuilder.mintlify.app/entrada-de-dados/tentry) para conhecê-los.

## \_\_construct

Construtor da classe `TTime`.

**Parâmetros:**
<ResponseField name="$name" type="mixed" required>Nome do campo que será utilizado no formulário.</ResponseField>

**Exemplo de código:**

```php theme={null}
$horario = new TTime('horario');
```

<br />

## setMask

Define a máscara do campo de tempo.

**Parâmetros:**
<ResponseField name="$mask" type="mixed" required>Máscara para os dados de entrada.</ResponseField>
<ResponseField name="$replaceOnPost" type="bool" default="false">(Opcional) Booleano indicando se a máscara deve ser substituída após o envio do formulário.</ResponseField>

**Exemplo de código:**

```php theme={null}
$horario = new TTime('horario');
$horario->setMask('hh:ii:ss');
```

<br />

## setChangeAction

Define a ação a ser executada quando o usuário altera o campo de tempo.

**Parâmetros:**
<ResponseField name="$action" type="TAction" required>Objeto `TAction`.</ResponseField>

**Exemplo de código:**

```php theme={null}
$horario = new TTime('horario');
$horario->setChangeAction(new TAction(['NomeClasseDeControle', 'onTimeChange']));
```

Código de exemplo da função a ser chamada, lembrando que essa função precisa ser estática (static function).

```php theme={null}
public static function onTimeChange($param = null)
{
    new TMessage('info', 'A hora foi alterada com sucesso!');
}
```

<br />

## setChangeFunction

Define a função JavaScript a ser executada quando o usuário altera o campo de tempo.

**Parâmetros:**
<ResponseField name="$function" type="mixed" required>Função JavaScript.</ResponseField>

**Exemplo de código:**

```php theme={null}
$horario = new TTime('horario');
$horario->setChangeFunction('alert("Hora alterada.");');
```

<br />

## enableField e disableField

(Método estático) Habilita ou desabilita um campo de hora no formulário.

**Parâmetros:**
<ResponseField name="$form_name" type="mixed" required>Nome do formulário.</ResponseField>
<ResponseField name="$field" type="mixed" required>Nome do campo.</ResponseField>

**Exemplo de código:**

```php theme={null}
$horario = new TTime('hora');
$horario->setValue('10:00');

$btnHabilitar = new TButton('btnEnableField');
$btnHabilitar->addStyleClass('btn-default');
$btnHabilitar->setImage('far:circle #000000');
$btnHabilitar->setAction(new TAction([$this, 'habilitarCampo']), 'Habilitar Campo de Tempo');

$btnDesabilitar = new TButton('btnDisableField');
$btnDesabilitar->addStyleClass('btn-default');
$btnDesabilitar->setImage('far:circle #000000');
$btnDesabilitar->setAction(new TAction([$this, 'desabilitarCampo']), 'Desabilitar Campo de Tempo');
```

Código de exemplo das funções a serem chamadas, lembrando que essas funções precisam ser estáticas (static function).

```php theme={null}
public static function habilitarCampo($param = null)
{
    TTime::enableField('nomeForm', 'hora');
}

public static function desabilitarCampo($param = null)
{
    TTime::disableField('nomeForm', 'hora');
}
```
