Embarcadero Delphi
Korzystanie z RTTI w Delphi
Szukaj…
Wprowadzenie
Delphi dostarczyło informacje o typie środowiska wykonawczego (RTTI) ponad dziesięć lat temu. Jednak nawet dziś wielu programistów nie jest w pełni świadomych ryzyka i korzyści.
Krótko mówiąc, informacje o typie środowiska wykonawczego to informacje o typie danych obiektu ustawionym w pamięci w czasie wykonywania.
RTTI zapewnia sposób ustalenia, czy typ obiektu jest typu określonej klasy czy jednego z jego potomków.
Uwagi
RTTI IN DELPHI - WYJAŚNIENIE
Informacje o typie wykonawczym w Delphi - czy może coś dla ciebie zrobić? artykuł Briana Longa stanowi świetne wprowadzenie do możliwości RTTI Delphi. Brian wyjaśnia, że obsługa RTTI w Delphi została dodana przede wszystkim, aby umożliwić środowisku projektowemu wykonanie swojej pracy, ale programiści mogą również z niego skorzystać, aby osiągnąć pewne uproszczenia kodu. Ten artykuł zawiera także świetny przegląd klas RTTI wraz z kilkoma przykładami.
Przykłady obejmują: odczytywanie i zapisywanie dowolnych właściwości, wspólne właściwości bez wspólnego przodka, kopiowanie właściwości z jednego komponentu do drugiego itp.
Podstawowe informacje o klasie
Ten przykład pokazuje, jak uzyskać pochodzenie komponentu za pomocą właściwości ClassType
i ClassParent
. Używa przycisku Button1: TButton
i pola listy ListBox1: TListBox
w formularzu TForm1
.
Gdy użytkownik kliknie przycisk, nazwa klasy przycisku i nazwy jego klas nadrzędnych są dodawane do pola listy.
procedure TForm1.Button1Click(Sender: TObject) ;
var
ClassRef: TClass;
begin
ListBox1.Clear;
ClassRef := Sender.ClassType;
while ClassRef <> nil do
begin
ListBox1.Items.Add(ClassRef.ClassName) ;
ClassRef := ClassRef.ClassParent;
end;
end;
Pole listy zawiera następujące ciągi znaków po kliknięciu przycisku przez użytkownika:
- TButton
- TButtonControl
- TWinControl
- TControl
- TComponent
- TPersistent
- TObject