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



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. 

 

VCL

 

Estamos aqui novamente e com a mais comentada e polêmica das seções de nosso jornal. Para quem perdeu, a edição anterior falou sobre os bugs de banco de dados, corrigidos pelo update packs 4.01 e 4.02 Dedicamos esta edição a VCL, ou seja, o conjunto de componentes do Delphi.São os bugs de menor risco, mas que podem comprometer a funcionalidade do sistema se não prevenidos. Em  breve colocaremos essa edição em nosso site., para que nossos leitores possam contribuir e interagir com estes problemas.

Aproveitando o caminhar do assunto, lembramos que o update Pack 4.03 já está disponível no site do Borland (WWW.borland.com) e o recomendamos para quem tiver a oportunidade de baixá-lo.

Abaixo segue a lista de nossos indesejáveis e inevitáveis bugs, separados pela palheta em que os componentes se encontram:

 

Palheta Aditional:

TSpeedButton: Nosso pequeno botão apresenta um problema simples no método BeginDrag. A o chamar speedButton1.BeginDrag(FALSE) no evento OnMouseDown, o botão continua pressionado, mesmo quando o usuário soltar o botão do mouse.

 

TcheckListBox: Neste objeto quem aparece é o método Exchange. Para quem não conhece, o método Exchange troca dois itens de um listbox de posição. Só que ao utilizar  este método, o Delphi não salva os valores dos checkbox’s forem trocados de posição, referentes.O u seja se um algum dos checkbox’s forem trocados de posição, eles irão aparecer desmarcados.Tente:checklistbox1.items.exchange(1,2);

 

TControlBar: Os objetos contidos em um TControlBar não obedecem ao comando Scale do Delphi.Por exemplo, adicione um TControlBar em seu form, e dois objetos Tbutton. Clique com o botão direite no form, e selecione  Scale. Digite 50%. Repare que os botões não são redimensionados. Em outros objetos do tipo Container, como o TPanel, o comando Scale funciona sem maiores preoblemas.

 

Palheta Dialogs:

 

TPrinterDialog: Este objeto sempre exibe a impressora default( mesmo alterando a  propriedade Printer.PrinterIndex);

 

Nota: Utilize Printer.GetPrinter e Printer.SetPrinter, passando 0 para o parâmetro hDevMode para resolver este problema.

 

Palheta Standard:

 

TCheckBox: Apropriedade Color deste objeto não aceita o valor clWindow. Ao tentar passar este valor, a propriedade ParentColor é automaticamente setado para FALSE.

 

TComboBox: O evento OnChange não funciona de forma apropriada. Ele é disparado correntamente quando o usuário altera sua propriedade text, mas não quando programa o faz.

Este objeto também apresenta um bug na propriedade Focused, que que sempre retorna FALSE, mesmo que o controle seja do TComboBox.

 

TEdit: Apropriedade Height deste objeto não funciona correntamente . Por exemplo, coloque um Tedit em seu form, altere sua propriedade Height para algum valor maior que o Default e execute a aplicação, Repare que este sempre aparece com a altura default.

 

TListBox: Agora sim um bug da form a que eu gosto:Adicione um TListBox em sua aplicação e defina a propriedade Columms para 2. Agora defina a propriedade Width também para 2.0 Delphi simplesmente cai.Isto pode acontecer quando usarmos um TListBox em conjunto com um TSplitter, por exemplo.

 

TMainMenu: Um grupo de menus selecionados para trabalhar como RadioGroup não funcionam em tempo nde execução, o usuário pode selecionar vários item ao ao mesmo tempo, como um checkbox.

 

Palheta Win32:

 

TCoolBar:É gerado um Access Violation ao tentar deletar este objeto do form com o Bands Editor aberto.Por exemplo:

 

Inclua um TEdit no TCoolbar;

Delete o TCoolBar e a mensagem de erro será gerada;

Outro problema encontrado neste objeto foi na propriedade visible, mesmo quando visible é alterado.

 

TImageList: Ao selecionar um grupo de imagens neste objeto, e tentar arrastá-las para fora da janela, um Acess Violation é gerado.

 

Alista de bugs continua, mas não vamos publicá-las nesta edição.Repare que os problemas encontrados são de pouca agravância , e podem ser resolvidos evitando seguir os passos descritos acima. Caso conheça algum bug e deseja publicá-lo em nosso jornal, basta enviar um email para admin@clubededelphi.com.br