Violation D'access avec un sbouton-croll bar [Résolu]

Signaler
-
 Utilisateur anonyme -
Salut  à tous,

Bon je suis un peu sur les fesses : ca fait 15 jours que j'essaye de trouver le pourquoi du comment d'une violation d'acces. Attention le code est énorme .

Procedure TEffects_Form.Initialize_Volume(IndexSong:Cardinal);
Begin
  BASS_FX_DSP_Set(SoundStreams[IndexSong], BASS_FX_DSPFX_VOLUME, 0);
  BASS_FX_DSP_GetParameters(SoundStreams[IndexSong], BASS_FX_DSPFX_VOLUME, @Volu[IndexSong]);
 Volu[IndexSong].fVolume:=50;
  Level_Volume_Bt.Position:=50; Ca beugue Ici
  BASS_FX_DSP_SetParameters(SoundStreams[IndexSong], BASS_FX_DSPFX_VOLUME, @Volu[IndexSong]);
End;

Je sens qu'il y en a qui vont rire mais moi ca m'amuse plus ce beug : Qu'il m'énerve celui-la

Alors évident j'ai modifié le code : Attention accroché ca va péter

Procedure TEffects_Form.Initialize_Volume(IndexSong:Cardinal);

Begin
 
// BASS_FX_DSP_Set(SoundStreams[IndexSong], BASS_FX_DSPFX_VOLUME, 0);
 
// BASS_FX_DSP_GetParameters(SoundStreams[IndexSong], BASS_FX_DSPFX_VOLUME, @Volu[IndexSong]);
 
//Volu[IndexSong].fVolume:=50;

  Level_Volume_Bt.Position:=50; Ca beugue Ici

  //BASS_FX_DSP_SetParameters(SoundStreams[IndexSong], BASS_FX_DSPFX_VOLUME, @Volu[IndexSong]);

End;

Vous savez quoi : ca beugue toujours . Petite précision le bouton n'est pas créé dynamiquement.

Evidemment j'ai essayé de déposer un bouton sur une form vierge ainsi que Level_Volume_Bt.Position:=50; et là ca fonctionne. Sérieusement je vois pas pourquoi la le bouton scroll bar  fais des siennes le bougre.

Merci pour vos lumières.

Ps : Oué oué je sais j'ai pas mis tous le code mais si vous voulez 15 unités ca me gene pas

5 réponses

Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
tout le code, tout le code, permet moi d'en douter ...

y'a t'il autre chose qui viens se greffer sur ton objet ? evenement OnScroll ? evenement OnChange ?
c'est le composant TScrollBar ?
utilise tu des composants (a par Bass) qui ne sont pas natif delphi ?

Salut Guillemouze,

Je suis un crétin : pen fait je lance la procedure Initialize_Volume(IndexSong:Cardinal); Evidemment l'évènement Level_Volume_BtChange est appelé sauf que j'ai oublié de faire une vérification ce qui fait que sa plante lamentablement.

Merci à vous

Salut Foxi,

Oui j'utilise l'évenement on Change

Voila tout le code relatif a ce composant (qui est un bouton potentiometre)

Procedure TEffects_Form.Initialize_Volume(IndexSong:Cardinal);
Begin
BASS_FX_DSP_Set(SoundStreams[IndexSong], BASS_FX_DSPFX_VOLUME, 0);
BASS_FX_DSP_GetParameters(SoundStreams[IndexSong], BASS_FX_DSPFX_VOLUME, @Volu[IndexSong]);
Volu[IndexSong].fVolume:=50;
  Level_Volume_Bt.Position:=50;
BASS_FX_DSP_SetParameters(SoundStreams[IndexSong], BASS_FX_DSPFX_VOLUME, @Volu[IndexSong]);
End;

Procedure  TEffects_Form.Song_Pos_Volume(IndexSong:Cardinal);
Begin  BASS_FX_DSP_GetParameters(SoundStreams[IndexSong],BASS_FX_DSPFX_VOLUME, @Volu[IndexSong]);
  //Level_Volume_Bt.Position:=Round(Volu[IndexSong].fVolume);
End;

procedure TEffects_Form.Level_Volume_BtChange(Sender: TObject;
  Value: Integer);
Var
  IndexSong:Cardinal;
begin
  If IndexBand<1 then Exit;
  For IndexSong:=0 To (IndexBand-1) Do
    Begin
      If (Sound_Form.Bands_StringGrid.Cells[4,IndexSong+1]='Actif') then
        Begin          BASS_FX_DSP_GetParameters(SoundStreams[IndexSong],BASS_FX_DSPFX_VOLUME, @Volu[IndexSong]);
          Volu[IndexSong].fVolume:=Level_Volume_Bt.Position;          BASS_FX_DSP_SetParameters(SoundStreams[IndexSong],BASS_FX_DSPFX_VOLUME, @Volu[IndexSong]);
        End;
    End;
end;

Sinon oui j'utilise d'autres composants non natfis comme les TXiPanel et TxiTrackBar

Merci

Re,

Il ne s'agit pas du composant TScrollBar mais j'ai essayé avec ce dernier ca ne change rien. J'ai fais un test : les compo non natifs ne sont pas à l'origine du probleme.

merci
Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
7
et en utilisant les dcu de deboggage, ca te plante a quel endroit exactement?