Dzięki za porady. Zrobiłem podobnie do @marogo. Mój komponent wygląda tak:
W programie wywołuje procedurę:
Kopiuj
TIloscChorych.licz_chorych(Root);
Root to adres początku listy.
Ale to i tak nie chce zadziałać. Gdy kompiluję wywala błąd: [DCC Error] Pacjeci.pas(396): E2010 Incompatible types: 'IloscChorych.Wsk' and 'Pacjeci.Wsk'.
Już naprawdę nie wiem jak przekazać wartość Root do komponentu.
Wygląda na to, że typ "Wsk" zadeklarowałeś nie tylko w module "IloscChorych", ale też jego klon w (głównym?) module programu "Pacjeci", stąd ten konflikt.
Po prostu wywal deklarację tego typu z modułu "Pacjeci", bo skoro na liście "uses" tego modułu jest moduł "IloscChorych", to dzięki temu moduł "Pacjeci" będzie
"znał" typ "Wsk".
A tak poza tym, to co to za wywołanie metody "licz_chorych":
Kopiuj
TIloscChorych.licz_chorych(Root);
Jak już, to jeśli położyłeś komponent "TIloscChorych" na formatce modułu "Pacjeci", to wywołanie metody "licz_chorych" powinno wyglądać np. tak:
Kopiuj
Var
IloscChorych1: TIloscChorych; //to ci się samo dopisało w definicji klasy formatki głównej
IloscChorych1.licz_chorych(Root);
A jeśli tworzysz komponent dynamicznie (nie położyłeś go na formatce tego modułu "Pacjeci"):
Kopiuj
Var
IloscChorych: TIloscChorych;
IloscChorych:=TIloscChorych.Create;
try
IloscChorych.licz_chorych(Root);
(...)
finally
IloscChorych.Free;
end;