Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Methode für Klasse in anderer Unit definieren (https://www.delphipraxis.net/145702-methode-fuer-klasse-anderer-unit-definieren.html)

KahPee 6. Jan 2010 16:40


Methode für Klasse in anderer Unit definieren
 
Hallo,

ich habe in einer Unit eine Klasse deklariert. Diese Klasse soll mehrere Methoden beinhalten. Allerdings möchte ich falls das möglich ist um die Übersicht zu wahren nicht alle Methoden in der gleichen Unit wie die Klassendeklaration angeben. Also die genauere Beschreibung der vormalls deklarierten Methode soll ausgelagert werden in eine zweite Unit.
Wie realisier ich das im Detail? Mit "uses"? Wenn ja wie genau?

Vielen Dank im vorraus!

Bernhard Geyer 6. Jan 2010 17:04

Re: Methode für Klasse in anderer Unit definieren
 
Geht nicht. Partial Classes werden in Delphi nicht unterstützt.

KahPee 6. Jan 2010 17:08

Re: Methode für Klasse in anderer Unit definieren
 
Ok dann realisier ich das leicht abgewandelt ;)

himitsu 6. Jan 2010 18:02

Re: Methode für Klasse in anderer Unit definieren
 
entweder über Vererbung jeweil weitere Funktionalitäten in den nächsten Units hinzufügen

oder external-funktionen, diese gehen zwar in eine andere DLL, aber man kann ja auch solche Fuktionen direkt in der EXE exportieren
(allerdings weiß ich nicht, wie das ist, wenn man 'ne statische Bindung zu sich selbst erstellen will :gruebel: )

oder Inline-Code ... so kann man Code in andere Dateien (.inc oder .pas ... die Dateierweiterung ist ja egel)
auslagern und dann via {$INCLUDE ...} einbinden

JamesTKirk 6. Jan 2010 19:08

Re: Methode für Klasse in anderer Unit definieren
 
Es ist zwar schön und gut in Units Ordnung zu halten, aber machst du dir durch Auslagern der Implementierung die ganze Ordnung nicht wieder zunichte?

Vor allem im Fall von Includes (die von der Delphi IDE nicht wirklich gut unterstützt werden) kann man da sehr leicht den Überblick verlieren. Da ich manchmal in der Free Pascal RTL rumbastel (sehr viele Includes), spreche ich da aus Erfahrung. :roll: (wobei Lazarus einem da viel abnimmt)

Mit der IDE kannst du ganz leicht zwischen Interface und Implementierung hin und her springen (kann das Delphi 4 schon?). Einfach den Textcursor auf eine Methode in deiner Klassendeklaration setzen und Strg+Shift+Runter drücken und du landest in der Implementierung der Methode. Strg+Shift+Rauf bringt dich wieder zurück ins Interface. Das funktioniert, solange die Methode ein passendes Gegenstück in der Implementierung (oder umgekehrt) hat.

Das höchste der Gefühle was man hinsichtlich Übersichtlichkeit in Object Pascal machen sollte, ist 1-Klasse-pro-Unit (was manchmal auch schwer umzusetzen ist). Die ganzen anderen Vorschläge schaffen hier schon wieder einen Grad der Unübersichtlichkeit (vor allem der Vorschlag mit dem Exportieren... das ist fast schon die Holzhammermethode :mrgreen: ).

Edit: Rechtschreibfehler korrigiert :oops:

Gruß,
Sven

himitsu 7. Jan 2010 09:28

Re: Methode für Klasse in anderer Unit definieren
 
In neueren IDE-Versionen kann man auch schön mit {$REGION ...} arbeiten und sich so den Quelltext etwas gruppieren.

http://www.delphipraxis.net/internal...region#1093015


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