Propriedade de Componente

Delphi

22/04/2005

Olá,
Gostaria de saber como faço para passar um certo valor para uma propriedade de um componente em tempo de execução da seguinte forma. Por exemplo:

ComponenteX.PropriedadeY := Single;

A ´PropriedadeY´ aceita os valores ´Single´ e ´Double´, porém não aceita que esses valores sejam passados como exemplo acima, nem através de variável ou string.

Como faço?

Rafael


Rafaaugusto

Rafaaugusto

Curtidas 0

Respostas

Motta

Motta

22/04/2005

Algumas prop´s são readonly.


GOSTEI 0
Massuda

Massuda

22/04/2005

A ´PropriedadeY´ aceita os valores ´Single´ e ´Double´
Eu não entendi direito.... ´single´ e ´double´ seriam o tipo da variável/valor que está sendo atribuído à PropriedadeY ou você está querendo alterar o tipo da propriedade?


GOSTEI 0
Rafaaugusto

Rafaaugusto

22/04/2005

OK, mas estas não são read-only, elas aceitam outros valores como citei no exemplo. Porém não estou conseguindo fazer isso em tempo de execução...


GOSTEI 0
Rafaaugusto

Rafaaugusto

22/04/2005

Single e Double são valores que poderão ser atribuídos à propriedade. Clicando no componente esses valores podem ser alterados normalmente, mas na execução, quando tento passar os valores ele dá erro de imcompatibilidade de dados...


GOSTEI 0
Massuda

Massuda

22/04/2005

... mas na execução, quando tento passar os valores ele dá erro de imcompatibilidade de dados...
Daria para você postar aqui o código?


GOSTEI 0
Rafaaugusto

Rafaaugusto

22/04/2005

Ok, aí vai o código...

.
.
WaveAudio.SampleRate := ´b8Bit´;
.
.
Através das opções do componente WaveAudio, percebe-se que existem as seguintes: ´b8Bit´ e ´b16Bit´. As 2 podem ser acessadas normalmente e funcionam na execução normalmente.
Porém, o que eu queria é alterá-la não no desenvolvimento, mas sim na execução, conforme código acima.
O erro que aparece é:

TWaveBits and String - imcompatyble types

Já tentei passar sem as aspas, através de variável e não deu certo...


GOSTEI 0
Rjun

Rjun

22/04/2005

WaveAudio.SampleRate := b8Bit;


GOSTEI 0
Massuda

Massuda

22/04/2005

Ok, aí vai o código...
Faça como o Rogério escreveu... b8Bit e b16Bit já são constantes de tipo compatível com o da propriedade. Pense neles como algo similar a escrever clBlue (ao invés de $FF0000) quando atribui uma cor a algum componente.


GOSTEI 0
Rafaaugusto

Rafaaugusto

22/04/2005

Erro de novo...
Imcompatyble types novamente...


GOSTEI 0
Massuda

Massuda

22/04/2005

Erro de novo...
Que componente é o WaveAudio do seu código?


GOSTEI 0
Rafaaugusto

Rafaaugusto

22/04/2005

É um componente comum, está no mesmo formulário. Algumas das opções desse componente aceitam valores string, e isso está funcionando normalmente. Só essas que são de outros tipos aparece o erro ´imcompatible types´...


GOSTEI 0
Massuda

Massuda

22/04/2005

... Só essas que são de outros tipos aparece o erro ´imcompatible types´...
Qual é o tipo da propriedade SampleRate? Pelo que você postou, deve ser um TWaveBits, mas não sei o que é isso. Quais são os tipos incompatíveis agora?

Para poder ajudar, ficaria mais fácil se eu soubesse qual componente é esse WaveAudio; me parece que não é um componente padrão do Delphi, provavelmente é um componente de terceiros.

A princípio, fazer...
WaveAudio.SampleRate := b8Bit;
...sem as aspas simples devia resolver.


GOSTEI 0
Rafaaugusto

Rafaaugusto

22/04/2005

OK...
O componente não é um padrão do delphi mesmo. Eu não estou com o código completo aqui agora, mas assim que pegar eu te mostro.

Obrigado.


GOSTEI 0
POSTAR