Nešto mi vuče na generice (no nisam se u njih nikad upštao u Delphiju)...
Ovako, napravio sam nekoliko naslijeđenih objekata (formi) sa raznoraznim svojstvima, metodama i sl. Sve potječu iz jedne korjenske klase, ali se na kraju razlikuju u detaljima.
Želim stvoriti neograničen broj objekata/formi iz tih raznih klasa pozivom funkcije kojoj bi samo proslijedio tip klase tj. ime, a ona bi stvorila svoju (lokalnu) varijablu sa novim objektom i pravljala bi njime.
Ne želim pisati funkciju za svaku od 500 raznih formi izvedenih iz nekoliko korjenskih, nego jefnu funkciju koja će ovisno o parametru znati koji tip napraviti.
Znači imam:
TDok = class(TForm) ... neka moja forma
TPoste = class (TDok)...
TPorezi = class (TDok)...
želim napraviti ovo:
function GetDokument (TPorezi): boolean;
.
.
A funkcija stvara novi objekt tipa Tporezi, ne želim funkciju tipa Function GetPorezi():boolean;
probao sam ideju koja naravno ne prolazi:
function GetDokument(aTip: TClass): Boolean;
var myFrm : TIPDok;
begin
myFrm := (aTip as TfrmIPDok).Create(nil); // ne pali ni ništa drugo vezano uz castanje tipova.
try
myFrm.PrimjeniOvlastinaAkcije;
myFrm.PrikaziModalno;
finally
myfrm.Free;
end;
end;
Ima li tko kakvu ideju, mozak mi stoji, negdje fulam osnovnu oop koncepciju i to ne vidim, a nema smisla pisati neke pozivne funkcije za svaku od velikog broja izvedenih formi/klasa.