Integer Napisano Sierpień 6, 2011 Zgłoś Share Napisano Sierpień 6, 2011 Witam. Mam nioobowskie pytanie i banalną konstrukcję, część kodu jest na wyrost "dla potomnych" a zmienne są symboliczna aby zaprezentować zasadę na przykładzie. unit Unit1; interface Uses SysUtils; type TDane = record Path: String; end; TKlasaRodzic = class private { Private declarations } FDane: TDane; public constructor Create(); destructor Destroy(); override; end; implementation constructor TKlasaRodzic.Create(); begin // FDane.Path:= GetCurrentDir; // pobranie ścieżki dostępu do exe end; destructor TKlasaRodzic.Destroy(); begin // end; unit Unit2; interface Uses Unit1, Dialogs; type TKlasaPotomek = class (TKlasaRodzic ) private { Private declarations } public constructor Create(); destructor Destroy(); override; end; implementation constructor TKlasaPotomek.Create(); begin // inherited; // zapewnia dziedziczenie kodu z klasy rodzica ShowMessage(FDane.Path); end; destructor TKlasaPotomek.Destroy(); begin // end; Najprościej było by zapewne do sekcji public ale mi zależy żeby klasy dziedziczyły po sobie a zmienna była widoczna tylko w obrębie klas a nie na zewnątrz, property mi tu nie wychodzi przynajmniej nie w takiej postaci jaką znam property BleBle: String read FBleBle; Może inna sekcja? Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Sierpień 6, 2011 Zgłoś Share Napisano Sierpień 6, 2011 protected jest dla potomnych. Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Integer Napisano Sierpień 7, 2011 Autor Zgłoś Share Napisano Sierpień 7, 2011 i wszystko gra dzięki unit Unit1; interface Uses SysUtils; type TDane = record Path: String; end; TKlasaRodzic = class private { Private declarations } protected // dane przekazywane tylko wewnątrz dla klas potomnych FDane: TDane; public constructor Create(); destructor Destroy(); override; end; implementation Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.