![]() |
Procedure TForm.xyz in Unit
Hey, ich möchte mit eine Unit erstellen, in die ich alle möglichen Funktionen und Prozeduren packe. Diese Unit will ich dann unter uses eintragen, damit ich sie in meinen Projekten nutzen kann. Wie das geht, weiß ich auch. Ich habe nun aber ein anderes Problem.
Ich muss die Funktionen ja im Interface-Abschnitt deklarieren und in den Implementations-Abschnitt reinschreiben. Wenn ich jetzt aber z.B. so eine Prozedur machen will:
Delphi-Quellcode:
Wie muss ich die dann oben deklarieren? Wenn ich jetzt Procedure TForm.xyz(S: String); in den Interface-Teil reinschreibe, klappt das nämlich nicht.
Procedure TForm.xyz(S: String);
begin end; Hoffe, ihr könnt mir helfen. Mfg |
Re: Procedure TForm.xyz in Unit
Du kannst eine Klassen-Funktion nur in der Unit implementieren, in der die Klasse deklariert ist.
|
Re: Procedure TForm.xyz in Unit
Das heißt, es gibt keine Möglichkeit, eine solche Prozedur in eine Unit zu tun, ohne TForm zu deklarieren?
|
Re: Procedure TForm.xyz in Unit
eine andere Frage: wieso willst du denn deine Proceduren als Methoden der Form implementieren?
|
Re: Procedure TForm.xyz in Unit
Delphi unterstütz )noch) keine partielle Klassen. Alle Methoden müssen in der selben Unit deklariert werden.
|
Re: Procedure TForm.xyz in Unit
Zitat:
|
Re: Procedure TForm.xyz in Unit
Zitat:
Deine Formdeklaration ist doch bereits im interface teil. |
Re: Procedure TForm.xyz in Unit
Zitat:
|
Re: Procedure TForm.xyz in Unit
deine Main Unit sieht doch wie folgt aus:
Delphi-Quellcode:
deine neue Unit so:
unit Mainunit;
interface uses unit2; //hier ein Uses auf deine unit2 type TForm1 = class(TForm) private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1;// globale Formvariable im interface teil implementation {$R *.dfm}
Delphi-Quellcode:
wenn du das so machst, dann hast du einen Kreuzbezug zwischen deiner Mainunit und der Unit2.
unit Unit2;
interface implementation uses Mainunit;//hier ein uses auf deine mainunit; end. D.H. beide Units greifen aufeinander zu. Jetzt ist in deiner Mainunit ja
Delphi-Quellcode:
im interface teil, und damit kannst du dank Kreuzbezug direkt drauf zugreifen, auch aus der Unit2 ;)
var:form1:Tform1;
ich finde diese Lösung jedoch ziemlich bescheiden. Denn wozu mache ich ne Modulare Unit, wenn beide alles kennen ;) da kann man es gleich in eine Unit schreiben. |
Re: Procedure TForm.xyz in Unit
Ok, so geht es natürlich. Ich will aber, wie im ersten Post beschrieben, eine einzelne Unit schreiben, die ich dann in alle Projekte einbinden will, um die Funktionen nicht jedesmal kopieren zu müssen. D.h., meine Unit muss eigenständig laufen, ohne irgendeine MainUnit.
Mfg |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz