AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Unit Namen mit Prefix

Ein Thema von TM6 · begonnen am 17. Feb 2022 · letzter Beitrag vom 21. Feb 2022
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.535 Beiträge
 
Delphi 12 Athens
 
#1

AW: Unit Namen mit Prefix

  Alt 17. Feb 2022, 20:59
TestUnit in '..\Tests\abc.testunit.pas', hier mal besser nicht abkürzen.


Mit IN sagst du, wo es zu finden ist und wie es heißt.

Ohne IN wird gesucht und bei der Suche werden die Präfixe bachtet.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
TM6

Registriert seit: 14. Dez 2004
66 Beiträge
 
Delphi 12 Athens
 
#2

AW: Unit Namen mit Prefix

  Alt 18. Feb 2022, 08:28
TestUnit in '..\Tests\abc.testunit.pas', hier mal besser nicht abkürzen.
Was meinst Du damit?

Das?
abc.TestUnit in '..\Tests\abc.testunit.pas' Aber da kann ich das Projekt nicht erzeugen, da die unit testunit (bzw. in dem unten aufgeführten code unit1) nicht gefunden wird.

Ziel war, dass ich projektabhängig eine unit1 mehrmals erstelle, also zum Beispiel
projekt1.unit1.pas
projekt2.unit1.pas
projekt3.unit1.pas

und auf diese dann nur unit1 zugreife.
Also nur
Delphi-Quellcode:
uses
unit1.pas,
anstatt massenhaft compiler-schalter zu verwenden.
Delphi-Quellcode:
uses
{$ifdef projekt1}
projekt1.unit1.pas,
{$endif}
{$ifdef projekt2}
projekt2.unit1.pas,
{$endif}
{$ifdef projekt3}
projekt3.unit1.pas,
{$endif}
Im ersten Fall könnte ich alle units so lassen, wie bisher. Für den zweiten Fall hätte ich einiges aufzuarbeiten.
Aktuell habe ich die unit1 noch nicht aufgesplittet. Das ist aber notwendigund ich dachte, dass es mit den Prefixen einfach ohne große Änderungen gehen würde.
  Mit Zitat antworten Zitat
TM6

Registriert seit: 14. Dez 2004
66 Beiträge
 
Delphi 12 Athens
 
#3

AW: Unit Namen mit Prefix

  Alt 18. Feb 2022, 08:50
Ich habe das Ganze auch in Delphi 10.4 getestet. Dasselbe Verhalten.

Danach hatte ich ein neues Testprojekt erstellt und da läuft alles problemlos.
Und da ist es dann auch egal, was ich in die dpr schreibe

  Unit2 in 'projekt1.Unit2.pas'; und
  projekt1.Unit2 in 'projekt1.Unit2.pas'; funktioniert jeweils ohne Probleme.

Nur in dem eigentlichen Projekt, in dem ich diese Funktionalität nutzen möchte, gibt es das Problem
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.752 Beiträge
 
Delphi 12 Athens
 
#4

AW: Unit Namen mit Prefix

  Alt 18. Feb 2022, 08:52
Danach hatte ich ein neues Testprojekt erstellt und da läuft alles problemlos.
Die Gültigkeitsbereichsnamen werden je nach Konfiguration und Plattform getrennt angegeben. Kann es sein, das da noch was nicht ganz korrekt ist?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
TM6

Registriert seit: 14. Dez 2004
66 Beiträge
 
Delphi 12 Athens
 
#5

AW: Unit Namen mit Prefix

  Alt 18. Feb 2022, 09:21
Ich hatte das in "Alle Konfigurationen - Alle Plattformen" eingetragen.

Und zumindest die eine Variante funktioniert ja beim Erzeugen - nur nicht beim Compilieren.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.535 Beiträge
 
Delphi 12 Athens
 
#6

AW: Unit Namen mit Prefix

  Alt 18. Feb 2022, 09:35
Bei geänderten DEFINEs, außerhalb der Quellcodes (Projektoptionen bzw. Compiler-Parameter), muß man schon immer komplett neu erzeugen,
da die verwendeten DEFINEs nicht in der DCU gespeichert und im nächsten Durschlauf geprüft werden.

Wird nur kompiliert, dann wird die Unit nicht neu erzeugt.



Wenn sich beim Kompilieren entscheiden soll, was genommen wird, dann kannst/darfst du den Pfad nicht angeben.

Ja, ist blöd, weil dann diese Unit nicht in der Projektverwaltung auftaucht, aber welche soll da denn angezeigt weerden, wenn noch nicht klar ist, welche es werden wird und sich das auch schnell mal ändern kann? (config umschalten)


Schön, dass im aktuellen Delphi die Projektverwaltung mit $IF/IFDEF nach 20 jahren halbwegs umgehen kann (die nun endlich nicht mehr einfach so löscht),
aber blöd, dass sie damit immnoch nicht wirklich umgehen kann (was die Anzeige und verwaltung betrifft).
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (18. Feb 2022 um 09:37 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.752 Beiträge
 
Delphi 12 Athens
 
#7

AW: Unit Namen mit Prefix

  Alt 18. Feb 2022, 09:52
Wenn sich beim Kompilieren entscheiden soll, was genommen wird, dann kannst/darfst du den Pfad nicht angeben.

Ja, ist blöd, weil dann diese Unit nicht in der Projektverwaltung auftaucht, aber welche soll da denn angezeigt weerden, wenn noch nicht klar ist, welche es werden wird und sich das auch schnell mal ändern kann? (config umschalten)
Wenn ich das richtig verstanden habe, trifft das hier nicht zu.

projektabhängig eine unit1 mehrmals erstelle
Das Projekt verwendet damit ja die ausgeschriebene Unit und kann die somit in das Projekt aufnehmen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
TM6

Registriert seit: 14. Dez 2004
66 Beiträge
 
Delphi 12 Athens
 
#8

AW: Unit Namen mit Prefix

  Alt 18. Feb 2022, 12:19
Wenn ich das richtig verstanden habe, trifft das hier nicht zu.
Korrekt.

projektabhängig eine unit1 mehrmals erstelle
Das Projekt verwendet damit ja die ausgeschriebene Unit und kann die somit in das Projekt aufnehmen.
In meinem Fall ja eher könnte.


Noch einmal das Verhalten in Abhängigkeit, wie die unit in der dpr steht, zusammengefasst:
projekt1.unit1.pas in 'projekt1.unit1.pas' - Projekt lässt sich nicht erzeugen
unit1.pas in 'projekt1.unit1.pas' - Projekt lässt sich erzeugen, aber nicht compilieren

Das gilt nur für das eigentliche Projekt. In einem kleinen Testprojekt funktioniert es.

In der Zwischenzeit habe ich schon mehr Zeit in die Fehlersuche investiert als die Änderungen in den vielen units Zeit gekostet hätten.
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:19 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