Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wo ist das Delphi-Unitformat dokumentiert? (https://www.delphipraxis.net/167812-wo-ist-das-delphi-unitformat-dokumentiert.html)

Nintendo 19. Apr 2012 23:37

Wo ist das Delphi-Unitformat dokumentiert?
 
Halloo,

soeben habe ich einen Thread zur Frage der Delphi eigenen Codevervollständigung eröffnet. Die Synedit Komponenten bieten hierzu mit SynAUtoComplete und SynCompletionProposal interessante Vorarbeit.

Nur muss ich für die Zweitgenannte Komponente die Member derjenigen Klasse, die ich in einer Liste angezeigt haben will, vorher in diese Liste bringen. Quellcode könnte ich mit einem Parser analysieren. Delphi hat aber Units im Binärformat. In meinem Delphi 7 Personal fehlen die VCL Quelltexte. Dennoch kann mir Delphi diese Liste anzeigen. ALso muss der Compiler, richtiger dessen Parser die Interfacetabelle der übersetzten Units verwenden und von dort die Bezeichner liefern.

Wie aber sieht das Binärformat unserer Units konkret aus?

Wo gibt es dazu Informationen, möglichst praxisnah und gut verständlich?

Hier ist der andere Thread:
.http://www.delphipraxis.net/167811-c...rammieren.html

chaosben 20. Apr 2012 05:48

AW: Wo ist das Delphi-Unitformat dokumentiert?
 
DCU32INT konvertiert dcu's wieder zurück in Pascal-Code. Das könntest du dann wieder parsen.

mjustin 20. Apr 2012 06:10

AW: Wo ist das Delphi-Unitformat dokumentiert?
 
Zitat:

Zitat von Nintendo (Beitrag 1162738)
ALso muss der Compiler, richtiger dessen Parser die Interfacetabelle der übersetzten Units verwenden und von dort die Bezeichner liefern.

Es gibt als Ansatzpunkte RTTI (Run-time Type Information)und Debug-Symboldateien, die von diversen Tools benutzt werden. Properties kann man mit RTTI ansprechen, ab Delphi 2010 mit Extended RTTI, davor deutlich eingeschränkter. In beiden Fällen ist der Parser nicht beteiligt (der Delphi Parser kann keine kompilierten Units parsen).

Assarbad 20. Apr 2012 06:35

AW: Wo ist das Delphi-Unitformat dokumentiert?
 
Zitat:

Zitat von chaosben (Beitrag 1162755)
DCU32int konvertiert dcu's wieder zurück in Pascal-Code. Das könntest du dann wieder parsen.

Aaah, danke. Sehr interessant finde ich dort das hier (mit Doku hier). Und das Icon auf der Seite weckt Erinnerungen *schwärm* :mrgreen:

Nintendo 20. Apr 2012 10:59

AW: Wo ist das Delphi-Unitformat dokumentiert?
 
Danke Euch!

Ich habe mir die DCU32INT runter geladen. Werde besser dann parsen, da diese Codevervollständigung später auch mit anderen Programmiersparachen funktionieren soll.

Aber möglicherweise verwendet der Delphi Compiler bei den bereits kompilierten Units RTTI und Debugsymbolinformation. Aber dieser Compiler kennt ja darüber hinaus auch sein Unitformat.

Werd mich jetzt erst mal an die Lektüre machen. Quelltextstudium, Dokus von Asserbad, etc.

himitsu 20. Apr 2012 11:16

AW: Wo ist das Delphi-Unitformat dokumentiert?
 
An die RTTI einer nicht "geladenen" Unit rankommen?
OK, möglich, aber dann muß man diese RTTI auch selber parsen und kann schlecht nicht die normalen RTTI-Funktionen/Klassen verwenden.

Ich hätte eher gedacht, daß man über die Open Tools API (OTA) an solche Infos rankommt, aber diese kann man ehn ur über ein IDE-Plugin nutzen, also nicht in einem eigenständigen Programm.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz