Por partes....
Código Delphi
[-]
procedure holamundo;
var
boton:string;
begin
boton:=button1;
if boton.caption=('hola') then begin
boton.caption:=('adios');
end
else begin
boton.caption:=('hola');
end;
end;
La idea es buena y el código debería funcionar salvo por un detalle; Estás asignando un botón (
TButton) a otra cosa que es un tipo String (boton).
Define la variable
boton como
TButton y prueba.
Para una matriz igual, puedes definir una matriz de enteros, de strings o de Tbutton.