AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi function mit pointer als Rückgabewert - Teil 2
Thema durchsuchen
Ansicht
Themen-Optionen

function mit pointer als Rückgabewert - Teil 2

Ein Thema von Mr. No · begonnen am 20. Feb 2005 · letzter Beitrag vom 20. Feb 2005
Antwort Antwort
Seite 1 von 3  1 23      
Mr. No

Registriert seit: 16. Feb 2005
36 Beiträge
 
#1

function mit pointer als Rückgabewert - Teil 2

  Alt 20. Feb 2005, 15:02
Habe leider immer noch ein Problem mit der Deklaration

Zitat:
Delphi-Quellcode:
uses meinObjekt, ...
type
  TMainForm = class(TForm)
  ...
private
  ...
public
  function GetMeinObjekt: TmeinObjekt;
  ...
end;



var
  MyObject: TmeinObjekt;

  function TMainForm.GetMeinObjekt: TmeinObjekt;
begin
  Result := MyObject;
end;
funktioniert nicht, da ich in der ersten Zeile einen "überkreuzenden Bezug zweier Units habe"

wenn ich stattdessen schreibe

Delphi-Quellcode:
type
  TMainForm = class(TForm)
  ...
private
  ...
public
  function GetMeinObjekt: TmeinObjekt;
  ...
end;

uses meinObjekt, ...

var
  MyObject: TmeinObjekt;

  function TMainForm.GetMeinObjekt: TmeinObjekt;
begin
  Result := MyObject;
end;
bekomme ich die Fehlermeldung:
"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?
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: function mit pointer als Rückgabewert - Teil 2

  Alt 20. Feb 2005, 15:05
Die Frage ist nicht kompllet, was willst du eigentlich ?
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Mr. No

Registriert seit: 16. Feb 2005
36 Beiträge
 
#3

Re: function mit pointer als Rückgabewert - Teil 2

  Alt 20. Feb 2005, 15:08
also in erster Linie keine Fehlermeldung mehr.

ich möchte eigentlich nur meine GetMeinObjekt-Funktion implementieren
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#4

Re: function mit pointer als Rückgabewert - Teil 2

  Alt 20. Feb 2005, 15:19
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.
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#5

Re: function mit pointer als Rückgabewert - Teil 2

  Alt 20. Feb 2005, 15:38
Zitat von Pseudemys Nelsoni:
da du einen typ aus deiner unit bereits innerhalb des interfaces brauchst, musste die unit natürlich auch da haben und nicht im implementationsteil.
Wie du siehst, hat er das schon versucht, und bekam dann 'ne Fehlermeldung


Zitat von Mr. No:
funktioniert nicht, da ich in der ersten Zeile einen "überkreuzenden Bezug zweier Units habe"
Wahrscheinlich steht deine Unit auch in meinObjekt.pas wieder im interface in der uses-Anweisung. Du verweist also auf meinObjekt, das wieder auf deine Unit verweist, das wieder auf meinObjekt verweist und so weiter. Du solltest versuchen, solche Überkreuzungen rauszubekommen. Das ganze betrifft nur Units, die im interface-Teil stehen, in implementation kannst du Units benutzen, die selbst deine Unit weider benutzen, da gibt es keine Probleme. Eine Möglichkeit wäre wie von Mario angesprochen, daß du die Klassen in nur einer Unit deklarierst.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#6

Re: function mit pointer als Rückgabewert - Teil 2

  Alt 20. Feb 2005, 15:42
Marco?

Zitat:
Wie du siehst, hat er das schon versucht, und bekam dann 'ne Fehlermeldung
jo, ich meine auch eher allgemein
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#7

Re: function mit pointer als Rückgabewert - Teil 2

  Alt 20. Feb 2005, 15:47
Zitat von Pseudemys Nelsoni:
Marco?
Hab' ich nie geschrieben!
  Mit Zitat antworten Zitat
Mr. No

Registriert seit: 16. Feb 2005
36 Beiträge
 
#8

Re: function mit pointer als Rückgabewert - Teil 2

  Alt 20. Feb 2005, 15:51
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
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.640 Beiträge
 
#9

Re: function mit pointer als Rückgabewert - Teil 2

  Alt 20. Feb 2005, 15:55
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.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Mr. No

Registriert seit: 16. Feb 2005
36 Beiträge
 
#10

Re: function mit pointer als Rückgabewert - Teil 2

  Alt 20. Feb 2005, 15:57
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 02:54 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