AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Namespaces unter Delphi 10 Rio

Ein Thema von Delbor · begonnen am 28. Nov 2018 · letzter Beitrag vom 6. Dez 2018
Antwort Antwort
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.196 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Namespaces unter Delphi 10 Rio

  Alt 29. Nov 2018, 12:50
Hi jaenicke

Die Palettenseite legst du ja in der Register Prozedur der Komponente fest. Und alle in ein Package geht ja nun sehr viel einfacher, wenn du die Units per Drag-and-Drop in das Package ziehst, als jedesmal den Wizard zu durchlaufen...
Upps! Klar, das mit der Palettenseite stimmt, und ich hatte mir das auch vorgenommen. Aber irgendwie gings schlicht vergessen...
Und die Sache mit dem Drag&Drop - da hätte ich auch selbst draufkommen müssen.
Die DCUs liegen jeweils zusätzlich zum Verzeichnis'Debug' im Ordner der jeweilge Komponente, während die dcps in dem unter Tools/Optionen festgelegte Ordner liegen.


Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.196 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Namespaces unter Delphi 10 Rio

  Alt 3. Dez 2018, 10:59
Hi zusammen

Das Problem ist immer noch die Unit ocr, die in diesem Package drin ist. Wie lauten denn der dcu- und der dcp-Ausgabepfad? Und wie sieht dein Bibliothkspfad aus? Wo liegt die ocr.dcu?
Hmm... Ich hab mich in den letzten Tagen ziemlich durch das Embbarcadero-Wicki gewühlt, unter anderem auch zum Thema Namespaces.
Zitat daraus:
Zitat:
Eine Unit ohne expliziten Namespace wird als generische Unit bezeichnet. Eine generische Unit ist automatisch ein Element des Projekt-Standard-Namespace. Ausgehend von der obigen Program-Deklaration veranlasst die folgende Unit-Deklaration, dass der Compiler MyUnit als Element des Namespace MyCompany.Programs behandelt:

unit MyUnit;

Der Projekt-Standard-Namespace hat bei generischen Units keinen Einfluss auf den Namen der Delphi-Quelldatei. Ausgehend von obiger Deklaration würde dieser Name MyUnit.pas lauten. Dieselbe Regel gilt für den Namen der dcu-Datei. Die resultierende dcu-Datei würde für das aktuelle Beispiel MyUnit.dcu heißen.
Das verstehe ich nun so, dass die generische Unit Ocr, sobald sie im Package unter Contains eingebunden wird, zum Projekt-Standard-Namespace des Packages gehört - und da gibt es sie eben nicht. Das heisst für mich: Ich muss herausfinden, wie der Projekt-Standard-Namespace dieser Unit heisst oder sie mit einem eigenen Namespace abspeichern.
Das würde bedeuten, dass ich die Sourcen der Komponenten neu mit einem Namespace speichern und die Komponente neu kompilieren muss.
Hat da jemand andere Erfahrungen?

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.027 Beiträge
 
Delphi 12 Athens
 
#3

AW: Namespaces unter Delphi 10 Rio

  Alt 4. Dez 2018, 03:35
Der Standard-Namespace ist einfach leer, wenn du ihn dir als String vorstellen möchtest.

Das ist einfach so wie in der Welt ohne Namespaces in alten Delphiversionen. Da ist nichts Besonderes dabei, es geht nur um den Pfad um die Unit zu finden.

Wenn es nicht klappt, ist es wie gesagt in wenigen Minuten mit dem Process Monitor herauszufinden wo diese Unit gesucht wird. (Bzw. in Sekunden, wenn man das Tool schon hat...)

Einfach einen Filter auf Path ends with ocr.dcu setzen...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Namespaces unter Delphi 10 Rio

  Alt 4. Dez 2018, 05:57
Hallo,
ich hätte mal das Leerzeichen im Pfad als mögliches Problem anzugeben.
Heiko
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.196 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Namespaces unter Delphi 10 Rio

  Alt 4. Dez 2018, 10:17
Hi zusammenn
Der Standard-Namespace ist einfach leer, wenn du ihn dir als String vorstellen möchtest.

Das ist einfach so wie in der Welt ohne Namespaces in alten Delphiversionen. Da ist nichts Besonderes dabei, es geht nur um den Pfad um die Unit zu finden.

Wenn es nicht klappt, ist es wie gesagt in wenigen Minuten mit dem Process Monitor herauszufinden wo diese Unit gesucht wird. (Bzw. in Sekunden, wenn man das Tool schon hat...)

Einfach einen Filter auf Path ends with ocr.dcu setzen...
Ich denk, ich hab meinen Denkfehler gefunden. Zitat aus dem Embarcadero-Wicki:
Zitat:
Program MyCompany.Programs.MyProgram;
Library MyCompany.Libs.MyLibrary;
Package MyCompany.Packages.MyPackage;

Diese Anweisungen richten den Projekt-Standard-Namespace für ein Programm (Program), eine Bibliothek (Library) und ein Package (Package) ein. Der Namespace ergibt sich, wenn der Bezeichner auf der rechten Seite (einschließlich Punkt) aus der Deklaration entfernt wird.
Das heisst: Mein Package 'Package Ocr.Bpl' hat gar keinen Projekt-Standard-Namespace, und die Unit 'Ocr1' kann desshalb nicht Teil dieses nichtvorhandenen Namespaces sein.

Da ich mehrere Versuche rund um dieses Package gemacht habe und das Resultat war, dass mehrere Versionen dieses Packages an an verschiedenen Orten vorhanden waren, hab ich mal den Rat von hier befolgt und alle Dateien dieses Packages gelöscht( Beitrag #4).

Eine mögliche Quelle sähe ich allenfalls noch: Die Fremdkomponenten und die eigenen Packages liegen (oder lagen) in 2 verschiedenen Verzeichnissen, bzw. ich habe die Units nicht, wie ich es bei Programmen gewohnt bin, über 'Projekt => dem Projekt hinzufügen' sondern über Rechtsklick in der Projektverwaltung hinzugefügt (unter Contains) - zumindest bis jetzt hab ich gedacht, die Unit würde sich dann im Packagepfad wiederfinden...

Hallo,
ich hätte mal das Leerzeichen im Pfad als mögliches Problem anzugeben.
Leerzeichen?
F:\Embarcadero Erweiterungs-Corner\Fremdkomponenten\...
Uupps! Das hab ich völlig übersehen!! Aber was mich sehr irritiert: solche Pfade stehen unter dem Bibliotheks- und dem Suchpfad und werden da nicht als ungültig bezeichnet.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.027 Beiträge
 
Delphi 12 Athens
 
#6

AW: Namespaces unter Delphi 10 Rio

  Alt 4. Dez 2018, 12:59
Das heisst: Mein Package 'Package Ocr.Bpl' hat gar keinen Projekt-Standard-Namespace, und die Unit 'Ocr1' kann desshalb nicht Teil dieses nichtvorhandenen Namespaces sein.
Eine Unit ohne Namespace ist immer im Standard-Namespace, zusammen mit allen anderen Units ohne Namespace. Da ist alles in Ordnung. Wenn du Unit Ocr1 heißt, wird auch nach der Ocr1.dcu gesucht bzw. auch nach der .dcp Datei des Packages.

Die Frage ist eben wo diese .dcu liegt und warum diese nicht gefunden wird. Und statt hier ewig zu suchen würde ich wirklich einfach den Process Monitor benutzen... wie gesagt, auf Filter gehen, filtern auf "Path" "ends with" "Ocr1.dcu" und bestätigen, dann einmal kompilieren bis der Fehler, dass die Unit nicht gefunden wird, kommt. Und dann einfach schauen wo gesucht wurde.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.196 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Namespaces unter Delphi 10 Rio

  Alt 4. Dez 2018, 14:20
Hi jaenicke

Ich hab mir den Prozessmanager heruntergeladen und installiert.Dann hab ich den Filter mal so eingegeben, wie du ihn notiert hast.
Inzwischen hatte ich allerdings den Filesearcher installiert - richtige Palettenseite, richtiges Icontest, weise anderes Beispielprogramm. Filesearcher drauf F9 gedrückt. Resultat:
Zitat:
[dcc32 Fataler Fehler] uMain.pas(7): F2613 Unit 'FileSearch' nicht gefunden.
Dann hab ich mal einen zweiten Filter eingegebe - bis auf den Dateinamen identisch. Ergebnisse: Der Prozessmonitor meldet 'otu of Memory undverabschiedete sich nach dem 'OK'. Also sollte ich mir die/den vorhandenen Filter anzegen lassen.
Mal sehen, wie ich da mit meinem englisch zurechtkomme...

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.027 Beiträge
 
Delphi 12 Athens
 
#8

AW: Namespaces unter Delphi 10 Rio

  Alt 5. Dez 2018, 19:44
Ergebnisse: Der Prozessmonitor meldet 'otu of Memory undverabschiedete sich nach dem 'OK'.
Komisch, wir benutzen den sehr oft und haben damit nicht solche Probleme. Eigentlich sollte das so aussehen, wenn z.B. nach der Unit ocr und ocr1 gesucht wird und ocr im Projektpfad existiert:

DelphiProcmon.png
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 15:56 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