![]() |
function mit pointer als Rückgabewert - Teil 2
Habe leider immer noch ein Problem mit der Deklaration
Zitat:
wenn ich stattdessen schreibe
Delphi-Quellcode:
bekomme ich die Fehlermeldung:
type
TMainForm = class(TForm) ... private ... public function GetMeinObjekt: TmeinObjekt; ... end; uses meinObjekt, ... var MyObject: TmeinObjekt; function TMainForm.GetMeinObjekt: TmeinObjekt; begin Result := MyObject; end; "Deklaration von GetMeinObjekt unterscheidet sich von vorheriger Deklaration" es scheint, als müsste ich uses meinObjekt, ... vor der Funktionsdeklaration von "GetMeinObjekt" deklarieren. - Aber das funktioniert ja nicht. ?? - Totale Verwirrung - ?? Was kann man da machen? |
Re: function mit pointer als Rückgabewert - Teil 2
Die Frage ist nicht kompllet, was willst du eigentlich ?
|
Re: function mit pointer als Rückgabewert - Teil 2
also in erster Linie keine Fehlermeldung mehr.
ich möchte eigentlich nur meine GetMeinObjekt-Funktion implementieren |
Re: function mit pointer als Rückgabewert - Teil 2
hi
@Mr.No da du einen typ aus deiner unit bereits innerhalb des interfaces brauchst, musste die unit natürlich auch da haben und nicht im implementationsteil. n tip: mach am besten alles in eine unit, dann gibts keine probleme... du kannst es auch über 3 units machen, da steht hier aber auch schon oft im forum. |
Re: function mit pointer als Rückgabewert - Teil 2
Zitat:
Zitat:
|
Re: function mit pointer als Rückgabewert - Teil 2
Marco? :gruebel: :cry:
Zitat:
|
Re: function mit pointer als Rückgabewert - Teil 2
Zitat:
|
Re: function mit pointer als Rückgabewert - Teil 2
hm - gibt's da keine Möglichkeit, in beiden Units aufeinander zu verweisen? In C++ ist's doch auch möglich, dass in den Headerdateien solche Bezüge hergestellt werden
|
Re: function mit pointer als Rückgabewert - Teil 2
Nein, und das ist auch gut so :)
Die Form braucht Dein Objekt, aber Dein Objekt darf die Form nicht verwenden. Oder Andersrum: Dein Objekt verwendet die Form, dann darf die Form aber Dein Objekt nicht verwenden. Ich verwende einen Hammer, aber der Hammer darf nie und nimmer mich verwenden. Mein Haus braucht Nägel, aber ein Nagel braucht kein Haus. Mein Computer braucht Strom, aber Strom braucht meinen Computer nicht. Also wie gesagt: Entwder Du bindest eine dritte Unit ein, packst alles in die gleiche oder aber Du räumst so auf, das wirklich ein logischer Bezug entsteht und keine Henne-Ei-Problematik. |
Re: function mit pointer als Rückgabewert - Teil 2
außerdem ist mir gerade aufgefallen - in der Main-Unit verweise ich im uses-Teil des interfaces auf meine Objekt-Unit - hier tritt der Fehler auf - aber in der Objekt-Unit, steht unter uses lediglich Forms, aber sonst kein Verweis auf die Main-Unit.
Woher kann dann überhaupt der Fehler "Überkreuzender Bezug zweier Units auf 'Main'" kommen? [EDIT] stimmt leider doch nicht so ganz - es gibt einen überkreuzenden Bezug |
Re: function mit pointer als Rückgabewert - Teil 2
Poste doch bitte mal die die kompletten interface-Teile beider Units mit den entsprechenden Uses-Klauseln.
|
Re: function mit pointer als Rückgabewert - Teil 2
Mein Problem wäre gelöst, wenn man einen Pointer auf ein Memo-Feld setzen könnte. Ist so etwas möglich?
Ich müsste dann im Konstruktor meines Objektes einen Pointer mitgeben
Delphi-Quellcode:
geht schon mal nicht :roll:
constructor Create(Feld: TMemo);
|
Re: function mit pointer als Rückgabewert - Teil 2
Zitat:
Zitat:
Mein Kakao brauch nämlich Kakaopulver und Milch =) |
Re: function mit pointer als Rückgabewert - Teil 2
Zitat:
|
Re: function mit pointer als Rückgabewert - Teil 2
aber ich brauche eine Lösung :(
|
Re: function mit pointer als Rückgabewert - Teil 2
wurden dir doch oben genannt...
|
Re: function mit pointer als Rückgabewert - Teil 2
Zitat:
|
Re: function mit pointer als Rückgabewert - Teil 2
Zitat:
btw: Warum sich der Delphi Compiler die Units nicht merken kann, die er schon durchlaufen ist, frage ich allerdings auch ständig. :roll: (Naja seid ein paar Monaten frage ich mich das eigentlich nicht mehr ganz so oft :mrgreen: ) Eigentlich wäre dadurch eine Endlosschleife aus Querverweisen gar nicht möglich. |
Re: function mit pointer als Rückgabewert - Teil 2
Zitat:
@Phoenix: Gerade bei Klassen haben solche Dinge durchaus ihre Existenzberechtigung, wenn man Klassen nicht in noch eine weitere Unit auslagern will, weil sie eigentlich logisch in einer anderen Unit besser aufgehoben wären. Zitat:
|
Re: function mit pointer als Rückgabewert - Teil 2
Ich meinte das:
Delphi-Quellcode:
unit a
uses b
Delphi-Quellcode:
Ich sehe da keinen triftigen Grund für eine Zirkulärreferenz.
unit b
uses a Er muss sich doch nur a UND b angucken! In .Net geht es sogar soweit, dass ich nur noch sage: Hier ist ein Namespace -> suche dir gefälligst die passenden Dateien und nerve mich bloss nicht damit. ;) |
Re: function mit pointer als Rückgabewert - Teil 2
mit
Delphi-Quellcode:
klappt alles blendend.
constructor Create(myEditor: TCustomMemo);
Danke für Eure Hilfe!! |
Re: function mit pointer als Rückgabewert - Teil 2
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:59 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