AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi methode in anderer unit implemtiren als die klasse
Thema durchsuchen
Ansicht
Themen-Optionen

methode in anderer unit implemtiren als die klasse

Ein Thema von tabl · begonnen am 25. Jul 2009 · letzter Beitrag vom 25. Jul 2009
Antwort Antwort
tabl

Registriert seit: 27. Apr 2009
Ort: 31582
19 Beiträge
 
Delphi 7 Personal
 
#1

methode in anderer unit implemtiren als die klasse

  Alt 25. Jul 2009, 19:01
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
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: methode in anderer unit implemtiren als die klasse

  Alt 25. Jul 2009, 19:10
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
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#3

Re: methode in anderer unit implemtiren als die klasse

  Alt 25. Jul 2009, 19:13
Mir ist nicht ganz klar, was du vor hast, aber vielleicht sind Includes das, was du suchst. Allerdings halte ich persönlich nicht viel davon, Code, der zusammengehört, in viele kleine Einzelteile zu zerhacken - dadurch wird es nämlich keinesfalls übersichtlicher. Sorge lieber dafür, dass der Code gut strukturiert ist und jede Klasse oder Funktion genau eine Aufgabe erfüllt.
  Mit Zitat antworten Zitat
tabl

Registriert seit: 27. Apr 2009
Ort: 31582
19 Beiträge
 
Delphi 7 Personal
 
#4

Re: methode in anderer unit implemtiren als die klasse

  Alt 25. Jul 2009, 19:20
Zitat:
Du möchtest sozusagen die Definition der Klasse auf mehrere Units aufteilen?
nicht wirklich. ich will bloß die "methoden beschreibung" in einer anderen unit haben.

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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

Re: methode in anderer unit implemtiren als die klasse

  Alt 25. Jul 2009, 19:21
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;
$2B or not $2B
  Mit Zitat antworten Zitat
tabl

Registriert seit: 27. Apr 2009
Ort: 31582
19 Beiträge
 
Delphi 7 Personal
 
#6

Re: methode in anderer unit implemtiren als die klasse

  Alt 25. Jul 2009, 19:27
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^^
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#7

Re: methode in anderer unit implemtiren als die klasse

  Alt 25. Jul 2009, 19:55
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

Der Weg ist aber so pöhse den möchte ich hier jetzt nicht als Code ausführen (irgendwo in der DP ist aber ein Beispielcode)
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:53 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