Ci sono molteplici soluzioni al problema che vuoi affrontare.
Io te ne espongo una, forse quella più semplice e intuitiva.
Prima di tutto devi inserire un componente TImageList che avrà il compito di "contenere" le immagini, solo di tipo Bitmap, che vuoi fare alternare nel pulsante.
Quindi, devi inserire all'interno di questo oggetto le due picture che ti interessano, facendo attenzione alle dimensioni.
Successivamente puoi utilizzare una variabile temporanea, di tipo Bitmap che potrai utilizzare nell'assegnamento al pulsante.
Infatti, attraverso il metodo getBitmap dell'oggetto TImageList potrai memorizzare nella variabile temporanea l'immagine che ti interessa.
Passo al codice che forse rende meglio le idee.
codice:
procedure TForm1.Button1Click(Sender: TObject);
var myImage: TBitmap;
begin
myImage := TBitmap.Create;
try
if ImageList.GetBitmap(button1.Tag ,myImage) then
button1.Glyph.Assign(myImage);
if (button1.Tag = 0) then
begin
inizia Scansione'
MfTreeExplorer1.Scan;
button1.caption := 'Cancella Scansione';
button1.Tag := 1;
end;
else
begin
MfTreeExplorer1.Cancel;
button1.caption := 'Inizia Scansione';
button1.Tag := 0;
end;
finally
myImage.Free;
end;
end;
Come dicevo prima, attraverso il metodo GetBitmap, al quale passi come parametro l'indice dell'immagine che ti interessa e la variabile temporanea che contiene l'immagine.
Successivamente dovrai assegnare al pulsante il riferimento all'immaginme che hai prelevato dal contenitore, attraverso il metodo button1.Glyph.Assign.
Non ho molto tempo per descrivere meglio il funzionamento, ma le idee chiave te le ho indicate.
Ora dovrai fare qualche prova!
Ciao