AGB  ·  Datenschutz  ·  Impressum  







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

dxGDIPlusClasses überall in uses injiziert

Ein Thema von TurboMagic · begonnen am 15. Mai 2020 · letzter Beitrag vom 15. Mai 2020
Antwort Antwort
Seite 1 von 2  1 2      
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#1

dxGDIPlusClasses überall in uses injiziert

  Alt 15. Mai 2020, 07:26
Hallo,

ein Kollege und ich arbeiten gemeinsam in einer Projektgruppe.

Nach dem letzten Zusammenführen wollte ich das Projekt, an dem er Änderungen
vorgenommen hat, compilieren und habe festgestellt, dass in die interface uses
aller Units die er zuletzt bearbeitet hat (die letzte Aufgabe war das Ersetzen
eines Logos auf diversen Formularen) eine Unit dxGDIPlussClasses hinzugefügt
wurde die ihc nicht habe.

Er ist auch noch in einem Projekt mit einer anderen Abteilung für das diese
auf seinem PC wohl weitere Drittanbieter Komponenten installiert haben.

Frage: woher kommt die Unit und warum ist diese ohne sein aktives Zutun in
alle bearbeiteten Units eingefügt worden?

Grüße

TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: dxGDIPlusClasses überall in uses injiziert

  Alt 15. Mai 2020, 08:12
Er kanns doch kompilieren?
Dann soll er doch mal schauen in welchen Packages/Verzeichnis die Datei bei im zu finden ist.

Dann kann man weiter schauen was ist.
Es gibt Möglichkeiten das Units sich so Registrieren um das o.g. verhalten zu verursachen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
hoika

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

AW: dxGDIPlusClasses überall in uses injiziert

  Alt 15. Mai 2020, 08:15
Hallo,
der der kompilieren kann:
die Datei dxGDIPlusClasses.pas umbenennen, Rebuild,
und man findet schnell die Units, die diese Unit eingebunden haben.
Heiko

Geändert von hoika (15. Mai 2020 um 09:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.604 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: dxGDIPlusClasses überall in uses injiziert

  Alt 15. Mai 2020, 08:54
Frage: woher kommt die Unit und warum ist diese ohne sein aktives Zutun in
alle bearbeiteten Units eingefügt worden?
dxGdiPlusClasses ist eine Unit aus DevExpress

https://stackoverflow.com/questions/...ses-dcu-delphi
Thomas Mueller
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#5

AW: dxGDIPlusClasses überall in uses injiziert

  Alt 15. Mai 2020, 09:36
Hallo,

danke schion mal für die Info, dass es eine devExpress Unit ist.

Ich frage mich jetzt halt, wie die da überall rein kam.
Da er eigentlich nur die Bilder in Standard VCL TImage Komponenten
austauschen musste halte ich es für unplausibel, dass er in alle diese
Forms (müssten 3-5 Forms gewesen sein) jeweils ein devExpress Control
irgend einer Art platziert gehabt hätte.

Es ist ja auch nur diese generische Unit in den Uses zu finden und entfernt
man die compiliert es. Daher die Überlegung, dass da temporär ein devExpress
Control in der betreffenden Form war, wieder entfernt wurde und dabei diese
Unit nicht mehr aus den Uses entfernt wurde.

Nur wie gesagt halte ich das für unplausibel. Wenn's bei einer Form gewesen
wäre hätte er evtl. mal testhalber ein devExpress Control drauf gezogen gehabt
und wieder gelöscht. Aber bei mehreren Forms? Unplausibel.

Also wie kann diese Unit noch in die Uses kommen? Manuelles hinzufügen ist
auch unplausibel.
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.604 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: dxGDIPlusClasses überall in uses injiziert

  Alt 15. Mai 2020, 11:20
Hallo,

danke schion mal für die Info, dass es eine devExpress Unit ist.

Ich frage mich jetzt halt, wie die da überall rein kam.
Da er eigentlich nur die Bilder in Standard VCL TImage Komponenten
austauschen musste halte ich es für unplausibel, dass er in alle diese
Forms (müssten 3-5 Forms gewesen sein) jeweils ein devExpress Control
irgend einer Art platziert gehabt hätte.
Achtung: Reine Spekulation, da ich DevExpress nie verwendet habe:

Ich kenne das von TeeChart, welches auch in neueren Versionen eine ähnliche Datei hinzufügt, damit zur Ausgabe GDI+ verwendet wird.

Es könnte sein, dass DevExpress denselben wie auch immer gearteten Mechanismus in der IDE implementiert hat, der automatisch diese Unit hinzufügt, wenn in einem Formular TImage verwendet wird.

Eine mögliche Lösung, ohne auf dem Rechner des Kollegen, der DevExpress installiert hat, dieses zu deinstallieren, wäre ein Unit-Alias für die Projekte, die kein DevExpress verwenden:

dxGdiPlusClasses=Controls

Das würde dazu führen, dass die Projekte auch ohne DevExpress compilieren, wenn durch Unachtsamkeit des Kollegen diese Unit eingefügt wurde. Problem dabei ist allerdings, dass wenn doch irgendwann mal DevExpress verwendet werden soll, der Mechanismus ausgehebelt wird und man sich dumm und dämlich sucht, wenn dan Fehler auftreten.

Prinzipiell halte ich es für besser, wenn der Kollege vor einem Commit darauf achtet, dass er keine Mist eincheckt. Ich erwarte von meinen Mitarbeitern jedenfalls, dass sie dies tun. Das dauert ein paar Sekunden, aber die Zeit ist gut investiert, denn sie verhindert, dass andere evtl. Stunden damit verschwenden, solche Compilefehler zu beheben.
Thomas Mueller
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#7

AW: dxGDIPlusClasses überall in uses injiziert

  Alt 15. Mai 2020, 11:43
Danke dummzeuch für diesen Hinweis!

Und ja: besser nix unpassendes einchecken ist gut.
Dazu müsste man aber, falls das automatisch eingefügt wird, einen Diff aller geänderten Units for
dem Einchcken machen nur weil deExpress (wenn die was automatisch tun) keinen besseren Lösungsansatz
gefunden hat der Projekte welche deren Controls nicht benutzen in Ruhe lässt!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: dxGDIPlusClasses überall in uses injiziert

  Alt 15. Mai 2020, 12:07
Ja, DevExpress, da werden öfters Units eingebunden, wenn man ein Formular bearbeitet. (Units der Skins, GridFilter, GraphicZeugs, ...)
Viele davon sind garnicht "direkt" nötig, aber wird irgendwas aus der Unit als Subkomponente "eventuell" verwendet oder es könnte sein, dass es verwendet würde ... blubb isses drin.

immer wiederkehrendes Problemchen:
https://supportcenter.devexpress.com...nents-are-used
https://supportcenter.devexpress.com...or-units-used/
...

Es gibt da irgendein Package, wo der meiste Code für dieses automatische Einfügen drin ist (weiß grad nicht mehr welches es war), aber wenn dein Kollege das in seiner IDE deinstalliert/deaktiviert, dann passiert sowas fast nicht mehr. (der Support von DevExpress kann ihm da eventuell helfen)




Vermutlich kannst diesen Eintrag ohne Probleme aus den Uses entfernen.

Ich vermute mal, du hast sonst keine weiteren cx/dx-Units im Uses, wenn bei dir DevExpress nicht installiert ist?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (15. Mai 2020 um 12:13 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#9

AW: dxGDIPlusClasses überall in uses injiziert

  Alt 15. Mai 2020, 12:28
Auch wenn ich nix vom oben genannten nutze:

Mein Vorgehen unter Delphi 7 ist:

In einem Projekt sind in der IDE nur die Packages aktiv, die ich für dieses Projekt benötige.

Wenn der Kollege mit DevExpress also vor der Bearbeitung Deines Projektes in seiner IDE alles von DevExpress deaktiviert, sollte das Problem nicht mehr auftreten. (Bei Delphi 7 muss man dann halt unter "Komponenten/Packages installieren" halt ein paar Häkchen wegmachen.)

Wenn er dann eines seiner Projekte nutzt, muss er halt die Packages von DevExpress aktivieren.

Das dürfte insgesammt dann weniger Aufwand sein, als ein Diff vorm Commit, Unit-Alias, der vergessen werden könnte oder sonstige "Krücken", um irgendwie an dem Problem vorbeizukommen.

Ob's bei aktuellen Delphis auch so einfach ist, wie in meinem ollen Delphi 7, weiß ich nicht.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: dxGDIPlusClasses überall in uses injiziert

  Alt 15. Mai 2020, 12:56
Und ja: besser nix unpassendes einchecken ist gut.
Dazu müsste man aber, falls das automatisch eingefügt wird, einen Diff aller geänderten Units for
dem Einchcken machen...
Aber das sollte doch Standard sein!

Sonst commiten die Entwickler ja sonst irgendetwas, was vielleicht gar nicht zum Feature oder Bugfix dazugehört.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 01:04 Uhr.
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