Trava dos controles do formulário (Lock Controls)

Estive pesquisando alguns recursos do Delphi ultimamente e me deparei com um que, deixando a simplicidade de lado, é de grande utilidade. Várias e várias vezes, no momento da codificação, o meu foco era simplesmente a manutenção de uma lógica no arquivo “.pas”, mas como o Delphi abre o formulario (.dfm) automaticamente muitas vezes, acabamos por influenciar o layout deles por acidente. O típico caso é quando precisamos alterar apenas uma propriedade do componete visual e acabamos por desalinhá-lo com os demais componentes. Nada muito sério, mas sempre uma cheteação.

Para facilitar a vida do desenvolvedor, o Delphi possui o recurso de travar os componentes do formulário. Basta ir em “Menu -> Edit -> Lock Controls” que os componentes do formulário (visuais e não visuais) ficarão travados, ou seja, não poderão ser movimentados dentro do formulário.

 

Breakpoint condicional na hora de debugar

Qual desenvolvedor não se encontrou criando uma variável de controle, para armazenar o valor atual do contador, apenas para, conforme condição que verificasse o valor do contador, entrar em um breakpoint? Isso porque, dentro de um loop, as 1000 primeiras vezes que ele passava por ali não era interessante. Assim, o breakpoint executaria apenas quando a condição fosse satisfeita. Mas isso implica alterar o código-fonte para obter esse benefício.

Pouco gente sabe, mas o Rad Studio, assim como outras softwares, possuem a possibilidade de adicionar um breakpoint, sendo que sua execução fica condicionada a uma determinada situação. Isso sem qualquer alteração do código-fonte, pois funciona como um recurso próprio.

Vamos imaginar um loop que seja executado, aproximadamente, 10.000 vezes. Pode ser que o desenvolvedor queira debugar o funcionamento do comando contido no loop apenas na milésima e primeira vez, ou seja, apenas quando o contador for = 1000  (começou no zero!).

Clickando-se com o botão direito do mouse na posição do breakpoint, voce encontrará a opção “Breakpoint Propertires” (Propriedades do breakpoint).

Elá abrirá uma janela com algumas opções e informações interessantes. A que estamos interessado no momento é a Condition. O breakpoint apenas funcionará quando satisfizer a condição informada ali. Da forma como está abaixo, apenas quando I possuir o valor de 1000, é que o breakpoint será parará a execução.

Espero que isso tenha sido útil à você. Embora muito simples, vejo que poucas pessoas conhecem e utilizam esse recurso.

Agradecimento ao Guilherme Chiarini, pela dica.

Problemas na conexão com Dephi e Oracle em máquinas 64bits

Se você está tendo problemas em conectar sua aplicação Delphi em um banco de dados Oracle, e você utiliza uma máquina 64bits, não se preocupe. O problema é chato de diagnosticar, mas a solução é simples, embora trabalhosa. Provavelmente, na instalação do Delphi (ou RAD Studio), você, assim como eu, instalou-o na pasta padrão para aplicativos de 32bits (x86), ou seja:

Após muito pesquisar, descobrí que o problema ocorre porque o “Client” do Oracle não conecta através de pastas com alguns tipos de caracteres, entre eles o parênteses “(” e “)”. Tanto que se você gerar um executável e colocá-lo no seu desktop, por exemplo, ele irá conectar normalmente. Por isso, o fato de sua máquina ser 64bits não interfere na conexão, mas sim o caminho de onde a conexão será chamada. Só nos resta agora a solução, que será reinstalar o Delphi (RAD Studio) em outro caminho, como por exemplo, “C:\Arquivos de Programas” ou mesmo “C:\Delphi”, para podermos então testar a conexão em tempo de “Design”.