# [BETA] - GExperts

GExperts é uma ferramenta de auxílio ao desenvolvedor, voltada a atalhos que facilitam a localização de componentes e funções, além de outras utilidades.

# Instalação e configurações

<p class="callout info">GExperts é uma ferramenta de auxílio ao desenvolvedor, voltada a atalhos que facilitam a localização de componentes e funções, além de outras utilidades.</p>

#### Instalação

A versão utilizada, será a do Delphi 10.2 Tokyo.

**Antes de começar a instalação deve-se fechar o Delphi.**

Execute o <span style="text-decoration: underline;">[GExperts\_10.2.exe](https://wiki.supersoft.com.br/attachments/29)</span>.

A instalação é bem simples, sendo necessário apenas dar next, install e finish.

Feito isso, ao abrir o Delphi, o menu já estará disponível na IDE

[![image-1613062949654.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/scaled-1680-/image-1613062949654.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/image-1613062949654.png)

#### Configurações 

Atualmente, utilizamos o comunicador Miranda NG, que utiliza atalhos com teclas iguais ao GExperts. Como o comunicador tem prioridade, as teclas de atalho poderão acionar o Miranda, impedindo que alguns atalhos do GExperts sejam utilizados. Fica a critério do desenvolvedor decidir quais atalhos irá mudar.

##### No Miranda NG:

[![image-1613063622856.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/scaled-1680-/image-1613063622856.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/image-1613063622856.png)[![image-1613064051599.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/scaled-1680-/image-1613064051599.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/image-1613064051599.png)

Caso não utilize nenhum dos atalhos, eles poderão ser desabilitados para não ocorrerem conflitos.

##### No Delphi - GExperts:

[![image-1613064281901.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/scaled-1680-/image-1613064281901.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/image-1613064281901.png)

As teclas de atalho das funções que serão apresentadas na página [<span style="text-decoration: underline;">atalhos</span>](https://wiki.supersoft.com.br/books/beta-ferramentas/page/atalhos) poderão ser alteradas através desse menu de acordo com a necessidade do desenvolvedor.

# Atalhos

<p class="callout info">Os atalhos que serão apresentados a seguir são padrões do GExperts. Caso necessário, eles poderão ser alterados a critério do desenvolvedor de acordo com seus respectivos nomes. </p>

A ferramenta oferece vários atalhos ao desenvolvedor, facilitando a localização de componentes, métodos, palavras-chave, e mais algumas utilidades.

Dentre eles, os de mais destaque são:

#### Adição de uses (Ctrl + Shift + A) - Delphi

Esse é um atalho próprio do Delphi, mas tem grande valia e poderá ser utilizado ao adicionar um método do sistema a uma unit que não tenha sua *use* declarada. O atalho irá buscar e apresentar a *use* necessária para a utilização do mesmo.

##### Exemplo:

[![image-1613066583139.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/scaled-1680-/image-1613066583139.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/image-1613066583139.png)

Durante uma implementação, o método do sistema "TProcuraRegistro" foi adicionado à uma unit que ainda não tem informação sobre sua função, ficando sublinhado em vermelho. Para adicionar sua *use*, basta utilizar as teclas de atalho, selecionar a *unit* e confirmar.

[![image-1613066718207.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/scaled-1680-/image-1613066718207.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/image-1613066718207.png)

Por padrão, as *uses* podem ser adicionadas em "Implementation". Caso ocorra algum erro, passá-la para "Interface".

#### Modo de edição sincronizada (Ctrl + Shift + J) - Delphi

Mais um atalho nativo do Delphi, será muito útil na hora de refatorar trechos de código, podendo mudar nomes de métodos, propriedades e variáveis dentro do código selecionado

##### Exemplo:

[![image-1616423109037.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-03/scaled-1680-/image-1616423109037.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-03/image-1616423109037.png)

O trecho apresentado se encontra fora dos padrões de código, sendo necessário refatora-lo.

Selecione o trecho de código desejado, e utilize o atalho para que o código fique selecionado da seguinte forma:

[![image-1616423279898.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-03/scaled-1680-/image-1616423279898.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-03/image-1616423279898.png)

Após isso, basta reescrever a palavra desejada, e as demais palavras em comum dentro do trecho selecionado serão alteradas.

[![image-1616423594120.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-03/scaled-1680-/image-1616423594120.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-03/image-1616423594120.png)

#### Procedure List (Ctrl + G)

Esse atalho é utilizado para visualizar todos os métodos vigentes na *unit,* dando mais agilidade na hora de encontrar o método desejado.

[![image-1613067516943.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/scaled-1680-/image-1613067516943.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/image-1613067516943.png)

#### Grep Search (Shift + Alt + S)

Esse atalho faz uma busca em determinado local, procurando pela palavra-chave digitada, sendo muito útil para pesquisas.

[![image-1613069029400.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/scaled-1680-/image-1613069029400.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/image-1613069029400.png)

Em "Files", o alcance da pesquisa pode ser alterado. Na maior parte das vezes, a opção "All files in project" será suficiente.

Caso queira fazer uma pesquisa mais centrada, utilizar a opção "Directories". Em "Directory Search", selecionar o caminho da pasta que será utilizada na pesquisa.

#### Find Component Reference (Ctrl + Shift + F)

Esse atalho pesquisará no formulário da *unit* o componente selecionado e, caso encontre, mostrará sua localização.

##### Exemplo:

**Localizando o componente "DBE\_CLIENTESCODREG" no formulário de Clientes**

[![image-1613070194935.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/scaled-1680-/image-1613070194935.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/image-1613070194935.png)

[![image-1613070220279.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/scaled-1680-/image-1613070220279.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/image-1613070220279.png)

 Ao utilizar o atalho, o formulário será aberto selecionando o componente marcado.

#### Identifier Reference (Ctrl + Alt + Setas cima/baixo)

Esse atalho serve para localizar o próximo local onde aparece a palavra selecionada. Útil para acompanhar atribuições de variáveis.

##### **Observação:**

Em algumas máquinas, esse atalho rotacionará a tela, sendo necessário altera-lo através do menu "Configuration..." visto anteriormente.

#### Move to Matching Delimiter (Ctrl + Alt + Seta direita)

Encontrará o delimitador correspondente. Útil na hora de encontrar o *end* de um *begin*, o *finally* de um *try*, ou até mesmo para selecionar os parênteses do método externo.

##### Exemplo: 

**Localizando o *end* de um *begin***

[![image-1613072117781.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/scaled-1680-/image-1613072117781.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/image-1613072117781.png)

Posicionar o mouse no *begin* e utilizar o atalho

[![image-1613072178026.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/scaled-1680-/image-1613072178026.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/image-1613072178026.png)

A marcação será redirecionada até a linha em que se encontra o *end.*

#### Locate matching delimiter (Ctrl + Alt + Seta esquerda)

Seleciona todo o código que está dentro do delimitador selecionado. Útil ao adicionar uma nova condição, onde é necessário mover o código dois espaços a frente.

##### Exemplo:

Adicionando uma nova condição ao código

[![image-1613073129252.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/scaled-1680-/image-1613073129252.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/image-1613073129252.png)

[![image-1613073250916.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/scaled-1680-/image-1613073250916.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/image-1613073250916.png)

Posicionar o mouse no delimitador *end* adicionado e utilizar o atalho

[![image-1613073379980.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/scaled-1680-/image-1613073379980.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/image-1613073379980.png)

Assim, todo o código poderá ser facilmente reposicionado, principalmente ao se tratar de trechos maiores.

#### Set tab order

Esse atalho, por padrão, não vem configurado.

Acessar menu "configuration..." visto na página anterior

[![image-1613073659710.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/scaled-1680-/image-1613073659710.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/image-1613073659710.png)

Adicionar teclas de atalho. **Recomendação: Ctrl + Shift + T**

Apesar de pouco comum, convencionalmente poderá ser necessário adicionar componentes e alterar o "tab order" dos mesmos.

Com esse atalho, os componentes podem ser organizados apenas arrastando-os, não sendo necessário alterar as propriedades de cada um.

[![image-1613073870703.png](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/scaled-1680-/image-1613073870703.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2021-02/image-1613073870703.png)