![]() |
methode in anderer unit implemtiren als die klasse
ich möchte auf ein ereigness (z.B. TNotifyEvent) mit einer eigenen procedure reagieren.
das problem dabei ist, dass ereignisse ja eine methode benötigen. normalerweise wäre das ja kein problem, aber ich möchte die methode, der übersichtlichkeit wegen in einer anderen unit deklarieren. ist das irgenwie möglich? am besten wäre sowas wie "externel" wie beim zugriff auf ne dll. gibs sowas auch für methoden? ps.: über die methode einfach ne procedure aufzurufen wäre bestimmt ne infache lösung aba übersichtlich udn elegant is das sicherlich nciht^^ ps2: hab die suchfunction benutz und nichts gefunden |
Re: methode in anderer unit implemtiren als die klasse
Du möchtest sozusagen die Definition der Klasse auf mehrere Units aufteilen? Das geht so in Delphi (Win32) nicht.
Lösung hast du schon erkannt, eine Produre aus einer anderen Unit auslagern ;) Btw.: Warum teilen? Wenn die Klasse zu umfangreich wird, könntest du auch die Klasse selbst in mehrere Klassen aufteilen ;) |
Re: methode in anderer unit implemtiren als die klasse
Mir ist nicht ganz klar, was du vor hast, aber vielleicht sind
![]() |
Re: methode in anderer unit implemtiren als die klasse
Zitat:
ne eigene klassse macht glaube ich keinen sinn, da ich auf form1 mit label und später mit bitmap und änlcihen arbeiten will, die ich während der laufzeit erstellen lasse und mit der maus verschieben und änliches amchen will. damit das noch übersichtlich bleibt soll jede komponentenart seine eigene unit geben. eigene klassen machen also glaub ich keinen sinn und übersteigen meine fähigkeiten^^. @namenlozer: werd mal dein tut angucken und sehen on es das is was ich brauch thx schonmal an euch beide |
Re: methode in anderer unit implemtiren als die klasse
TNotifyEvent ist als Procedure of Class definiert, also als Klassenprocedur und dieses ist ein Doppelzeiger, welcher die Klasseninstanz und den Prozedurzeiger kennt.
Also kannst du dieses auch ganz einfach auf eine Ereignisprozedur in einer anderen Klasse Zeigen lassen.
Delphi-Quellcode:
type TKlasse = class
procedure irgendwas(sender: TObject); end; var xyz: TKlasse; // z.B. Edit.OnClick := xyz.irgendwas; // und falls es Namensprobleme gibt, dann auch inkl. Unit // also ganz einfach den allgemeinen Namensregeln entsprechend Edit.OnClick := unit2.xyz.irgendwas; |
Re: methode in anderer unit implemtiren als die klasse
ich hab ja für die methode keine klasse in der unit.
das man die unit auch im namen nennen kann wusste ich nicht, werds ausprobiren. ich gib mich erstmal mit den antworten zu frieden und werde solange rumprobiren bis es klappt oder ihc aufgeben und den thrad wieder aktivire^^ |
Re: methode in anderer unit implemtiren als die klasse
Es gibt noch einen ganz hinterhältigen Weg: Du kannst ein TNotifyEvent erzeugen, dessen Self-Pointer auf nil und dessen anderer Pointer auf ne normale Prozedur zeigt :mrgreen:
Der Weg ist aber so pöhse den möchte ich hier jetzt nicht als Code ausführen :angel: (irgendwo in der DP ist aber ein Beispielcode) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:42 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 by Thomas Breitkreuz