Sök…


Introduktion

Delphi tillhandahöll Runtime Type Information (RTTI) för mer än ett decennium sedan. Än idag är många utvecklare inte helt medvetna om dess risker och fördelar.

Kort sagt, Runtime Type Information är information om ett objekts datatyp som ställs in i minnet vid körning.

RTTI tillhandahåller ett sätt att avgöra om ett objekts typ är den för en viss klass eller en av dess ättlingar.

Anmärkningar

RTTI I DELPHI - FÖRKLARAT

Information om körtidstyp i Delphi - Kan det göra något för dig? artikel av Brian Long ger en bra introduktion till RTTI-kapaciteten i Delphi. Brian förklarar att RTTI-stödet i Delphi först och främst har lagts till för att designmiljön ska kunna göra sitt jobb, men att utvecklare också kan dra nytta av det för att uppnå vissa kodförenklingar. Den här artikeln ger också en bra översikt över RTTI-klasserna tillsammans med några exempel.

Exempel inkluderar: Läsa och skriva godtyckliga egenskaper, vanliga egenskaper utan gemensam förfader, kopiera egenskaper från en komponent till en annan, etc.

Grundläggande klassinformation

Det här exemplet visar hur man får en härkomst till en komponent med ClassType och ClassParent . Den använder en knapp Button1: TButton och en ListBox1: TListBox på ett formulär TForm1 .

När användaren klickar på knappen läggs namnet på knappens klass och namnen på dess överordnade klasser till listrutan.

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;

Listrutan innehåller följande strängar när användaren klickar på knappen:

  • TButton
  • TButtonControl
  • Twincontrol
  • TCONTROL
  • TComponent
  • TPersistent
  • TObject


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow