Je voudrais dans mon programme changer le glyph d'un speed button à l'execution, ce bouton en fait doit afficher 2 glyph alternativement à chaque fois que l'on click dessus.
Voici le code que j'ai saisi, mais cela ne fonctionne pas :
procedure TFormMain.SpeedButtonLockClick(Sender: TObject);
begin
IsLocked := not IsLocked;
If IsLocked then
begin
SpeedButtonLock.Glyph := nil;
SpeedButtonLock.Glyph.Canvas.Draw(0, 0, KeyIcon);
end
else
begin
SpeedButtonLock.Glyph := nil;
SpeedButtonLock.Glyph.Canvas.Draw(0, 0, UnlockedIcon);
end;
end;
A noter que IsLocked et un boolean global, et que KeyIcon et UnLockedIcon sont des TIcon global préalablement créés à la création du form.
procedure TFormMain.SpeedButtonLockClick(Sender: TObject);
begin
IsLocked := not IsLocked;
If IsLocked then SpeedButtonLock.Glyph.Assign(KeyIcon) // uniquement des BMP
else SpeedButtonLock.Glyph.Assign(UnlockedIcon);
end;