Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Meldung "Dupicate resource XYZ ... kept ... ABC discarded" (https://www.delphipraxis.net/199198-meldung-dupicate-resource-xyz-kept-abc-discarded.html)

Harry Stahl 5. Jan 2019 14:04

Meldung "Dupicate resource XYZ ... kept ... ABC discarded"
 
Die folgende Meldung erhalte ich gleich 5 mal:

[dcc32 Hinweis] H2161 Warning: Duplicate resource: Type 12 (CURSOR GROUP), ID 32761; File c:\program files (x86)\embarcadero\studio\20.0\lib\Win32\release\Co ntrols.res resource kept; file c:\program files (x86)\embarcadero\studio\20.0\lib\Win32\release\FM X.Controls.Win.res resource discarded.

Es handelt sich um eine FMX-Anwendung, in der ich für die Plattform-Windows an einigen Stellen nicht ohne direkte WinApi-Aufrufe auskomme und daher in speziellen Plattformunits auch Windows.api und anderes einbinden muss.

Vom Prinzip her hätte ich ja eher die FMX.Ressourcen behalten wollen, statt die Win32, nachteilige Effekte für das Programm kann ich aber nicht feststellen.

Was mich nervt ist, dass man die Meldung anscheinend nicht abstellen kann, oder?

Die "Ressourcen-Linker-Warung" unter Projekt, Optionen, Hinweise und Warnungen auszuschalten, bringt jedenfalls nichts.

Insgesamt sowieso eine seltsame Meldung: Hinweis / Warning... Ja, was denn nun?

Schokohase 5. Jan 2019 14:32

AW: Meldung "Dupicate resource XYZ ... kept ... ABC discarded"
 
Du wirst irgendwo direkt oder indirekt die
Delphi-Quellcode:
Vcl.Controls
eingebunden haben, denn genau dadurch kommt dieser Fehler.

Harry Stahl 5. Jan 2019 15:59

AW: Meldung "Dupicate resource XYZ ... kept ... ABC discarded"
 
Direkt ist die nirgendwo drin, könnte aber indirekt über VCL.Clipboard drin sein, die ich unter Windows brauche, weil ich bislang keinen Weg gefunden habe, Clipboard-formate mit CF_DROP nur mit FMX-Funktionen zu bearbeiten (selbst nicht über den "IFMXExtendedClipboardService").

Daher nutze ich die VCL.Clipboard in einer Windows-Plattform-Unit (natürlich nur unter Windows). Über die VCL.Clipboard wird VCL.Forms und darüber VCL.Controls eingebunden.

Aber selbst wenn ich die VCL.Clipboard rausnehme (was ich wirklich gerne tun würde), bleibt das Problem (auch wenn ich Projekt bereinige und nochmal vollständig compiliere).

Muss also noch irgendwo anders ein Punkt sein (ansonsten habe ich aber definitiv keine VCL.units im Projekt drin).

Harry Stahl 5. Jan 2019 17:42

AW: Meldung "Dupicate resource XYZ ... kept ... ABC discarded"
 
Die VCL.Clipbrd konnte ich jetzt doch rausnehmen, da man die Behandlung des CF-Drop mit den Units WinApi und ShellApi alleine auch erreichen kann.

Dann habe ich noch gesehen, dass ich doch noch eine VCL.DDEMan drin habe (wegen Unterstützung von DDE unter Windows).

Das ist letztlich dann (der letzte) Übeltäter, wenn ich die rausnehme, ist auch die Meldung weg...

Rollo62 6. Jan 2019 11:23

AW: Meldung "Dupicate resource XYZ ... kept ... ABC discarded"
 
Hast du mal IFMXExtendedClipboardServiceEx ausprobiert, das sollte auch mit CustomFormaten umgehen können.
Habe es aber noch nicht gecheckt was damit alles geht und nicht geht.

Schokohase 6. Jan 2019 11:42

AW: Meldung "Dupicate resource XYZ ... kept ... ABC discarded"
 
Zitat:

Zitat von Rollo62 (Beitrag 1422716)
Hast du mal IFMXExtendedClipboardServiceEx ausprobiert, das sollte auch mit CustomFormaten umgehen können.
Habe es aber noch nicht gecheckt was damit alles geht und nicht geht.

Wo gibt es denn den
Delphi-Quellcode:
IFMXExtendedClipboardServiceEx
und was kann der mehr als der
Delphi-Quellcode:
FMX.Clipboard.IFMXExtendedClipboardService
?

Harry Stahl 6. Jan 2019 11:46

AW: Meldung "Dupicate resource XYZ ... kept ... ABC discarded"
 
Ja, aber das hatte ich so verstanden, dass man selber Formate registrieren kann und die dann entsprechend abfragen oder setzen kann. Ob CF_Drop bereits ein registriertes Customformat ist, weiß ich nicht, wenn ja, hätte ich aber keine Idee, wie man die Daten ausliest.

Wenn ich mal etwas Zeit habe, sehe ich mir das mal näher an, für den Moment komme ich auch mit der oben erwähnten Lösung gut zurecht.

In einem anderen Projekt habe ich wieder das gleiche Problem, aber da kann ich nun wirklich keinen direkten oder indirekten Verweis auf Controls.res (Windows) finden. Bin wirklich jede einzelne Unit durchgegangen.

Aber es gibt offensichtlich auch keinen Schalter, um diesen Hinweis auszuschalten....

Harry Stahl 6. Jan 2019 11:49

AW: Meldung "Dupicate resource XYZ ... kept ... ABC discarded"
 
Zitat:

Zitat von Schokohase (Beitrag 1422717)
Zitat:

Zitat von Rollo62 (Beitrag 1422716)
Hast du mal IFMXExtendedClipboardServiceEx ausprobiert, das sollte auch mit CustomFormaten umgehen können.
Habe es aber noch nicht gecheckt was damit alles geht und nicht geht.

Wo gibt es denn den
Delphi-Quellcode:
IFMXExtendedClipboardServiceEx
und was kann der mehr als der
Delphi-Quellcode:
FMX.Clipboard.IFMXExtendedClipboardService
?

Aus der Unit FMX.Clipboard. Aber ich glaube Rollo62 hatte sich nur verschrieben (EX am Ende). Oder?

Das Handling ist noch mal einfacher, z.B. kann man ganz einfach abfragen clp.hastext, clp.hasimage, und die Inhalte einfacher setzen und holen.

Rollo62 7. Jan 2019 12:50

AW: Meldung "Dupicate resource XYZ ... kept ... ABC discarded"
 
Hallo Harry,

ist in Berlin eingeführt worden, und soll das hier mehr können:
Zitat:

Register custom user format.
Copy/paste data in the custom user format.
Get the clipboard value directly.

Und ja, richtig, IFMXExtendedClipboardService soll es heissen.
Bin mal öfters am Tablet, da macht Tippen nicht wirklich Spass :stupid:

Rollo

Harry Stahl 7. Jan 2019 18:04

AW: Meldung "Dupicate resource XYZ ... kept ... ABC discarded"
 
So, das Problem habe ich nun endgültig gelöst, indem ich aus der VCL.DDEMan.pas eine eigene FMX.DDEMan.pas gemacht habe, die ohne die VCL.forms bzw. VCL.Controls auskommt.

In der Summe spare ich da auch mehr als 1 MB Exe-Dateigröße und laufe nicht Gefahr, dass irgendwelche blöden Probleme durch die Aufnahme der "falschen" Ressourcen in die Exe-Datei entstehen...

Davon abgesehen entstehen wohl auch weitere Seiteneffekte, wenn eine VCL.Forms (indirekt) in die FMX-Exedatei eingebunden wird.

Während das FMX-Anwendungsfenster in der Windows-Fensterliste richtigerweise mit "TFMAppClass" mit dem Titel "PC-Rechnung" (aus den Versionsinformationen) lautet, wird dann ein weiteres unsichtbares Anwendungsfenster (also "TApplication" hier mit dem Namen "Pcrechnung", also auch irgendwie seltsam geschrieben, da Projektdatei "PCRechnung" lautet) erzeugt.

Harry Stahl 10. Jan 2019 20:55

AW: Meldung "Dupicate resource XYZ ... kept ... ABC discarded"
 
Um noch mal auf die Ausgangsfrage zurückzukommen:

Mich wundert es und ich frage mich warum, im Verzeichnis

C:\Program Files (x86)\Embarcadero\Studio\20.0\lib\win32\Release

neben den Dateien, die auch unter

C:\Program Files (x86)\Embarcadero\Studio\20.0\lib\win32\debug

sind, noch die beiden Dateien "controls.res" und "FMX.Win.res" zu finden sind.

Warum nur im Release und nicht im Debug-Ordner?

Uwe Raabe 10. Jan 2019 21:04

AW: Meldung "Dupicate resource XYZ ... kept ... ABC discarded"
 
Zitat:

Zitat von Harry Stahl (Beitrag 1423086)
Warum nur im Release und nicht im Debug-Ordner?

Weil der Debug-Ordner zusätzlich zum Release-Ordner am Anfang in den Suchpfad eingefügt wird. Damit bekommen die Debug-DCUs Vorrang vor den Release-DCUs. Folglich brauchen aber auch die unveränderten Release-Dateien nicht noch als Kopie im Debug-Ordner vorhanden sein, da sie ja im Release-Ordner gefunden werden.

Harry Stahl 11. Jan 2019 14:22

AW: Meldung "Dupicate resource XYZ ... kept ... ABC discarded"
 
OK, danke Uwe, muss ich wieder über eine Sache weniger grübeln...:)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:35 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