Autor Beitrag
Peter18
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 489
Erhaltene Danke: 2


Delphi4
BeitragVerfasst: Mo 03.05.10 19:01 
Ein freundliches Hallo an alle,

ich möchte die Formular-Units übersichtlich halten und außerdem häufig benutzte Routinen in Units auslagern. Da ich mich bisher in der Entwicklungsumgebung (Delphi4) umgesehen und Prototypen programmiert habe, ist dieses Problem noch nicht aufgetreten. In einem Fall hat es jedoch funktioniert. (Wieso???) :?: Warscheinlich nur eine Kleinigkeit! Diese Units sollen per Uses in anderen verwendet werden, also nicht als .DLL.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
unit Lib;

interface

uses Dialogs;

  procedure Sub1(Immage : TImage; L : TLabel; F : String);
  function Fun1(X :Integer):Integer;

implementation

procedure Sub1(Immage : TImage; L : TLabel; F : String);
..


In so eine Unit sollen die Routinen hinein, die entweder häufig benutzt werden oder aus den Formular-Units ausgelagert werden sollen. Eine solche Unit habe ich schon einmal erstellt und sie funktioniert. Nun wollte ich weitere erstellen, doch in aufrufenden Units sind die Routinen nicht bekannt und die .DCU enthält die Routinennamen auch nicht. Die neuen Units sehen für mich aus, wie die funktionierende. Muß ich ev. einen Schalter setzen oder eine Auweisung einfügen? Vielleicht kann jemand helfen, denn ich habe keinen Hinweis in der Literatur oder dem Forum gefunden.

Allen, die es versuchen meinen Dank im Voraus und
Grüße von der Nordsee
Peter
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mo 03.05.10 19:25 
hast du die unit bei uses hinzugefügt? hast du den Browsing-Path bei Delphi so erweitert das er auch den Pfad enthält wo die unit drin ist?

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Peter18 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 489
Erhaltene Danke: 2


Delphi4
BeitragVerfasst: Mo 03.05.10 23:28 
Hallo elundril,

die Unit befindet sich noch im Projektordner, wie die Unit, die funktioniert. Sonst hätte ich ja auch eine Fehlermeldung erhalten. Und die Routinennamen sind auch nicht wie bei der funktionierenden Unit in der .DCU entalten!

Danke und Grüße von der Nordsee
Peter
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Di 04.05.10 00:21 
Am besten du packst mal dein Projekt als Anhang hier rein. Wenn du das nicht willst, dann nur die Unit. Dann können wir eventuelle helfen. Es gibt auch die Situation, da verwendet Delphi ne ältere Version der Unit als wirklich vorliegt. Hatte schon das Problem, da hat selbst neu starten nix gebracht. Vielleicht die dcu mal rauslöschen (Delphi erstellt die dcu normal aus der pas).

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
Peter18 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 489
Erhaltene Danke: 2


Delphi4
BeitragVerfasst: Di 04.05.10 08:34 
Hallo Xion,

der Tipp mit .DCU löschen war gut! Offenbar ist die Unit nicht Übersetzt worden, weil noch Units in Uses fehlten. Dach dem Löschen kamen entspechende Fehlermeldungen. Etwas seltsames Verhalten! Aber wenn man es weiß ....

Also nochmals Danke und
Grüße von der Nordsee
Peter
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19322
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 05.05.10 07:43 
Der Grund ist einfach: Da die Unit nicht in dem Projekt ist wird diese nicht neu erzeugt oder überprüft. Deshalb füge ich solche Units immer dem Projekt hinzu. Dabei linke ich ein Unterverzeichnis mit einer NTFS-Junction auf das Quell-Verzeichnis der Unit / Bibliothek und kann so das Verzeichnis normal packen mit allen Dateien.

Wie das dann aussieht siehst du in dem Bild im Anhang. Ganz unten SJ Config Utils und SJ Updater Utils sind auf die entsprechenden Verzeichnisse oben gemappt. So habe ich diese gemeinsam genutzten Dateien überall zur Verfügung, kann sie in jedes Projekt einfügen, habe aber dennoch keine Verknüpfungen auf andere Verzeichnisse. Denn die würden bei einer Veröffentlichung ja stören.
Einloggen, um Attachments anzusehen!