Delphi-PRAXiS
Seite 1 von 2  1 2      

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)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:54 Uhr.
Seite 1 von 2  1 2      

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