Hallo!
In der Tabelle USysRibbons ist das XML fuer ein Ribbon-Tab hinterlegt.
Der Aufruf funktioniert.
Eine Taste soll ein eigenes Bild erhalten. XML wurde angepasst: image="IcoTst".
In der Tabelle MySysResources wurde manuell ein neuer Datensatz angelegt.
Doppelklick auf das Feld '@' oeffnet den Dialog fuer den Import der png-Datei.
Die uebrigen Felder: Extension=png, Id=11, Name=IcoTst, Type=img oder image oder 5.
Bei Anwahl des Tabs erscheint eine Fehlermeldung, dass kein loadimage callback vorhanden ist.
Es steht geschrieben, dass bei richtiger Bereitstellung der Bilddaten keine weitere Programmierung notwendig sein soll. U.a muss in MySysResources Type=image sein.
An anderer Stelle steht, dass das Bild nicht einfach so per Dialog, sondern nur ueber ein Hilfs-Formular importiert werden kann.
Bei mir funktioniert nichts von alledem.
Wie macht man es denn nun richtig?
Gruss Stele
Zitat von: Stele4 am Februar 18, 2026, 13:40:13Es steht geschrieben, dass bei richtiger Bereitstellung der Bilddaten keine weitere Programmierung notwendig sein soll.
Wo steht das geschrieben? Das wäre mir neu. Meines Wissens muss ein eigenes Bild für ein Ribbon-Control immer mit der
getImage Callback-Prozedur geladen werden.
Hier findest du dazu eine Anleitung: https://www.accessribbon.de/index.php?Access_-_Ribbons:Eigene_Icons_Bilder_in_Ribbon_Controls_verwenden
Hallo Phil!
Der CoPilot hat's geschrieben. Ich habe mir nicht die Muehe gemacht, die Quelle zu pruefen. Den Chat finde ich nicht mehr.
Ich hatte mir das Tool von Gunther gegoennt. Ist immer ein guter Einstieg.
Mir gefiel aber die Idee, die Bilder im Frontend und nicht daneben zu haben.
Mit den Daten aus MySysResources sollte es auch funktionieren, aber die Beschreibungen dazu schrecken eher ab.
Wird wohl doch der Bilderordner neben der accde.
Gruss und Dank!
Zitat von: Stele4 am Februar 18, 2026, 14:56:40Mir gefiel aber die Idee, die Bilder im Frontend und nicht daneben zu haben.
Mit den Daten aus MySysResources sollte es auch funktionieren, aber die Beschreibungen dazu schrecken eher ab.
Das ist sicherlich auch möglich. Es gibt nur keine eingebaute Funktionalität dazu und du musst es dann selbst programmieren. D.h. Binärdaten aus der MSysResources-Tabelle lesen, diese Daten in eine Bitmap laden, und dann die Bitmap als Rückgabewert der Callback-Function setzen.
Möglich, aber nicht ganz einfach. Soweit ich mich erinnern kann, habe ich das so auch noch nicht gemacht.
Als "Kompromiss" könntest du deine Bilder schon in MSysResourcesoder einer anderen Tabelle speichern und sie beim Start deiner Anwendung ins Dateisystem schreiben, und sie dann von dort auslesen, wie unter dem o.g. Link beschrieben.
Du meinst GDI+?
Ich werde es probieren, aber das bleibt akademisch.
Schlank und robust ist mir lieber.
Allerdings ergibt sich auch hier ein Problem: Das xml-Attribut 'getImage' wird nicht akzeptiert.
Das Schema ist '..Office2009/07/CustomUi'. Das sollte passen.
Gibt es noch eine andere Moeglichkeit?
PS: 'loadimage' beim Ribbon gibt es bei mir leider auch nicht (vgl. https://stackoverflow.com/questions/52915787/access-2013-custom-images-for-the-ribbon)
Zitat von: Stele4 am Februar 18, 2026, 16:31:11Allerdings ergibt sich auch hier ein Problem: Das xml-Attribut 'getImage' wird nicht akzeptiert.
getImage ist ein Attribut des Buttons und benennt die Callback-Prozedur die
jedes mal aufgerufen wird, wenn das Bild angezeigt werden soll.
loadImage ist ein Attribut des Ribbons und benennt die Callback-Prozedur die für jedes Steuerelement
einmalig aufgerufen wird, wenn das Bild das erste Mal angezeigt werden soll.
Generell: Achtung XML ist case-sensitive, d.h. loadImage und loadimage sind nicht identisch.
CASESENSITIVE! Es daemmert von fern!
.. Und du hast recht.
In einem separaten Versuch wurde 'loadImage' akzeptiert und ich konnte wie in stackoverflow vorgehen:
- Ribbon: loadImage=[Name der CallBack-Prozedur],
- Buttons: image=[Name des Bildes].
Wie das im Hintergrund funktioniert, kann ich nur ahnen. Die Prozedur fuer das Callback des Ribbons weist einem Control ein Bild zu. Es wird also im 'Kopf' angegeben, was mit dem Attribut 'image' der Buttons getan werden soll.
Danke Phil!