Esse artigo faz parte da revista Clube Delphi edição 8. Clique aqui para ler todos os artigos desta edição

imagem

Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML. 


 

BUGS

Delphi 5 – IDE (Interface Developer Environment)

 

Continuando a matéria sobre os BUGS do Delphi 5, trazemos mais uma lista de inconsistência para você. Porém, estamos mais lights desta vez; os bugs aqui listados pertencem ao Delphi4, e foram solucionados no Delphi5. Esta seção se preocupa apenas com pequenos detalhes, da própria IDE (Interface Development Enviroment) do Delphi, nada que prejudique o sistema. mas já dá para ter uma idéia de como o Delphi5 progrediu em termos de estabilidade. Bom, vamos ao trabalho!

 

Code Editor

Os problemas apresentados abaixo são relacionados ao Code Editor, ou seja, a área de edição de código do Delphi.

 

Baixa Performance

Digitar o caracter ‘*’ (asterístico) em arquivos muito grandes é uma operação extremamente lenta.

 

Sintaxe

Quando o conjunto de caracteres (*) é digitado, o Code Editor formata o texto em itálico, como se fosse um comentário. Para que o texto tivesse esta formatação, o certo seria (**). O computador, por sua vez, age de forma correta e indica o erro.

 

Tstrings

A edição de um objeto Tstring (como a propriedade Lines, do objeto TMemo), dentro do Code Editor apresenta algumas inconsistências. Por exemplo, ao abrir o Code Editor com o conteúdo de um Tstring e fechá-lo, comumente a string retorna com linhas em branco no final, que não foram adicionadas pelo usuário. Em algumas situações, caracteres estranhos também podem ser inseridos ao final do texto.

 

Code Explorer

O Code Explorer (janela que aparece do lado esquerdo do Code Editor, exibindo um Tree View contendo os objetos e classes declarados na unit), também apresenta inconsistências. Algumas são até mais graves e podem prover o travamento do Delphi.

 

imagem

 

Access Violation

Enquanto o Code Explorer estiver em processo de atualização, qualquer operação realizada simultaneamente no mesmo pode causar as temíveis Avs (Access Violations). Arquivos muito grandes, por exemplo, causam um delay para atualizar o Code Explorer. Este, porém, permite que operações sejam feitas, como renomear um objeto ou incluir uma nova procedure. No momento de sua atualização, estas operações podem ser fatais.

O Code Explorer também permite alterar o nome do formulário e o nome dos objetos. Só que o Code Explorer não faz a validação de nomes duplicados. Caso o usuário digite um nome de form já existente, o Code Explorer irá aceitar, e um erro será gerado no momento da compilação.

 

Janela Enviroment Options

O grupo Compiling and Running não respeita o botão Cancelar. Qualquer alteração feita nos controles deste grupo serão sempre salvas, independente do usuário confirmar ou cancelar a operação.

 

imagem

 

Delphi Direct

O Delphi Direct é um wizard que aparece no ambiente do Delphi, mostrando as últimas novidades e atualizações para p Delphi. O Delphi Direct se conecta ao site da borland, caso a máquina esteja on-line. Porém, se houver a conexão, e a máquina sair da rede ou da internet, o wizard irá travar o Delphi. O Delphi Direct pode ser acessado através do menu Help|Delphi Direct.

 

imagem

 

Object Inspetor

Quando o object Inspector é arrastado para dentro do Code Editor, este apresenta alguns problemas de redesenho. Por exemplo, a propriedade selecionada pode mudar, os labels podem ficar defeituosos, ou até mesmo os valores podem aparecer de forma inconsistente no vídeo.

 

Placa de vídeo Matrox Millenium II

Em raros momentos o erro “A Win32 API function failed” é gerado durante a abertura de um projeto, quando o sistema possui a placa Matrox Millenium II.

 

Menus

Alterar a fonte dos menus através do Painel de Controle, pode não ser uma boa idéia se o Delphi estiver aberto. Vários tipos de problemas podem acontecer, desde o travamento do Delphi ao não reconhecimento da nova fonte pelo objeto Tmenu.

 

Se a opção Revert to Inherited for acionada pelo desenvolvedor, uma Access Violation pode ser gerada, caso o form possua Templates de Menu.

 

Variáveis int64

As variáveis do tipo Integer de 64 bits (Int64) não podem ser declaradas como propriedades publicadas (published). Isto é até permitido pelo compilador; porém, o Object Inspector não é capaz de reconhecer propriedades de entrada com este tipo de variável.

 

Janela Package Options

Inúmeras mensagens de erro do tipo: “Invalid Resource File” podem aparecer, travando o Delphi, caso o usuário clique em Ok nesta janela. Para que isto aconteça, basta que o Package seja de Design e não exista nenhum arquivo .RES ou uma definição da cláusula {$R *.RES}. Este tipo de problema somente ocorre quando é utilizado o Windows 98 como sistema operacional. Os outros sistemas estão livres deste bug.

 

Object Browser

O Object Browser (atual Project Browser) não pode ser iniciado em um Package. Caso o usuário tente fazer esta operação, normalmente uma Acess Violation será gerada.

 

Project Manager

Não é possível abrir um formulário através do Project Manager, quando o form está sendo visualizado em modo texto.

 

Reiniciado o Delphi

Nos sistemas Win9x, sair do Delphi e abrir uma nova instância do mesmo, rapidamente, comumente causa uma Access Violation, travando o sistema operacional.

 

Form como texto

Caso um formulário esteja sendo visualizado como texto, e o desenvolvedor selecione a opção File|Close ALL, o arquivo de unidade .PAS poderá ser salvo em um diretório diferente, e o arquivo de projeto poderá não ser salvo (porém será fechado).

 

No Keyboard

Praticamente todas as janelas do ambiente (como breakpoints) podem ser arrastadas para dentro do CodeExplorer. Porém, não há como mudar o foco entre os painéis através do teclado, tornando a operação um pouco mais lenta para quem já possui prática com shortcuts.

 

Conclusão

Como pode ser observado, são apenas pequenos erros da própria interface do Delphi, que não trazem muita dor de cabeça para os desenvolvedores. Todos os bugs listados aqui, foram solucionados na versão 5 do Delphi, o que é mais um ponto positivo para a linguagem. O aparecimento de Avs (Access Violations) no Delphi 4 é muito comum, e muita das vezes não conseguimos repetir o problema, acontecendo de forma inteiramente.