Problema com TToolButton dentro de uma TToolBar

Delphi

12/05/2005

Tenho uma TToolBar, chamada ´FerramentasToolBar´, com diversos TToolButton. Quando estou debugando minha aplicação, e peço para dar um ´Add Watch´, e indico um dos TToolButton, da seguinte maneira ´FerramentasToolBar.Buttons[2]´, por exemplo, aparece a seguinte informacao:

´FerramentasToolBar.Buttons[2]:([csInheritable],$CA6568)´

O que significa este número $CA6568 ??
Eu pergunto porque estou com o seguinte problema: Toda vez que eu clico em um dos TToolButtons da minha TToolBar, eu faço um FOR para desmarcar todos os outros botões, setando suas propriedades DOWN pra FALSE, de modo que fique sempre apenas um marcado. TODOS os botões da TToolBar tem o mesmo código ´$CA6568´, quando eu debugo. Acontece que, uma determinada hora, que nao consigo determinar qual é, o código de um dos botoes muda para ´$2A8´, e então, se eu tento setar o seu DOWN pra false, o programa lança uma exception de acesso ilegal à uma determinada posição de memória... Além de setar sua propriedade DOWN pra true ou false, eu não faço mais nada com os TToolButtons. E o pior, essa mudança de codigo (e o consequente problema) ocorre apenas com um dos botões... O que será isso??
Agradeço antecipadamente a ajuda de todos.


Joeygustavo

Joeygustavo

Curtidas 0

Respostas

Michael

Michael

12/05/2005

Olá amigo!

Vc deve usar os watches para visualizar o conteúdo de uma propriedade por exemplo. Do jeito q vc descreveu, vc está ´visualizando´ o objeto em si, o q eu não acho muito útil. Tente especificar uma propriedade.

Mas, para o seu problema, há outra solução. Não é necessário q vc programe os outros botões para serem desmarcados. Basta vc definir a propriedade GroupIndex de todo o grupo para um mesmo valor, e setar a propriedade AllowAllUp de todos para false. O Delphi se encarrega de liberar cada botão quando outro for pressionado.

Abraços!


GOSTEI 0
Emrj

Emrj

12/05/2005

Otima solução, obrigado


GOSTEI 0
POSTAR