Jest sobie procedura, która coś tam robi... wyniki jej działania są zwracane na bieżąco przez referencję (var Info).
Prosty przykład:
procedure SkanujDysk(Drive: char; var Info: string);
begin
repeat ...
//skanuje dysk...
Info := 'Aktualnie skanowany katalog to ...';
until...
end;
Wywołanie:
var
StatusBar: TStatusBar;
begin
SkanujDysk("C:", StatusBar.SimpleText);
end;
Niestety to nie zadziała. Nie chciałbym przekazywać całego obiektu TStatusBar do procedury, gdyż to ma być uniwersalne i w przyszłości mogę tam podać jako parametr np Label1.Text. Ogólnie można przyjąć parametr var jako TObject ale wtedy znowu nie podam zwykłej zmiennej typu string... Jak byście to rozwiązali? Procedura będzie zamknięta w oddzielnej bibliotece i nie chce się z tej procedury odwoływać do StatusBar np. przez
Form1.StatusBar1...
bo przecież nie o to chodzi...