Die Unit ... existiert doppelt

Rund um die LCL und andere Komponenten
Benutzeravatar
Jim Knopf
Beiträge: 98
Registriert: So 18. Mai 2014, 15:16
OS, Lazarus, FPC: Win10
CPU-Target: 64Bit
Wohnort: Klagenfurt
Kontaktdaten:

Re: Die Unit ... existiert doppelt - mehr als [GELÖST]

Beitrag von Jim Knopf »

Aalso ...

Dateien im Komponentenordner:
MakeRessources.bat (c:\lazarus\tools\lazres.exe patchworkreg.res tpwfilerunner.png)
patchworkreg.res
PwFile.pas
patchwork.pas
patchwork.lpk
tpwfilerunner.png

In PwFile.pas (ist die Komponente mit Register drin)

Code: Alles auswählen

unit PwFile;

{$R patchworkreg.res}
{$MODE Delphi}

interface

uses SysUtils, ...
Ressourcendatei erzeugt, Komponente deinstalliert (sicherheitshalber), neu kompiliert, neu installiert > Standard-Icon Icon in der Palette.

Irgendwas muss noch verkehrt sein.

[EDIT] Habe eben die PNG Extra wie den Klassennamen getauft (TFileRunner), hilft aber nichts
Zuletzt geändert von Jim Knopf am So 22. Aug 2021, 13:49, insgesamt 2-mal geändert.

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Die Unit ... existiert doppelt

Beitrag von Winni »

Hallo!


Lösung ist ganz einfach:
Mit Linux anfangen. Da hat man sowieso einen Blick auf gross- und KLEIN-Schreibung.
Weil es zum OS gehört.

Dann nach Windows portieren.

Ich nutze gerne Grossbuchstaben, auch gerne innerhalb, um WortTeile besser lesbar zu machen.
Schont die Augen.

Winni

Benutzeravatar
Jim Knopf
Beiträge: 98
Registriert: So 18. Mai 2014, 15:16
OS, Lazarus, FPC: Win10
CPU-Target: 64Bit
Wohnort: Klagenfurt
Kontaktdaten:

Re: Die Unit ... existiert doppelt

Beitrag von Jim Knopf »

Hallo Winni,
Winni hat geschrieben:
Sa 21. Aug 2021, 17:41
Lösung ist ganz einfach:
Mit Linux anfangen. Da hat man sowieso einen Blick auf gross- und KLEIN-Schreibung.
Weil es zum OS gehört.

Dann nach Windows portieren.
Ich hab leider kein Linux. Habe auch alle Varianten mit groß/klein probiert. Es bleibt einfach immer das Standardbild.

Woher weiß eigentlich Lazarus, welche PNG zu welcher der (eventuell mehreren) Komponenten in patchwork.pas gehört?

Viele Grüße
Martin

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Die Unit ... existiert doppelt

Beitrag von Winni »

Hi!

Sortieren wir doch mal Deine Infos zu einer logischen Kette:

Die MakeRessources.bat erstellt aus der tpwfilerunner.png die patchworkreg.res

In der PwFile.pas wird patchworkreg.res als Resource eingebunden:

Code: Alles auswählen

{$R patchworkreg.res}
Wie diese Resource als Icon in den entsprechenden Komponenten-Tab kommt, hab ich vergessen.
Aber das müsste doch im Source von RegisterComponent stehen.

Winni

PS: Falls Du vorhast, das Icon zu ändern: Das muss exakt 24 x 24 sein

wp_xyz
Beiträge: 4889
Registriert: Fr 8. Apr 2011, 09:01

Re: Die Unit ... existiert doppelt

Beitrag von wp_xyz »

Jim Knopf hat geschrieben:
Sa 21. Aug 2021, 17:20
Aalso ...

Dateien im Komponentenordner:
MakeRessources.bat (c:\lazarus\tools\lazres.exe patchworkreg.res tpwfilerunner.png)
patchworkreg.res
PwFile.pas
patchwork.pas
patchwork.lpk
tpwfilerunner.png

Ressourcendatei erzeugt, Komponente deinstalliert (sicherheitshalber), neu kompiliert, neu installiert > Standard-Icon Icon in der Palette.

Irgendwas muss noch verkehrt sein.
Das ist mir zu knapp. Ich verstehe kein Wort... Was ist passiert?

Noch kein Icon in der Palette? Das kann sein, denn nach Änderungen an der Resource musst du die IDE "sauber" neu bauen: "Werkzeuge" > "'Lazarus kompilieren' einrichten" > In der Box "Aufräumen" "Alle aufräumen markieren" und darunter auch "Nach Neukompilierung zu Automatisch wechseln". Dann "Neu kompilieren". Nun werden alle kompilierten Units gelöscht und es wird alles neu kompiliert, und vor allem werden auch die Resource neu gelinkt.
Jim Knopf hat geschrieben:
Sa 21. Aug 2021, 19:51
Woher weiß eigentlich Lazarus, welche PNG zu welcher der (eventuell mehreren) Komponenten in patchwork.pas gehört?
Der Name der PNG-Datei muss gleich dem Namen der Komponente sein (bis auf die Endung). Also: Komponente TPwFileRunner --> PNG-Datei tpwfilerunner.png.

Benutzeravatar
Jim Knopf
Beiträge: 98
Registriert: So 18. Mai 2014, 15:16
OS, Lazarus, FPC: Win10
CPU-Target: 64Bit
Wohnort: Klagenfurt
Kontaktdaten:

Re: Die Unit ... existiert doppelt

Beitrag von Jim Knopf »

Winni hat geschrieben:
Sa 21. Aug 2021, 20:52
Wie diese Resource als Icon in den entsprechenden Komponenten-Tab kommt, hab ich vergessen.
Aber das müsste doch im Source von RegisterComponent stehen.
Mag sein, aber ich hab nirgends dazu einen Anhaltspunkt gefunden. Bei Delphi 5 gab es ja den Bildeditor, mit dem man auch die *.res-Files generieren konnte. Dort musste lediglich die Bitmap den gleichen Namen wie die Komponentenklasse aufweisen. Aber diesen Bild-Ressourceneditor habe ich hier nicht gefunden. Egal, was ich versuche, das Icon in der Palette bleibt das Default-Icon mit den drei bunten Ziegeln.

Viele Grüße
Martin

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Die Unit ... existiert doppelt

Beitrag von af0815 »

Nimm einmal ein funktionierendes Icon einer anderen Komponente und benenne das um. Nicht das nur das Format/Größe deines Bildes nicht passt.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

sstvmaster
Beiträge: 576
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: Die Unit ... existiert doppelt

Beitrag von sstvmaster »

Zwischenfrage:

Im Package unter Hinzufügen -> Neue Komponete, kann man Bilder hinzufügen.

Ist das für Martin sein Anliegen geeignet?

Bild zeigt trunk Version!
Dateianhänge
Screenshot 2021-08-22 112235.jpg
Screenshot 2021-08-22 112235.jpg (61.98 KiB) 1658 mal betrachtet
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

wp_xyz
Beiträge: 4889
Registriert: Fr 8. Apr 2011, 09:01

Re: Die Unit ... existiert doppelt

Beitrag von wp_xyz »

Jim Knopf hat geschrieben:
So 22. Aug 2021, 11:09
Egal, was ich versuche, das Icon in der Palette bleibt das Default-Icon mit den drei bunten Ziegeln.
OK, verstehe jetzt. Mach das, was ich oben geschrieben habe.

wp_xyz
Beiträge: 4889
Registriert: Fr 8. Apr 2011, 09:01

Re: Die Unit ... existiert doppelt

Beitrag von wp_xyz »

sstvmaster hat geschrieben:
So 22. Aug 2021, 11:25
Zwischenfrage:

Im Package unter Hinzufügen -> Neue Komponete, kann man Bilder hinzufügen.

Ist das für Martin sein Anliegen geeignet?
Ja, das würde funktionieren. Aber spätestens wenn man eine weitere Komponente dem Package hinzufügen oder ein Bild austauschen will, dann wird man eigentlich nicht den Weg über "Neues Package" gehen wollen (bzw. können, denn die IDE verbietet, denselben Packagenamen ein zweites mal zu verwenden). Daher ist es besser zu lernen, wie es "händisch" geht.

[KORREKTUR]
Es geht hier um "Neue Komponente", nicht um "Neues Package"; damit fällt das Argument für die Probleme beim Hinzufügen einer neuen Komponente weg.
Zuletzt geändert von wp_xyz am Mo 23. Aug 2021, 00:46, insgesamt 1-mal geändert.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Die Unit ... existiert doppelt

Beitrag von af0815 »

An und für sich steht es hier https://wiki.freepascal.org/Lazarus_Pac ... onent_icon die Frage ist nur inwieweit der Artikel noch aktuell ist.

Was man sieht ist, das - Size of PNG file should be 24x24 - 16 color - sein sollte. Kann sein, das sich da einiges mit der DPI Umstellung auch geändert hat.

Edit: Als Editor kann man den freien XN Resource Editor verwenden.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

wp_xyz
Beiträge: 4889
Registriert: Fr 8. Apr 2011, 09:01

Re: Die Unit ... existiert doppelt

Beitrag von wp_xyz »

af0815 hat geschrieben:
So 22. Aug 2021, 11:43
An und für sich steht es hier https://wiki.freepascal.org/Lazarus_Pac ... onent_icon die Frage ist nur inwieweit der Artikel noch aktuell ist.

Was man sieht ist, das - Size of PNG file should be 24x24 - 16 color - sein sollte. Kann sein, das sich da einiges mit der DPI Umstellung auch geändert hat.

Edit: Als Editor kann man den freien XN Resource Editor verwenden.
24x24 ist richtig, 16 Farben falsch, richtig wäre: bis zu 32-bit Farben, mit/ohne Alpha-Kanal, also nicht nur bmp, sondern vor allem auch png mit echter Transparenz.

Zusätzlich optional, wie oben schon geschrieben, für High-DPI-Support Bilder mit 32x32 und 48x48 mit demselben Namen, aber mit Anhängsel "-150" bzw "_200" haben müssen, also TMyComponent.png, TMyComponent_150.png und TMyComponent_200.png.

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1435
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Die Unit ... existiert doppelt

Beitrag von fliegermichl »

Ich hab's grad mal probiert. Ich habe ein eigenes Package namens mclpackage.
In dem befindet sich eine Komponente TWinkelkreis.

Also habe ich eine twinkelkreis.png erstellt und mittels

Code: Alles auswählen

lazres mclpackagereg.res twinkelkreis.png
die mclpackagereg.res erzeugt.
Dann Werkzeuge -> Lazarus compilieren einrichten -> Alle aufräumen -> Neu compilieren.

Nach dem nächsten Neustart von Lazarus (der ja automatisch passiert) wurde meine png Datei bei der Komponente angezeigt.

Übrigens kann man in fpcupdeluxe unter Tools -> LazPaint sich das installieren lassen und die lazpaint.exe unter Werkzeuge -> externe Werkzeuge einrichten hinzufügen.
Das kommt dem Borland Bildeditor gleich wo man direkt die res Datei laden und bearbeiten kann .

Edit: Natürlich muss noch {$R mclpackagereg.res} in die Quelldatei.

Benutzeravatar
Jim Knopf
Beiträge: 98
Registriert: So 18. Mai 2014, 15:16
OS, Lazarus, FPC: Win10
CPU-Target: 64Bit
Wohnort: Klagenfurt
Kontaktdaten:

Re: Die Unit ... existiert doppelt

Beitrag von Jim Knopf »

Hallo miteinander,

langer Reise glückliches Ende!

Ausschlaggebend war (was auch fliegermichl empfohlen hat):
wp_xyz hat geschrieben:
Sa 21. Aug 2021, 21:58
Noch kein Icon in der Palette? Das kann sein, denn nach Änderungen an der Resource musst du die IDE "sauber" neu bauen: "Werkzeuge" > "'Lazarus kompilieren' einrichten" > In der Box "Aufräumen" "Alle aufräumen markieren" und darunter auch "Nach Neukompilierung zu Automatisch wechseln". Dann "Neu kompilieren". Nun werden alle kompilierten Units gelöscht und es wird alles neu kompiliert, und vor allem werden auch die Resource neu gelinkt.
Jim Knopf hat geschrieben:
Sa 21. Aug 2021, 19:51
Woher weiß eigentlich Lazarus, welche PNG zu welcher der (eventuell mehreren) Komponenten in patchwork.pas gehört?
Der Name der PNG-Datei muss gleich dem Namen der Komponente sein (bis auf die Endung). Also: Komponente TPwFileRunner --> PNG-Datei tpwfilerunner.png.
Alles andere war korrekt. Ich dachte, es würde genügen, das Package zu deinstallieren und dann wieder zu installieren, das tut es aber offenbar nicht. Der Universalputz machts aus!

Deine Empfehlung, sstvmaster, werde ich nächstes Mal gleich am Anfang ausprobieren. Die ist mir leider nicht mehr aufgefallen, nachdem es die Komponente ja schon gab.

Jedenfalls herzlichen Dank euch allen und noch einen schönen Restsonntag!

Viele Grüße
Martin

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Die Unit ... existiert doppelt

Beitrag von Winni »

fliegermichl hat geschrieben:
So 22. Aug 2021, 12:22
Übrigens kann man in fpcupdeluxe unter Tools -> LazPaint sich das installieren lassen und die lazpaint.exe unter Werkzeuge -> externe Werkzeuge einrichten hinzufügen.
Das kommt dem Borland Bildeditor gleich wo man direkt die res Datei laden und bearbeiten kann .
Hi!

Coole Idee. Die solltest Du im internationalen Forum im Board "BGRAbitmap and LazPaint" vorstellen:

https://forum.lazarus.freepascal.org/in ... ,46.0.html

Grüße
Winni

Antworten