AGB  ·  Datenschutz  ·  Impressum  







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

Aufruf von Mehtoden aus versch. Units

Ein Thema von MLurie · begonnen am 6. Sep 2004 · letzter Beitrag vom 6. Sep 2004
Antwort Antwort
MLurie

Registriert seit: 6. Sep 2004
Ort: Basel
10 Beiträge
 
#1

Aufruf von Mehtoden aus versch. Units

  Alt 6. Sep 2004, 14:10
Grüss Euch

Ich hab folgendes Problem: Ich schreibe an einem CGI-Server mit Parse-Funktionen. Mittlerweile ist die Komponente / Unit ziemlich gross geworden und ich möchte diese in einzelne Units aufteilen, zum Beispiel ParseDB, Admin, Logging usw.

Nun verwendet aber die ParseDB-Komponente/Unit auch Befehle der Hauptkomponente (Engine). Und da mach ich was unsauber, denn das führt zu Kreuzverweisen und die Sache klappt nicht.

Habe versucht die Units als Komponenten zu verwenden oder während der Laufzeit zu generieren... ändert nix.

Ablauf: Formular erstellt und ruft Engine auf, Engine erstellt und ruft ParseDB auf. ParseDB benötigt eine Funktion aus der Engine und da haben wir dann denn Salat: Keine Referenzierung möglich - keine Funktion aus dem Published-Teil sichtbar und beim compilieren als Komponente eine Error-Meldung wegen unbekannter Referenz.

Wie würde die optimale Lösung aussehen ? Sollte doch irgendwie gehen, oder ?

Bin für jede Hilfestellung ausgesprochen dankbar..

Michael
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Aufruf von Mehtoden aus versch. Units

  Alt 6. Sep 2004, 14:15
Du kannst Kreuzbezüge verhinden, in dem du die eine Unit im Interface-Abschnit in den uses aufnimmst und die ander im Implementation-Abschnitt der Unit. Für sauber halte ich das aber auch nicht. allerdings kann ich dir im mOment keine "saubere" Lösung anbieten, da ich nicht so ganz verstanden haben, wie deine Routinen von einander abhängen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Aufruf von Mehtoden aus versch. Units

  Alt 6. Sep 2004, 14:17
Du hast es mit typischen Kreuzverweisen zu tun, die, wenn du die Units jeweils im INTERFACE Teil einbindest, zur besagten Compilermeldung kommt. Probier mal, nach Möglichkeit, die Units erst im IMPLEMENTATION Teil einzubinden, dann sollte es klappen.

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Aufruf von Mehtoden aus versch. Units

  Alt 6. Sep 2004, 14:17
Luckie war mal wieder schneller als mein Schatten... Oder wie war das bei Luckie Luke
  Mit Zitat antworten Zitat
MLurie

Registriert seit: 6. Sep 2004
Ort: Basel
10 Beiträge
 
#5

Re: Aufruf von Mehtoden aus versch. Units

  Alt 6. Sep 2004, 15:30
Hi danke für die Ansätze. Ich kenn den IMplementation / Uses-Ansatz, aber der hilft nicht wirklich.

Hier nochmals etwas genauer das Problem:

MainUnit mit dem Namen MainF enthält eine selbstgeschriebene Komponente namens VSEngine. Die behandelt alle Parsingaufgaben.
Kommt eine Anfrage, wird die VSEngine aufgerufen. Ursprünglich hat die VSEngine alle Request in dieser einen Unit behandelt, aber das wird mir zu unübersichtlich (40 A4-Seiten).

Also würd ich gern einige Funktionen nach Themen auslagern. ZumBeispiel DatenbankParsing in die Unit ParseDB.

Nun benötigt aber ParseDB ebenfalls Funktionen der VSEngine.

Das problem beginnt schon mit der "Adressierung": Wie spreche ich das Objekt "VSEngine" mit dem Objekt "ParseDB" an ?
Ich habs mit dynamische erstellten Instanzen und mit Komponenten versucht.

Das Problem: Beim compilieren der einzelnen Units kann ich nich via Formular referenzieren (da dieses zu dem Zeitpunkt nicht existiert) - ergo bricht mir die Compilierung von ParseDB ab mit dem Hinweis Funktion xy nicht bekannt (da Referenz nicht korrekt), da die Funktion ja in VSEngine definiert ist.

Okay, wer jetzt noch versteht, hat ne Ehrenmedaille verdient

MIchael
  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 18:00 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