Du erstellst eine Procedure ('Klick') der du ein Control (den Button) und einen String (Anzeige.Text) übergibst. Je nach Tag des übergebenen Controls wird der String anders verändert. Da der
var-Parameter da steht, darf der übergebene String in der procedure verändert werden.
Die Deklaration muss aber so lauten:
procedure Klick(Sender: Tcontrol; var Str: string); //Control statt Component
Bei der Implementierung kannst du dann mit dem Tag arbeiten:
Delphi-Quellcode:
procedure TForm1.Klick(Sender: Tcontrol; var Str: string);
begin
if str = '0' then
str := inttostr(sender.tag) // kein ';' vor 'else' !!
else
str := str + inttostr(sender.tag);
showmessage(str);
end;
Beim Aufruf übergibst du dann den Button und der String der verändert werden soll. (Self ist falsch, damit würdest du das Form übergeben

).
Also
Klick(Button1,Anzeige.text);
So funzt es erstmal.
Erwarte das Beste und bereite dich auf das Schlimmste vor.