AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Procedure TForm.xyz in Unit

Ein Thema von Fussball-Robby · begonnen am 29. Mär 2008 · letzter Beitrag vom 30. Mär 2008
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#1

Procedure TForm.xyz in Unit

  Alt 29. Mär 2008, 21:02
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:
Procedure TForm.xyz(S: String);
begin
end;
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.
Hoffe, ihr könnt mir helfen.

Mfg
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Procedure TForm.xyz in Unit

  Alt 29. Mär 2008, 21:07
Du kannst eine Klassen-Funktion nur in der Unit implementieren, in der die Klasse deklariert ist.
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Procedure TForm.xyz in Unit

  Alt 29. Mär 2008, 21:08
Das heißt, es gibt keine Möglichkeit, eine solche Prozedur in eine Unit zu tun, ohne TForm zu deklarieren?
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Noobinator

Registriert seit: 9. Mai 2006
147 Beiträge
 
Delphi 7 Personal
 
#4

Re: Procedure TForm.xyz in Unit

  Alt 29. Mär 2008, 21:08
eine andere Frage: wieso willst du denn deine Proceduren als Methoden der Form implementieren?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Procedure TForm.xyz in Unit

  Alt 29. Mär 2008, 21:09
Delphi unterstütz )noch) keine partielle Klassen. Alle Methoden müssen in der selben Unit deklariert werden.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Procedure TForm.xyz in Unit

  Alt 29. Mär 2008, 21:11
Zitat von Noobinator:
eine andere Frage: wieso willst du denn deine Proceduren als Methoden der Form implementieren?
Da ich in manchen Prozeduren z.B. die Funktion ScreenToClient() benutze, für die ich eine TForm brauche, und ich will die Form ungerne als Parameter mitgeben.
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Noobinator

Registriert seit: 9. Mai 2006
147 Beiträge
 
Delphi 7 Personal
 
#7

Re: Procedure TForm.xyz in Unit

  Alt 29. Mär 2008, 21:15
Zitat von Fussball-Robby:
Zitat von Noobinator:
eine andere Frage: wieso willst du denn deine Proceduren als Methoden der Form implementieren?
Da ich in manchen Prozeduren z.B. die Funktion ScreenToClient() benutze, für die ich eine TForm brauche, und ich will die Form ungerne als Parameter mitgeben.
Dann realisieren das ganze doch einfach über einen Kreuzbezug.
Deine Formdeklaration ist doch bereits im interface teil.
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Procedure TForm.xyz in Unit

  Alt 29. Mär 2008, 21:21
Zitat von Noobinator:
Deine Formdeklaration ist doch bereits im interface teil.
Nein, ist sie ja eben nicht, da ich eine einfache Unit OHNE Form habe.
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Noobinator

Registriert seit: 9. Mai 2006
147 Beiträge
 
Delphi 7 Personal
 
#9

Re: Procedure TForm.xyz in Unit

  Alt 29. Mär 2008, 21:27
deine Main Unit sieht doch wie folgt aus:

Delphi-Quellcode:
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}
deine neue Unit so:

Delphi-Quellcode:
unit Unit2;

interface

implementation
uses Mainunit;//hier ein uses auf deine mainunit;

end.
wenn du das so machst, dann hast du einen Kreuzbezug zwischen deiner Mainunit und der Unit2.
D.H. beide Units greifen aufeinander zu.

Jetzt ist in deiner Mainunit ja var:form1:Tform1; im interface teil, und damit kannst du dank Kreuzbezug direkt drauf zugreifen, auch aus der Unit2

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.
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Procedure TForm.xyz in Unit

  Alt 29. Mär 2008, 21:31
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
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 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