Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TForm Dateiname (https://www.delphipraxis.net/34215-tform-dateiname.html)

trifid 19. Nov 2004 11:59


TForm Dateiname
 
Hallo,
ich habe ein Formular TForm1 welches in der Datei form1.pas und form1.dfm beschrieben ist.
Wie bekomme ich zur Laufzeit die Information, in welcher Datei die Klasse realisiert wurde?

Die Klasse ermittle ich über Self.ClassName;
Ich suche nun die Funktion f, die über f(Self.ClassName), 'form1.pas' ermittelt.

Dax 19. Nov 2004 12:01

Re: TForm Dateiname
 
Kannst du vergessen :? SOwas gibts nicht, sorry.

trifid 19. Nov 2004 12:02

Re: TForm Dateiname
 
also, von anderen OO-Sprachen bin ich da was anderes gewohnt

dizzy 19. Nov 2004 12:07

Re: TForm Dateiname
 
Das mag evtl. in Java so gehen, und da würde es noch Sinn machen da man mit dem freien Compiler dann zur Laufzeit weitere Klassen nachkompilieren könnte, aber bei Delphi macht das doch nicht wirklich Sinn oder?
Was hast du denn vor?

Stevie 19. Nov 2004 12:09

Re: TForm Dateiname
 
Hi trifid,

da die pas-Datei immer wie die Unit heißen muss:
Delphi-Quellcode:
uses
  TypInfo;

{...}

  ShowMessage(GetTypeData(Self.ClassInfo)^.UnitName+'.pas');

trifid 19. Nov 2004 12:14

Re: TForm Dateiname
 
Zitat:

Was hast du denn vor?
es handelt sich hierbei nicht um nur einen Formular.
Ein TMyCustomForm wird vererbt. Zur Laufzeit wird aber erst entschieden welches vererbte Formular nun gerade verwendet wird.
Bei (reproduzierbaren) Fehler im Formular wird ein Statusbericht erstellt Was, Wann, Wie, etc.
Schön wäre wenn ich möglichst viele Info's zusammentragen könnte.

Sicherlich könnte ich ich in jedem vererbten Forumular eine Member für FDateiname verwenden. Wenn es aber zentral einfacher abgehändelt werden könnte, würde ich mir die Schreibarbeit sparen und ich würde auch nichts vergessen. :-D

trifid 19. Nov 2004 12:17

Re: TForm Dateiname
 
Danke Stevie, perfekt :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:31 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