Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Verbindung von Unit und Formular verschwindet (https://www.delphipraxis.net/90133-verbindung-von-unit-und-formular-verschwindet.html)

ksh 12. Apr 2007 09:33


Verbindung von Unit und Formular verschwindet
 
Hallo!

Also so ein komisches Problem hatte ich noch nie... Ich binde Units aus zwei verschiedenen Ordnern ein - bisher waren alle Formulare in einem Ordner. Dies musste ich umstellen, so dass meine Main mit dem Fenster MainWindow in dem anderen Ordner ist. Das erste Mal klappt alles noch, aber sobald ich das Projekt neu starte, bringt er die Fehlermeldung, dass er die Ressource nicht finden kann.
Und wenn ich jetzt die Unit neu einbinde, findet er das Formular überhaupt nicht. Jetzt hab ich die Unit wieder zu den anderen Ordner gepackt und nun verschwindet auf einmal das nächste Formular! Er bindet nur noch die Unit ein und wieder nicht das dazugehörige Formular - obwohl ich nichts geändert habe.
Ich habe leider keinen Schimmer, woran das liegen könnte - vielleicht habt ihr eine Idee. Ich wüsste auch nicht, welcher Code euch helfen könnte...

Hier mal die Projektdatei:
Delphi-Quellcode:
program Projekt;


{$R *.res}
                       
uses
  Forms,
  Access in 'Access.pas',
  Ausgabe in 'Ausgabe.pas',
  Berechnen in 'Berechnen.pas',
  ObjIAS in 'ObjIAS.pas',
  ObjJub in 'ObjJub.pas',
  ObjRent in 'ObjRent.pas',
  ObjTeilw in 'ObjTeilw.pas',
  ObjIFRS in 'ObjIFRS.pas',
  ADOX_TLB in '..\..\Masterordner_Kollektiv\ADOX_TLB.pas',
  DialogEinlesen in '..\..\Masterordner_Kollektiv\DialogEinlesen.pas' {DialogTabelle},
  Hifunc in '..\..\Masterordner_Kollektiv\Hifunc.pas',
  HiType in '..\..\Masterordner_Kollektiv\HiType.pas',
  MyPrint in '..\..\Masterordner_Kollektiv\MyPrint.pas',
  ObjEin in '..\..\Masterordner_Kollektiv\ObjEin.pas',
  ObjPers in '..\..\Masterordner_Kollektiv\ObjPers.pas',
  qxheub05 in '..\..\Masterordner_Kollektiv\qxheub05.pas',
  Such in '..\..\Masterordner_Kollektiv\Such.pas' {SuchDialog},
  svrent05 in '..\..\Masterordner_Kollektiv\svrent05.pas',
  svrent in '..\..\Masterordner_Kollektiv\svrent.pas',
  tw05_IAS in '..\..\Masterordner_Kollektiv\tw05_IAS.pas',
  tw05_JUB in '..\..\Masterordner_Kollektiv\tw05_JUB.pas',
  tw05_PEN in '..\..\Masterordner_Kollektiv\tw05_PEN.pas',
  Main in 'Main.pas';

// bei den letzten beiden müsste hier jeweils ein Formular mit eingebunden werden!!!!

begin
  CreateAngDaten(AngDaten);
  Application.Initialize;
  Application.Title := 'Teilwert Version 2.2';
  // ohne Formular wirds hier natürlich nicht aufgerufen...
  Application.CreateForm(TDialogTabelle, DialogTabelle);
  Application.CreateForm(TSuchDialog, SuchDialog);
  Application.Run;
end.
und hier noch der Anfang der Main-Unit
Delphi-Quellcode:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Menus, Grids, StdCtrls, ExtCtrls, Printers, WinProcs, Clipbrd, HiType,
  MyPrint, Access, hifunc, Dialog_Pension, Ausgabe,
  ObjEin, ObjPers, ObjRent, ObjTeilw, ObjJub, ObjIAS;  // zu berechnende Units hier einbinden

const Version = 'Angebot v. 2.0';              
type
  TMainWindow = class(TForm)
    MainMenu: TMainMenu;
    Datei: TMenuItem;
    Neu: TMenuItem;
    N1: TMenuItem;
    Drucken: TMenuItem;
    N2: TMenuItem;
    Beenden: TMenuItem;
    Bearbeiten: TMenuItem;
    Aendern: TMenuItem;
    PrintDialog: TPrintDialog;
    PrinterSetupDialog: TPrinterSetupDialog;
    SaveDialog: TSaveDialog;
    Bild: TImage;
    OpenDialog: TOpenDialog;
    Info1: TMenuItem;
    ffnen1: TMenuItem;

        // hier folgen die Prozeduren

Ines 12. Apr 2007 10:07

Re: Verbindung von Unit und Formular verschwindet
 
Hallo ksh,

ich hatte ähnliches Problem. Bei mir lag es daran, daß ich das Projektfile selbst editiert habe und die Schreibweise mit "..\..\Masterordner_Kollektiv" nicht gepaßt hat.

Ich habe daraufhin alle Units entfernt und neu eingebunden.
Danach hat es funktioniert.

Viele Grüße
Ines

ksh 12. Apr 2007 10:10

Re: Verbindung von Unit und Formular verschwindet
 
Hallo Ines!

Leider ist es das nicht bei mir. Wenn ich eine alte Unit einbinde, dann klappt es auch. Aber sobald ich eben das Projekt nochmal starte, ist das Formular weg, obwohl es eigentlich da ist. Habe es schon ein paar Mal neu eingebunden und natürlich vorher entfernt.

Trotzdem danke!

Karina

ksh 12. Apr 2007 10:15

Re: Verbindung von Unit und Formular verschwindet
 
Super! Kann jetzt jede Unit neu einbinden und das Formular verschwindet bei allen (die eins haben)!!!!
Muss man irgendwo etwas angeben, was ich übersehen habe?! Also an den Einstellungen bei Delphi hab ich nichts verändert und bei der Projektdatei nur gelöscht oder hinzugefügt...
:wall:

himitsu 12. Apr 2007 10:19

Re: Verbindung von Unit und Formular verschwindet
 
Code:
Such in '..\..\Masterordner_Kollektiv\Such.pas' {[color=#ff0000]SuchDialog[/color]},
kann es sein, daß Delphi auf diese Schreibweise besteht?
das Rote steht für die "globale" Formular-Variable. (und natürlich sollten da auch keine Namen mehrfach vorkommen)

ach ja, die da is gemeint:
Code:
unit Such;

interface

uses ...;

type
  TSuchDialog = class(TForm)
    ...
  end;

var
  [color=#ff0000]SuchDialog[/color]: TSuchDialog;

implementation
Zitat:

Die IDE stellt die Verknüpfung pas <-> dfm über Kommentare im *.dpr her, z.B. wie in
und das wäre nach reichlicher Überlegung auch gut so, denn theoretisch wäre es ja möglich diese Variable anders zu bennenen und/oder wo anders zu definieren. :angel2:

Aber: pas <-> dfm wird über {$R *.dfm} in der pas festgelegt.
das pas <-> Formulardefinition (pas <-> TSuchDialog) wird so definiert ^^

uligerhardt 12. Apr 2007 10:20

Re: Verbindung von Unit und Formular verschwindet
 
Die IDE stellt die Verknüpfung pas <-> dfm über Kommentare im *.dpr her, z.B. wie in
Delphi-Quellcode:
  Such in '..\..\Masterordner_Kollektiv\Such.pas' {SuchDialog},
Bei Main fehlt in deinem dpr das {MainForm}.

HTH,
Uli.

ksh 12. Apr 2007 10:38

Re: Verbindung von Unit und Formular verschwindet
 
Das die Verknüpfung fehlt, ist mir auch aufgefallen. Bisher wurde es ja automatisch hinzugefügt und eben seit neuestem nicht mehr. Die *.dpr hab ich nicht geändert, deswegen verstehe ich ja überhaupt nicht, warum es auf einmal so ändert!
Ich weiß auch nicht, ob es etwas bringt, wenn ich das selber einfüge - dann müsste ich das jedes Mal machen, sobald ich das Projekt aufrufe!

Die Variable hab ich auch definiert (wie gesagt, alles so gleich geblieben):
Delphi-Quellcode:
var AngDaten   : TAngDaten;
    MainWindow : TMainWindow;
    PersDaten  : TPersDaten;
    DateiName  : String = '';

Luckie 12. Apr 2007 10:43

Re: Verbindung von Unit und Formular verschwindet
 
Befinden sich die Units und die zugehörigen dfm-Dateien im gleichen Verzeichnis?

ksh 12. Apr 2007 10:51

Re: Verbindung von Unit und Formular verschwindet
 
Also ich packe immer das komplette Paket in den gleichen Ordner, also bei Main z.B. dcu, ddp, dfm und die pas

Habe es jetzt einfach mal ausprobiert und alles in der Projektdatei verändert - und nun will er dann die res-Datei!

himitsu 12. Apr 2007 11:02

Re: Verbindung von Unit und Formular verschwindet
 
Zitat:

Zitat von ksh
Ich weiß auch nicht, ob es etwas bringt, wenn ich das selber einfüge - dann müsste ich das jedes Mal machen, sobald ich das Projekt aufrufe!

Wenn du es einmal eingetragen und gespeichert hast, ann sollte es ja vorhanden bleiben.

Zitat:

Zitat von ksh
Habe es jetzt einfach mal ausprobiert und alles in der Projektdatei verändert - und nun will er dann die res-Datei!

gibt es die ProjektName.res überhaupt?
Wenn nicht, dann lösch einfach {$R *.res} aus der .dpr
Und was wollen? (bei meint er, daß diese nicht gefunden wurde ... fragt nach und legt wenn gewünscht eine an ... heißt: er "meckert" nur einmal und dann nie wieder)

ksh 12. Apr 2007 11:09

Re: Verbindung von Unit und Formular verschwindet
 
Gut, es bleibt auch da. Die res-Datei vom Projekt gibt es natürlich. Aber er will nicht die vom Projekt, sondern von der einen Unit mit Formular...
Was mir auch spanisch vorkommt: ich kann mir das Formular zur entsprechenden Unit nicht anzeigen lassen, auch wenn ich es angegeben habe! Also stimmt auf alle Fälle irgendwas nicht.

himitsu 12. Apr 2007 11:25

Re: Verbindung von Unit und Formular verschwindet
 
also entweder hast du irgendwo im Projekt {$R ...}, oder {$Resources ...}, wo dann die .res dazu fehlt,

oder er meint die FormularResource, wo er dann die .dfm nicht findet (weßhalb sie dann nicht darstellbar wäre).

ksh 12. Apr 2007 11:26

Re: Verbindung von Unit und Formular verschwindet
 
Also, ich habe mal wieder alle Formulare in einen Ordner gespeichert. Und siehe da - es klappt wieder!
Weiß jemand, ob das bei Delphi so sein muss? Kann ich keine verschiedenen Formulare in verschiedenen Ordnern einbinden?!

himitsu 12. Apr 2007 11:33

Re: Verbindung von Unit und Formular verschwindet
 
Sein muß das nicht so und normaler Weise scheint es ja zu funktionieren. :angel:

ksh 12. Apr 2007 11:52

Re: Verbindung von Unit und Formular verschwindet
 
Sein oder nicht sein... Lassen wir das ;-)
Ich weiß nicht, ob es normalerweise so funktioniert. Wie gesagt, mit normalen Units hatte ich bisher auch überhaupt keine Probleme... Habe auch noch Delphi 7 - kann es auch an der Version liegen?

himitsu 12. Apr 2007 12:35

Re: Verbindung von Unit und Formular verschwindet
 
wüßt nicht warum nicht ... hab selber mit D4 und D7 keine Probleme diesbezüglich gehabt :-D
(mach sowas aber auch recht selten :angel2: )

ksh 12. Apr 2007 12:47

Re: Verbindung von Unit und Formular verschwindet
 
vielen dank für deine Hilfe himitsu!

hat denn wirklich niemand eine Idee, woran diese Aufteilung scheitern könnte?!


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:37 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