AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Komponentenentwicklung/Komponenten-Icons anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

Komponentenentwicklung/Komponenten-Icons anzeigen

Ein Thema von archimedix · begonnen am 5. Jul 2022 · letzter Beitrag vom 6. Jul 2022
Antwort Antwort
archimedix

Registriert seit: 17. Jul 2011
22 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Komponentenentwicklung/Komponenten-Icons anzeigen

  Alt 5. Jul 2022, 22:45
Ging eigentlich mehr darum, wie man es über eines der Designer- oder ToolsAPI-Interfaces bekommt.

Über die Resourcen habe ich schon ausprobiert:

Bmp.LoadFromResourceName(HInstance, Uppercase(AClass.ClassName));
Bmp.LoadFromResourceName(FindClassHInstance(AClass ), Uppercase(AClass.ClassName));


Hat beides nicht geklappt: "Resource TEDIT nicht gefunden".
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Komponentenentwicklung/Komponenten-Icons anzeigen

  Alt 6. Jul 2022, 02:02
Die Ressource existiert aber?
Man könnte mal mit dem RessourceHacker in die BPL reinsehen.


HInstance kann nicht funktionieren, außer die Ressource liegt in der EXE, bzw. in einer DLL.

FindClassHInstance ist eigentlich richtig.
Aber man könnte auch die DLL/BPL-Handle von GetModuleHandle/LoadLibrary/LoadLibraryEx/LoadPackage verwenden.

mal ganz billig schnell in einer EXE getestet (daher LoadPackage, weil dort ja diese Packages normal nicht drin sind)
Delphi-Quellcode:
Image.LoadFromResourceName(LoadPackage('dclrtl280.bpl'), UpperCase('TBluetoothLE'));
Image.LoadFromResourceName(LoadPackage('dclrtl280.bpl'), 'TBluetoothLE');
Groß-/Kleinschreibung ist erwartungsbemäß egal, da Ressourcen-API case-insensitive ist.

Delphi-Quellcode:
Image.LoadFromResourceName(FindClassHInstance(TImage), TImage.ClassName);
Image.LoadFromResourceName(LoadPackage('dclstd280.bpl'), 'TImage');
Image.LoadFromResourceName(LoadPackage('vcl280.bpl'), 'TImage'); // hier nicht erwartet, aber dennoch probiert
Aber hier hängt es auch, denn das Bild ist wirklich nicht in diesen Packages drin.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Komponentenentwicklung/Komponenten-Icons anzeigen

  Alt 6. Jul 2022, 08:49
Die Delphi IDE verwendet seit 10.2.2 PNG-Icons für die Komponenten (siehe https://blogs.embarcadero.com/new-in...mponent-icons/). Diese haben aber andere Namen für die Ressourcen und sind auch nicht als TBitmap einzulesen sonder als TPngImage.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 03:53 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