AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Zyklusproblem ( Circular reference ) [solved]
Thema durchsuchen
Ansicht
Themen-Optionen

Zyklusproblem ( Circular reference ) [solved]

Ein Thema von DGS · begonnen am 22. Apr 2007 · letzter Beitrag vom 24. Apr 2007
 
Benutzerbild von Jelly
Jelly

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

Re: Zyklusproblem ( Circular reference )

  Alt 23. Apr 2007, 19:42
Zitat von DGS:
Und glaub, ich weis jetzt, was du meintest. In der Unit1. wird ja eine globale Variable Form1 deklariert.
*auf Kopf klatsch*
Dann reicht ja Unit1 in implementation aus und greif auf diese Variable zu.
Darf ich nochmal nachschlagen, damit's wenigstens bischen weh tut

Hast du nicht in deinem ersten Beitrag was von OO Programmierung geschrieben
Dann solltest du aber wissen, dass man nicht unbedingt auf Instanzen direkt zugreifen soll. Was, wenn du plötzlich 2 Forms vom Typ TForm1 offen hast. Zugegeben, das ist in dem Beispiel eher unwahrscheinlich. Aber TForm1 könnte ja auch eine andere Klasse sein, von der du unterschiedliche Instanzen erzeugst.
In Unit2 (bzw. in TForm2 oder was auch immer) willst du auf Eigenschaften und Methoden von TForm1 zugreifen. Also übergib gefälligst eine Instanz von TForm1 im Konstruktor von TForm2.
Ich hoff, du verstehst was ich schreibe.

Und um deinem zirkulärem Problem aus dem Weg zu gehen, deklariere den constructor von TForm2 so:

Delphi-Quellcode:
unit SubUnit;

interface

uses
  forms;

type
  tHelp = class
  private
    fvater : tForm;
  public
    constructor Create(vater : TForm)
  end;

implementation
uses unit1 ;

constructor tHelp.Create(vater : TForm);
begin
  assert ( vater is TForm, 'Parameter Vater con tHel.Create muss vom Type TForm1 sein.') ;
  inherited Create;

  fVater := vater;

  // irgendwas mit fVater machen
  with fVater as TForm1 do begin
  // ...
  end ;
end;

end.
  Mit Zitat antworten Zitat
 


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 16:51 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