Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Problem mit MDIForm/MDIChild


Lunix666 - Mi 06.07.05 11:27
Titel: Problem mit MDIForm/MDIChild
Ich bin gerade dabei eine kleine TAPI-Anwendung zu basteln. Dabei habe ich ein MDIForm, aus dem über das MainMenu ein MDIChild "Telefonie-Einstellungen" gestartet wird. Idee des ganzen ist, daß ich, sobald ich die MDIForm starte, Anrufe annehmen und über andere MDIChilds Anrufe tätigen kann. Wenn ich nun die TAPI-Komponenten in das MDIChild einfüge, habe ich das Problem, daß ich beim Start der Anwendung, also des MDIForms nicht auf die TAPI-Komponenten zugreifen kann, da dazu ja erst die MDIChild "Telefonie-Einstellungen" gestartet werden müßten. Wenn ich aber die TAPI-Komponenten in das MDIForm einfüge, kann ich ja vom MDIChild nicht darauf zugreifen, da ich ja zum starten der MDIChilds über das MainMenu die MDIChilds im MDIForm usen muß:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
unit unitMDIForm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Menus, StdCtrls, unitTelephonySettings;


und ich dadurch die MDIForm nicht unter "uses" bei den MDIChilds eintragen kann, funktioniert das nicht. Hat jemand ne Möglichkeit, wie ich von den MDIChilds auf die MDIForm zugreifen kann?

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt.


jasocul - Mi 06.07.05 11:36
Titel: Re: Problem mit MDIForm/MDIChild
user profile iconLunix666 hat folgendes geschrieben:
und ich dadurch die MDIForm nicht unter "uses" bei den MDIChilds eintragen kann, ...

Das geht schon, aber ich vermeide das auch nach Möglichkeit.
In solchen Fällen benutze ich ein DataModule und packe das darauf. Dieses kann ich dann überall in die Uses-Klausel mit aufnehmen.


Lunix666 - Mi 06.07.05 11:48

Also wenn ich inner MDIForm eintrage:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
unit unitMDIForm;

interface

uses
  {...}, unitTelephonySettings;


und in der MDIChild:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
unit unitTelephonySettings;

interface

uses
  {...}, unitMDIForm;


bekomm ich folgenden Fehler:
[Fataler Fehler] unitTelephonySettings.pas(8): Überkreuzender Bezug zweier Units auf 'unitTelephonySettings'

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt.


jasocul - Mi 06.07.05 11:53

Das darfst du dann auch nicht im Uses des Interface eintragen, sondern im Uses des Implemetation-Teils:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
...
Implementation

uses
  DeineUnit;
...


Lunix666 - Mi 06.07.05 11:55

ah, thx. und schon wieder ein Stück klüger ;)