Iconwechsel wenn Datei nicht vorhanden

Hilfe zu verschiedenen Themen
Benutzeravatar
josinoro
Supporter
Beiträge: 229
Registriert: 10. Nov 2021 20:56
Betriebssystem: Windows 10 Pro
DOpus Version: 13

Iconwechsel wenn Datei nicht vorhanden

Beitrag von josinoro »

Hallo,

wenn eine Datei nicht vorhanden ist, soll einmal der Schalter abgewählt sein und ein anderes Icon erscheinen.

Dass der Schalter abgewählt wird, bekomme ich hin, allerdings nicht als Evaluator Code.

Code: Alles auswählen

@label:=return (Exists("/home\Hilfsprogramme\ExifTool\ExifTool.exe")) ? "Datei ist vorhanden!" : "Datei nicht vorhanden!";
@disableif:= return (!Exists("/home\Hilfsprogramme\ExifTool\ExifTool.exe"))
Bei dem Wechsel des Icons verzweifele ich allerdings gänzlich.

Bei dem Evaluator-Code bin ich davon ausgegangen, dass in der Variablen Datei_01 nach der Abfrage durch Exists der Wert true oder false steht, sodass bei der Bedingung für die Icon Klausel nur dieser Wert übergeben werden muss, um den Wechsel herbeizuführen.

Code: Alles auswählen

@evalalways := Datei_01 = Exists("/home\Hilfsprogramme\ExifTool\ExifTool.exe");
@label := return (Datei_01) ? "Datei ist vorhanden!" : "Datei ist nicht vorhanden!";

// Fehlerhaft
@icon:"#0-9-A-Z (Blau):2", (Datei_01);
Wie kann ich bewerkstelligen, dass, wenn die Datei nicht vorhanden ist, sich das Icon verändert?

Liebe Grüße

josinoro
Benutzeravatar
tbone
Supporter
Beiträge: 509
Registriert: 29. Okt 2021 00:45
Betriebssystem: Windows 10 Pro

Re: Iconwechsel wenn Datei nicht vorhanden

Beitrag von tbone »

Was ist "abgewählt", deaktiviert?

Ich bin leider mit den "Evaluators" noch nicht wirklich vertraut.. ich glaube aber das geht, war letztens "drüben" ein Thema. Es ist ja nicht so, dass diese Button Codes nicht bereits wie ein Haufen Kuddelmuddel wirkten, aber mit den Evaluators noch dazwischen, muha, also das ist wirklich "heiss". o)

Diese Dinger sind bestimmt für bestimmte Hacks ganz nützlich, aber irgendwie ist man bald 30 Jahre auch ohne ausgekommen.

EDIT: Vielleicht hilft "@evalalways" ?!

https://resource.dopus.com/t/label-does ... s/51260/11
https://resource.dopus.com/t/evaluator- ... ment/50013
https://docs.dopus.com/doku.php?id=refe ... erence#@if
Benutzeravatar
josinoro
Supporter
Beiträge: 229
Registriert: 10. Nov 2021 20:56
Betriebssystem: Windows 10 Pro
DOpus Version: 13

Re: Iconwechsel wenn Datei nicht vorhanden

Beitrag von josinoro »

Hallo tbone,

vielen Dank für die schnelle Antwort.
tbone hat geschrieben: 5. Apr 2025 13:12 Was ist "abgewählt", deaktiviert?
Ja, das meine ich.

tbone hat geschrieben: 5. Apr 2025 13:12 Ich bin leider mit den "Evaluators" noch nicht wirklich vertraut.. ich glaube aber das geht, war letztens "drüben" ein Thema. Es ist ja nicht so, dass diese Button Codes nicht bereits wie ein Haufen Kuddelmuddel wirkten, aber mit den Evaluators noch dazwischen, muha, also das ist wirklich "heiss". o)
Das geht mir genauso. Wobei ich auch die "normale" Programmierung manchmal schon als recht schräg empfinde.
Ich dachte nur, dass man so die mehrfache Abfrage umgehen könnte, hier die Frage nach der Existenz der Datei.
Aber, ich wäre ja schon froh, wenn ich es irgendwie hinbekommen würde.
tbone hat geschrieben: 5. Apr 2025 13:12 Diese Dinger sind bestimmt für bestimmte Hacks ganz nützlich, aber irgendwie ist man bald 30 Jahre auch ohne ausgekommen.
Ich finde das für die Spaltensortierung recht interessant. Da steckt schon Potential drin. Allerdings durchschaue ich noch nicht ganz, wie DOpus was und wo dafür ablegt. Da bin ich immer wieder am Suchen.


@evalalways benutze ich ja. Der zweite Link hatte mich dazu inspiriert. So, wie ich es gelesen und verstanden habe, ist ein Iconwechsel damit möglich.

Ich werde das mal weiter durcharbeiten.
Benutzeravatar
josinoro
Supporter
Beiträge: 229
Registriert: 10. Nov 2021 20:56
Betriebssystem: Windows 10 Pro
DOpus Version: 13

Re: Iconwechsel wenn Datei nicht vorhanden

Beitrag von josinoro »

Folgender Code funktioniert, wenn die Datei ExifTool.exe nicht vorhanden ist:

Schalter-Code

Die Beschriftung des Schalters wird gewechselt
Der Schalter wird deaktiviert
Das Icon des Schalters wird ausgetauscht

Code: Alles auswählen

@label:=return (Exists("/home\Hilfsprogramme\ExifTool\ExifTool.exe")) ? "1 Existent!" : "1 Fehlt!";
@disableif:= return (!Exists("/home\Hilfsprogramme\ExifTool\ExifTool.exe"))
@icon:= return (!Exists("/home\Hilfsprogramme\ExifTool\ExifTool.exe") ? "#0-9-A-Z (Blau):0");
Das Ganze als Evaluator-Code

Die Beschriftung des Schalters wird gewechselt
Der Schalter wird deaktiviert
Das Icon des Schalters wird ausgetauscht

Code: Alles auswählen

@evalalways := (Datei_01 = Exists("/home\Hilfsprogramme\ExifTool\ExifTool.exe"));
@label := return (Datei_01) ? "2 Existent!" : "2 Fehlt!";
@icon:= return(!Datei_01) ? "#0-9-A-Z (rot):1";
@disableif:= return (!Datei_01);
Aber da erscheint immer eine Fehlermeldung:
icon funktioniert mit Fehlermeldung:
05.04.2025 15:23 Evaluator: Fehler in Zeile 1, Position 39
Syntaxfehler (5): ;
return(!Datei_01) ? "#0-9-A-Z (rot):1";


Es ist also tatsächlich so, dass der über Exists abgefragte Wert weiter verwendet werden kann.
Benutzeravatar
tbone
Supporter
Beiträge: 509
Registriert: 29. Okt 2021 00:45
Betriebssystem: Windows 10 Pro

Re: Iconwechsel wenn Datei nicht vorhanden

Beitrag von tbone »

Code: Alles auswählen

@icon:= return(!Datei_01) ? "#0-9-A-Z (rot):1";
Ich hab' ja keine Ahnung von den Evaluator, aber diese Zeile könte in der Tat falsch sein..

Vielleicht geht es so ohne den Syntax Fehler?
Fällt mir nur so vom Schema-F Prinzip her auf, wenn ich auf die Zeile mit "ternary operator" von davor gucke.

Code: Alles auswählen

@icon:= return(!Datei_01) ? "#0-9-A-Z (rot)" :"1";
Benutzeravatar
josinoro
Supporter
Beiträge: 229
Registriert: 10. Nov 2021 20:56
Betriebssystem: Windows 10 Pro
DOpus Version: 13

Re: Iconwechsel wenn Datei nicht vorhanden

Beitrag von josinoro »

tbone hat geschrieben: 5. Apr 2025 17:26 Vielleicht geht es so ohne den Syntax Fehler?
Leider nein. Da kann er das n-te Icon aus der Palette nicht finden.
Benutzeravatar
tbone
Supporter
Beiträge: 509
Registriert: 29. Okt 2021 00:45
Betriebssystem: Windows 10 Pro

Re: Iconwechsel wenn Datei nicht vorhanden

Beitrag von tbone »

Aber der Syntax-Error ist dann weg?
Benutzeravatar
josinoro
Supporter
Beiträge: 229
Registriert: 10. Nov 2021 20:56
Betriebssystem: Windows 10 Pro
DOpus Version: 13

Re: Iconwechsel wenn Datei nicht vorhanden

Beitrag von josinoro »

Jetzt habe ich noch ein bisschen weitergebastelt und es funktioniert. (Der Zeitstempel verrät das bisschen :? )

Das Ergebnis habe ich in einer Symbolleiste zusammengefasst.
Dateiabfrage.dop
Symbolleiste
(10.02 KiB) 27-mal heruntergeladen
Zum Testen kann man entweder die Pfade und Dateinamen in den Schaltern anpassen oder den Inhalt der Datei _Testordner.zip in das Verzeichnis
/home\Hilfsprogramme (also: /home\Hilfsprogramme\_Testordner) entpacken.

Wenn die in den Schaltern definierten Icons verwendet werden sollen, müssen bei den *.zip-Dateien die Endungen nach *.dis umbenannt werden und die Symbolleisten in DOpus eingefügt werden.
Dateianhänge
_Testordner.zip
Testordner mit Testdateien
(2.54 KiB) 26-mal heruntergeladen
0-9-A-Z (Rot).zip
(13.89 KiB) 27-mal heruntergeladen
0-9-A-Z (Grau).zip
(14.04 KiB) 24-mal heruntergeladen
0-9-A-Z (Blau).zip
(15.54 KiB) 22-mal heruntergeladen
Benutzeravatar
tbone
Supporter
Beiträge: 509
Registriert: 29. Okt 2021 00:45
Betriebssystem: Windows 10 Pro

Re: Iconwechsel wenn Datei nicht vorhanden

Beitrag von tbone »

Wie kann ich bewerkstelligen, dass, wenn die Datei nicht vorhanden ist, sich das Icon verändert?
Beantworte Deine eigene Frage bitte mal noch so, dass man die Lösung direkt sehen kann?! Eine Toolbar herunterladen und diverse ZIPs um jetzt zu verstehen, was das Problem bzw. Deine Lösung war, ist bissl schwierig für mich und auch den nächsten User! o)

Mein Frage, ob der Syntax-Error nach meinen Vorschlag nicht mehr auftrat ist auch noch offen. Ich vermute mal er trat nicht mehr auf, aber die Icon-Angabe passte dann in meinem Beispiel noch nicht (habe ich auch nicht erwartet, das zu korrigieren war Dein Part! o).

Also nochmal ein komplettes Beispiel vielleicht? Mit den einzelnen Zeilen kommentiert? So dass wir alle direkt was lernen? o)

Wie diese Icon-Links angewendet werden, bzw. wo diese Angaben herkommen und abzuleiten sind, könntest Du auch mal herzeigen. Was bedeutet bspw. "#0-9-A-Z (grau):9"?! Ist das erste eine Angabe zu einem Icon-Set und die Nummer nach dem Doppelpunkt der Index des Icons? Sieht irgendwie so aus, habe ich aber noch nie gesehen in DO.

Thx! o)
Benutzeravatar
josinoro
Supporter
Beiträge: 229
Registriert: 10. Nov 2021 20:56
Betriebssystem: Windows 10 Pro
DOpus Version: 13

Re: Iconwechsel wenn Datei nicht vorhanden

Beitrag von josinoro »

Davon ausgehend, dass du hauptsächlich für die Mehrheit der User sprichst, macht es natürlich Sinn, das Ganze etwas zu präzisieren.
Die Lösung komplett in einer Schalterleiste mit einem Schalter zum Testen und Umbenennen zu liefern, ist natürlich purer Luxus.
Für den Einen oder Anderen, auf dieses Problem fokussierten, ist eine Minimallösung aber verständlicherweise klar erstrebenswerter.
Dafür war es aber gestern zu spät für mich und ich hatte auch keine Lust mehr. Gerne komme ich aber jetzt deinem Wunsch nach.

Ziel ist es, bei einem Schalter, über den ein Programm aufgerufen wird, zu überprüfen, ob dieses Programm tatsächlich zur Verfügung steht.
Ich habe zum Beispiel das Problem bei meiner USB-Version von Directory Opus, dass ich bestimmte Programme bei anderen Rechnern nicht zur Verfügung habe. Daher möchte ich, dass der Schalter gar nicht aktiviert ist, wenn das der Fall ist. Somit kann ich auf ein oder mehrere Programme, wie zum Beispiel Notepad++ oder alternativ den Standardeditor abfragen. Ist keiner von beiden erreichbar, soll der Schalter deaktiviert werden.
Der Wechsel des Icons ist letztendlich Kosmetik, obwohl man durch aussagekräftige Icons sehr wohl auch die tatsächliche Verfügbarkeit optisch anzeigen könnte.

Da ich bei meinen Beispielen keine Symbole aus den Standardpaletten genommen habe und ich die Schalter nicht mehr ändern wollte, habe ich die verwendeten Directory Opus Icon Sets (*.dis) als Anhang beigefügt. Diese sind als *.zip-Dateien umbenannt, weil ich hier Dateien mit der Endung *.dis nicht direkt hochladen kann.
tbone hat geschrieben: 6. Apr 2025 08:27 Was bedeutet bspw. "#0-9-A-Z (grau):9"?! Ist das erste eine Angabe zu einem Icon-Set und die Nummer nach dem Doppelpunkt der Index des Icons?
Korrektur Anfang
Ja, die Icons werden in einer Datei zusammengefasst als DOpus-Icon-Set (*.dis). Diese Angaben müssen quotiert erfolgen, wobei der erste Teil der Name der Iconsammlung ist und der zweite, durch den Doppelpunkt getrennten Teil, der Name des Symbols innerhalb der Sammlung darstellt. In diesem Beispiel wird also das Symbol mit dem Namen "9" innerhalb der Sammlung mit dem Namen 0-9-A-Z (grau) angesprochen. Die Symbolleisten stehen in /dopusdata\Icons.
Korrektur Ende

Nun zum eigentlichen Thema:
Die Fehlermeldung war mit deinen Lösungsvorschlägen nicht zu beheben, haben mich aber auf die richtige Spur gebracht.
Letztendlich habe ich drei Schalter definiert, wovon die ersten beiden das Gleiche tun, nur einmal mit Schalter-Code und einmal mit Evaluator-Code.
Der dritte Schalter ist mittels Evaluator-Code realisiert.

Schalter 1 und 2
Prüft, ob eine bestimmte Datei vorhanden ist und wird deaktiviert und die Beschriftung und das Symbol wird geändert, wenn die Datei nicht da ist.

Schalter 3
Prüft, ob eine von zwei bestimmten Dateien vorhanden ist und wird deaktiviert und die Beschriftung und das Symbol wird geändert, wenn keine der Dateien da ist.

Schalter 1 (Schalter-Code):

Code: Alles auswählen

// Wenn die Datei vorhanden ist:
// Beschriftung:		✅
// Status:			aktiviert
// Icon:			1 (blau)

// Wenn die Datei NICHT vorhanden ist:
// Beschriftung:		❌
// Status:			deaktiviert
// Icon:			0 (blau)

// Schalter-Code
@label:= 		return (Exists("/home\Hilfsprogramme\_Testordner\Testdatei_01.txt")) ? "<%checkbox:2>" : "<%checkbox:0>";
@disableif:= 	return (!Exists("/home\Hilfsprogramme\_Testordner\Testdatei_01.txt"))
@icon:= 		return (!Exists("/home\Hilfsprogramme\_Testordner\Testdatei_01.txt") ? "#0-9-A-Z (blau):9" : "#0-9-A-Z (blau):0");
// __________________________________________________________________________________________

Show "/home\Hilfsprogramme\_Testordner\Testdatei_01.txt"
Schalter 2 (Evaluator-Code):

Code: Alles auswählen

// Wenn die Datei vorhanden ist:
// Beschriftung:		✅
// Status:			aktiviert
// Icon:			1 (rot)

// Wenn die Datei NICHT vorhanden ist:
// Beschriftung:		❌
// Status:			deaktiviert
// Icon:			0 (rot)

// Evaluator-Code
@evalalways:= Datei_01 = Exists("/home\\Hilfsprogramme\\_Testordner\\Testdatei_01.txt");
@label:= return (Datei_01) ? "<%checkbox:2>" : "<%checkbox:0>";
@disableif:= return (!Datei_01);
@icon:= return (!Datei_01) ? "#0-9-A-Z (rot):9" : "#0-9-A-Z (rot):1";
// __________________________________________________________________________________________

Show "/home\Hilfsprogramme\_Testordner\Testdatei_02.txt"
@evalalways:= Datei_01 = Exists("/home\\Hilfsprogramme\\_Testordner\\Testdatei_01.txt");
Legt eine Variable mit dem Namen Datei_01 an, in die das Ergebnis der Abfrage über Exists auf den Dateinamen erfolgt.

@label:= return (Datei_01) ? "<%checkbox:2>" : "<%checkbox:0>";

Weist dem Label das Ergebnis der Abfrage auf Datei_01 zu. Ist Datei_01 wahr, wird der erste Text an Label übergeben, sonst der zweite Text.

@disableif:= return (!Datei_01);
Weist disableif das Ergebnis der Abfrage auf Datei_01 zu. Ist Datei_01 wahr, wird das Symbol deaktiviert.

@icon:= return (!Datei_01) ? "#0-9-A-Z (rot):9" : "#0-9-A-Z (rot):1";

Weist dem Icon das negierte Ergebnis der Abfrage auf Datei_01 zu. Ist Datei_01 wahr, wird der erste Text an Icon übergeben, sonst der zweite Text.


Schalter 3 (Evaluator-Code):

Code: Alles auswählen

// Wenn Datei_01 UND Datei_02 vorhanden ist:
// Beschriftung:		1 ✅ 2 ✅
// Status:			aktiviert
// Icon:			1 (grau)

// Wenn Datei_01 vorhanden UND Datei_02 nicht vorhanden ist:
// Beschriftung:		1 ✅ 2 ❌
// Status:			aktiviert
// Icon:			1 (grau)

// Wenn Datei_01 nicht vorhanden UND Datei_02 vorhanden ist:
// Beschriftung:		1 ❌ 2 ✅
// Status:			aktiviert
// Icon:			1 (grau)

// Wenn Datei_01 UND Datei_02 nicht vorhanden ist:
// Beschriftung:		1 ❌ 2 ❌
// Status:			deaktiviert
// Icon:			0 (grau)

// Evaluator-Code
@evalalways:= 	Datei_01 = Exists("/home\\Hilfsprogramme\\_Testordner\\Testdatei_01.txt");
@evalalways:= 	Datei_02 = Exists("/home\\Hilfsprogramme\\_Testordner\\Testdatei_02.txt");
@evalalways:= 	MindestensEine = (Datei_01 || Datei_02);

@label:=		return (MindestensEine == true) ? ((Datei_01 ? "1 <%checkbox:2>" : "1 <%checkbox:0>") + (Datei_02 ? " 2 <%checkbox:2>" : " 2 <%checkbox:0>"))     : "1 <%checkbox:0> 2 <%checkbox:0>";
@disableif:=	return (MindestensEine==false);
@icon:=     	return (MindestensEine==false) ? "#S-DOX II Additional Icon Set:arrow_left" : "#S-DOX II Additional Icon Set:arrow_left2";
@icon:#S-DOX II Additional Icon Set:arrow_left,
// __________________________________________________________________________________________

Show "/home\Hilfsprogramme\_Testordner\Evaluator-Code.txt"
Der Schalter Umbenennen in der Symbolleiste benennt die Datei(en) entsprechend um, sodass die Dateien für den Schalter-Code nicht mehr erreichbar sind und umgekehrt. Damit kann man Änderungen leichter überprüfen. Zum Testen kann man entweder die Pfade und Dateinamen in den Schaltern anpassen oder den Inhalt der Datei _Testordner.zip in das Verzeichnis /home\Hilfsprogramme (also: /home\Hilfsprogramme\_Testordner) entpacken.

Umbenennen:

Code: Alles auswählen

<?xml version="1.0"?>
<button backcol="#ff8000" display="both" label_pos="right" textcol="#ffffff" type="three_button">
	<label>Umbenennen</label>
	<tip>Wechselt in das Verzeichnis ...\_Testordner\n&lt;%mousel&gt; Umbenennen von &lt;kbd&gt;Testdatei_01.txt&lt;/kbd&gt; &lt;%arrowl&gt;&lt;%arrow&gt; &lt;kbd&gt;Testdatei_01.txt-&lt;/kbd&gt;\n&lt;%mouser&gt; Umbenennen von &lt;kbd&gt;Testdatei_02.txt&lt;/kbd&gt; &lt;%arrowl&gt;&lt;%arrow&gt; &lt;kbd&gt;Testdatei_02.txt-&lt;/kbd&gt;\n&lt;%mousem&gt; Wechseln nach      &lt;kbd&gt;/home\Hilfsprogramme\_Testordner&lt;/kbd&gt;</tip>
	<icon1>#Rename.png</icon1>
	<button backcol="none" display="both" textcol="none">
		<label>Umbenennen 1</label>
		<tip>Wechselt den Dateinamen zwischen &lt;kbd&gt;Testdatei_01.txt&lt;/kbd&gt; &lt;%arrowl&gt;&lt;%arrow&gt; &lt;kbd&gt;&lt;kbd&gt;Testdatei_01.txt-&lt;/kbd&gt;</tip>
		<icon1>#newcommand</icon1>
		<function type="normal">
			<instruction>// Go &quot;/home\Hilfsprogramme\_Testordner\&quot;</instruction>
			<instruction />
			<instruction>@ifexists:&quot;/home\Hilfsprogramme\_Testordner\Testdatei_01.txt&quot;</instruction>
			<instruction>Rename &quot;/home\Hilfsprogramme\_Testordner\Testdatei_01.txt&quot; TO &quot;Testdatei_01.txt-&quot;</instruction>
			<instruction />
			<instruction>@ifexists:&quot;/home\Hilfsprogramme\_Testordner\Testdatei_01.txt-&quot;</instruction>
			<instruction>Rename &quot;/home\Hilfsprogramme\_Testordner\Testdatei_01.txt-&quot; TO &quot;Testdatei_01.txt&quot;</instruction>
		</function>
	</button>
	<button backcol="none" display="both" textcol="none">
		<label>Umbenennen 2</label>
		<tip>Wechselt den Dateinamen zwischen &lt;kbd&gt;Testdatei_02.txt&lt;/kbd&gt; &lt;%arrowl&gt;&lt;%arrow&gt; &lt;kbd&gt;&lt;kbd&gt;Testdatei_02.txt-&lt;/kbd&gt;</tip>
		<icon1>#newcommand</icon1>
		<function type="normal">
			<instruction>// Go &quot;/home\Hilfsprogramme\_Testordner\&quot;</instruction>
			<instruction />
			<instruction>@ifexists:&quot;/home\Hilfsprogramme\_Testordner\Testdatei_02.txt&quot;</instruction>
			<instruction>Rename &quot;/home\Hilfsprogramme\_Testordner\Testdatei_02.txt&quot; TO &quot;Testdatei_02.txt-&quot;</instruction>
			<instruction />
			<instruction>@ifexists:&quot;/home\Hilfsprogramme\_Testordner\Testdatei_02.txt-&quot;</instruction>
			<instruction>Rename &quot;/home\Hilfsprogramme\_Testordner\Testdatei_02.txt-&quot; TO &quot;Testdatei_02.txt&quot;</instruction>
		</function>
	</button>
	<button backcol="none" display="both" textcol="none">
		<label>Gehe zu _Testordner</label>
		<tip>Wechselt in das Verzeichnis &lt;kbd&gt;/home\Hilfsprogramme\_Testordner&lt;/kbd&gt;</tip>
		<icon1>#newcommand</icon1>
		<function type="normal">
			<instruction>Go &quot;/home\Hilfsprogramme\_Testordner\&quot;</instruction>
		</function>
	</button>
</button>
Zuletzt geändert von josinoro am 6. Apr 2025 22:36, insgesamt 2-mal geändert.
Benutzeravatar
tbone
Supporter
Beiträge: 509
Registriert: 29. Okt 2021 00:45
Betriebssystem: Windows 10 Pro

Re: Iconwechsel wenn Datei nicht vorhanden

Beitrag von tbone »

Okay, danke! o) Ich habe jetzt auch mal ein bisschen probiert..

Code: Alles auswählen

@label:= return (Datei_01) ? "<%checkbox:2>" : "<%checkbox:0>";
Was sind diese "<%checkbox:2>" Dinger? Das scheinen Symbole oder Icons, aber wo kriegt man die her und wo sind die dokumentiert?

Code: Alles auswählen

@icon:= return (!Datei_01) ? "#0-9-A-Z (rot):9" : "#0-9-A-Z (rot):1";
Was die Icons angeht, verstehe ich nicht, warum Du mit den Indexen arbeitest oder wie Du die ermittelst?

Wenn ich mit CTRL+LinkeMaus auf das blau hervorgehobene "@icon:=" klicke, dann kann ich ja komfortabel ein Icon auswählen.
Wenn ich KEIN bestimmtes Icon-Set dabei auswähle, dann bekomme ich einen einfachen Icon-Namen zurück, "cli" beispielsweise und keine Nummer oder Index irgendwo.
Wenn ich aber nun bspw. aus dem Icon-Set "Internal Icon Set (Flat)" ein Icon auswähle, dann erhalte ich bspw. "#default:copysourcedest_left", die Angabe nach dem "#" ist also eine ID für das Icon-Set, aber offensichtlich nicht zwangsweise der Name, der im Dialog angezeigt wird und einen Index gibt es immernoch nicht.

EDIT: Ah, ich glaube ich verstehe, das ist gar kein Icon-Index, sondern Du hast einfach ein Icon, dass bspw. eine 9 zeigt ausgewählt, und deswegen steht da "#0-9-A-Z (rot):9", bzw. "#<IconSetID>:<IconID>". Die 9 hat mit der Position des Icons im Set gar nichts zu tun, weil das Icon einfach "9" als ID hat.

Okay, dann bleibt noch diese Syntax "<%checkbox:2>" offen, aber ich glaube das klärt sich bestimmt auch noch! o)
Benutzeravatar
josinoro
Supporter
Beiträge: 229
Registriert: 10. Nov 2021 20:56
Betriebssystem: Windows 10 Pro
DOpus Version: 13

Re: Iconwechsel wenn Datei nicht vorhanden

Beitrag von josinoro »

tbone hat geschrieben: 6. Apr 2025 18:05 Was sind diese "<%checkbox:2>" Dinger? Das scheinen Symbole oder Icons, aber wo kriegt man die her und wo sind die dokumentiert?
Dabei handelt es sich um Schriftzeichen (Sonderzeichen). Irgendwann einmal habe ich die aus irgendeinem Post geklaut und ebenfalls in einer Symbolleiste zusammengefasst. Eine dokumentierte Quelle habe ich auch noch nicht gesehen. Ich weiß auch nicht, ob es noch mehr gibt. Ich benutze die gerne, um die linke und rechte Maustaste in den Hinweistexten darzustellen.

Schalterleiste Symbole:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8"?>
<toolbar textcol="#c0c0c0">
	<image_settings fill="none" fit="0" image="/dopusdata/Images/Brown Top.PNG" inheritable="yes" opacity="0" use_custom="yes" />
	<buttons backcol="none" display="label" textcol="none" type="menu">
		<button backcol="none" display="label" field_type="label" size="full" textcol="none">
			<label>&lt;kbd&gt;Symbole:&lt;/kbd&gt;</label>
			<icon1>#label</icon1>
			<function type="normal">
				<instruction>Set LABEL</instruction>
			</function>
		</button>
		<button backcol="none" display="label" dpi="125" field_type="spacer" separate="yes" size="44" textcol="none">
			<label>Spacer</label>
			<icon1>#spacer</icon1>
			<function type="normal">
				<instruction>Set SPACER</instruction>
			</function>
		</button>
		<button backcol="none" display="label" field_type="label" size="full" textcol="none">
			<label>Symbole im Text:    &lt;%error&gt; - &lt;%update&gt; - &lt;%oned:4&gt; - &lt;%oned:3&gt; - &lt;%ddbi:5&gt; - &lt;%ddbi:155&gt; - &lt;%tbim:rename&gt; - &lt;%tbim:makedir&gt; - &lt;%fdbi:8&gt; - &lt;%fdbi:12&gt; - &lt;%winlogo&gt; - &lt;%bulb:1&gt; - &lt;%bulb:2&gt; - &lt;%bulb:3&gt; - &lt;%weblink&gt; - &lt;%windowlink&gt; - &lt;%menulink&gt; - &lt;%manlink&gt; - &lt;%bullet&gt; - &lt;%arrow&gt; - &lt;%arrowu&gt; - &lt;%arrowd&gt; - &lt;%arrowl&gt; - &lt;%stars:3&gt; - &lt;%mouse&gt; - &lt;%mousel&gt; - &lt;%mouser&gt; - &lt;%mousem&gt; - &lt;%checkbox&gt; - &lt;%checkbox:0&gt; - &lt;%checkbox:2&gt;
</label>
			<icon1>#label</icon1>
			<function type="normal">
				<instruction>Set LABEL</instruction>
			</function>
		</button>
		<button backcol="none" display="label" field_type="spacer" size="full" textcol="none">
			<label>Spacer</label>
			<icon1>#spacer</icon1>
			<function type="normal">
				<instruction>Set SPACER</instruction>
			</function>
		</button>
		<button backcol="none" display="label" field_type="label" size="full" textcol="none">
			<label>&lt;kbd&gt;Symbole:&lt;/kbd&gt;</label>
			<icon1>#label</icon1>
			<function type="normal">
				<instruction>Set LABEL</instruction>
			</function>
		</button>
		<button backcol="none" display="both" textcol="none">
			<tip>Schliesst diese Toolbar</tip>
			<icon1>#actions:agt_stop1</icon1>
			<icon2>#close</icon2>
			<function type="normal">
				<instruction>//Toolbar NAME=*this LOCAL CLOSE</instruction>
				<instruction>Toolbar CLOSE name=*this</instruction>
			</function>
		</button>
	</buttons>
</toolbar>
________________________________________________________________

Die *.dis-Datei ist eine Zip-Datei mit mindestens zwei Dateien.

Einmal die Grafik (In der Datei 0-9-A-Z (Rot).dis ist das die Datei 0-9-A-Z (Rot).png)
0-9-A-Z (Rot).png
0-9-A-Z (Rot).png (13.64 KiB) 422 mal betrachtet
und einmal eine *.xml-Datei als Steuerdatei (In der Datei 0-9-A-Z (Rot).dis ist das die Datei 0-9-A-Z (Rot).xml)

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8"?>
<iconset name="0-9-A-Z (Rot)">
    <display_name>0-9-A-Z (Rot)</display_name>
    <copyright>(c) 2021 __________</copyright>
    <Artist>josinoro</Artist>
	<set size="small" width="22" height="22" filename="0-9-A-Z (Rot).png">
		<category name="edit">
			<icon name="0" row="1" col="1"/>
			<icon name="1" row="1" col="2"/>
			<icon name="2" row="1" col="3"/>
			<icon name="3" row="1" col="4"/>
			<icon name="4" row="1" col="5"/>
			<icon name="5" row="1" col="6"/>
			<icon name="6" row="2" col="1"/>
			<icon name="7" row="2" col="2"/>
			<icon name="8" row="2" col="3"/>
			<icon name="9" row="2" col="4"/>
			<icon name="A" row="2" col="5"/>
			<icon name="B" row="2" col="6"/>
			<icon name="C" row="3" col="1"/>
			<icon name="D" row="3" col="2"/>
			<icon name="E" row="3" col="3"/>
			<icon name="F" row="3" col="4"/>
			<icon name="G" row="3" col="5"/>
			<icon name="H" row="3" col="6"/>
			<icon name="I" row="4" col="1"/>
			<icon name="J" row="4" col="2"/>
			<icon name="K" row="4" col="3"/>
			<icon name="L" row="4" col="4"/>
			<icon name="M" row="4" col="5"/>
			<icon name="N" row="4" col="6"/>
			<icon name="O" row="5" col="1"/>
			<icon name="P" row="5" col="2"/>
			<icon name="Q" row="5" col="3"/>
			<icon name="R" row="5" col="4"/>
			<icon name="S" row="5" col="5"/>
			<icon name="T" row="5" col="6"/>
			<icon name="U" row="6" col="1"/>
			<icon name="V" row="6" col="2"/>
			<icon name="W" row="6" col="3"/>
			<icon name="X" row="6" col="4"/>
			<icon name="Y" row="6" col="5"/>
			<icon name="Z" row="6" col="6"/>
		</category>
    </set>

</iconset>
Die einzelnen Symbole werden, entgegen meiner Aussage, nicht über Indizes, sondern über die in der *.xml-Datei definierten Namen angesprochen.

https://docs.dopus.com/doku.php?id=refe ... ition_file
Benutzeravatar
tbone
Supporter
Beiträge: 509
Registriert: 29. Okt 2021 00:45
Betriebssystem: Windows 10 Pro

Re: Iconwechsel wenn Datei nicht vorhanden

Beitrag von tbone »

image.png
image.png (79.63 KiB) 414 mal betrachtet
Verrückt!.. o)

".txt" entfernen und importieren, falls jemand braucht.. o)
Icons_Inline.dop.txt
(9.69 KiB) 29-mal heruntergeladen
Benutzeravatar
josinoro
Supporter
Beiträge: 229
Registriert: 10. Nov 2021 20:56
Betriebssystem: Windows 10 Pro
DOpus Version: 13

Re: Iconwechsel wenn Datei nicht vorhanden

Beitrag von josinoro »

:o Dann spiele ich ja noch mehr ...
Benutzeravatar
josinoro
Supporter
Beiträge: 229
Registriert: 10. Nov 2021 20:56
Betriebssystem: Windows 10 Pro
DOpus Version: 13

Re: Iconwechsel wenn Datei nicht vorhanden

Beitrag von josinoro »

Hallo tbone,

ich habe deine Arbeit nochmal aufgegriffen und die (für mich) wichtigsten Symbole als Schalter in eine Schalterleiste gepackt. Damit wird der Symbol-Code direkt in die Zwischenablage kopiert. Die Darstellung deiner Gruppen habe ich in ein Menü gelegt, um Platz zu sparen. In diesem Menü sind lediglich die Label von dir zu Ansicht. Die Grafik deiner Zusammenstellung habe ich nach "/dopusdata\Buttons\markup ddbi index.png" kopiert und wird dort durch Klick auf den Schalter Label als Referenz angezeigt.

Selbst wenn man die Fleißarbeit auf sich nehmen würde und das Ganze in eine Menüstruktur packen wollte, indem man die Gruppen als Menüpunkte nimmt, kann man in den Menülabels die in den Gruppen enthaltenen Symbole nicht alle darstellen. Also nix mit Fleißarbeit - oder es bleibt einem erspart.
Dateianhänge
Symbole.dop.txt
(28.47 KiB) 22-mal heruntergeladen
Antworten