Iconwechsel wenn Datei nicht vorhanden

Hilfe zu verschiedenen Themen
Benutzeravatar
tbone
Supporter
Beiträge: 503
Registriert: 29. Okt 2021 00:45
Betriebssystem: Windows 10 Pro

Re: Iconwechsel wenn Datei nicht vorhanden

Beitrag von tbone »

Mhh.. ja, das mit dem "Klick" und dann hat man den Code im Clipboard, finde ich nicht verkehrt. So eine Tabelle und ein bisschen Abzählen tut es aber auch. Beide Toolbar-Varianten sind aber unhandlich im Umgang irgendwie. Deine Favoriten-Leiste ist leider auch kein Ersatz für "wenn man das komplette Set an Möglichkeiten" sehen und benutzen will. Ich habe im Forum drüben noch mehr gefunden, schwarz-weiß Versionen der Icon und Progress-Bars z.B..

Ich glaube ein einziger Button, der wiederum ein Menu aufruft in dem die Geschichten dann alle nochmal aufklappen, als Übersicht und Einzel-Klick-Kopie, das kommt der besten Praktikabilität vielleicht am nächsten?! Wer machts? o) Macht man besser mit einem kleinen Script, denke ich mal, sonst klickt man sich ja zu tode! o)

Die B+W (schwarz weiß) Versionen habe ich in meiner Toolbar jetzt auch erstmal nur angedeutet.. nur 2 Reihen erstmal dazugemacht, aber im Grunde sind das "nochmal so viele" Icons bzw. Reihen.
image.png
image.png (93.41 KiB) 186 mal betrachtet
Benutzeravatar
tbone
Supporter
Beiträge: 503
Registriert: 29. Okt 2021 00:45
Betriebssystem: Windows 10 Pro

Re: Iconwechsel wenn Datei nicht vorhanden

Beitrag von tbone »

Um nochmal zum eigentlichen Thema zurückzukommen..

Wie man Icon, Label und Status eines Buttons dynamisch mit einem Evaluator ändert:
Hier mal eine etwas bereinigte Version, der Einfachheit halber ist hier noch eine Zeile eingefügt, die "selfiles" auswertet, also die Anzahl der selektierten Dateien, um das Umschalten des Icons und Labels des Buttons leichter zu erkennen bzw. zu testen. Anklicken einer Datei bzw. deselektieren reicht aus, um den Effekt zu sehen / zu simulieren. Wer wirklich auf eine Datei / Pfad prüfen will, entfernt das "//" vor der ersten Zeile und löscht die Zweite.

Code: Alles auswählen

//@eval:=     pathExists = exists("D:\\tmp\\my-file.txt"); // Pfad bzw. Datei existiert?
@eval:=       pathExists = (selfiles > 0);                 // selektierte Dateien vorhanden?
@enableif:=   return (pathExists == true);
@label:=      return (pathExists == true ? "File(s) selected! " : "No files selected");
@icon:=       return (pathExists == true ? "#default:status"    : "#default:setoff"  );

// the command to run..
// Notepad.exe "D:\\tmp\\my-file.txt"
Damit man den Button-Code besser versteht, habe ich ein paar kleine Änderungen gemacht:
- sprechender Variablen-Name "pathExists" anstatt "Datei_01"
- immer auf "true" prüfen, nicht gemischt, damit Code, Auge und Gehirn leichter einrasten auf der gleichen Spalte und Logik
- unnötige Klammern entfernt, für Ternary Operator nicht nötig.
- @enableif statt "@disableif", ebenfalls um immer gegen "true" testen zu können, sieht auch aufgeräumter aus dann
- keine Verwendung von <%.. > inline Icons, um das Evalutator-Beispiel nicht unnötig komplex erscheinen zu lassen
- keine Verwendung von Icons die nur eine Nummer als Namen haben (ist unnötig verwirrend, irritiert beim Verstehen)

Ich denke mal, so kann man auf einen Blick die Funktionsweise ganz gut erkennen?!
Könnten wir als Beispiel auch in die "Demo-Sektion" übernehmen?

Hier noch ein paar Referenzen bzw. Links zum Thema:
https://docs.dopus.com/doku.php?id=eval ... e_contexts
https://docs.dopus.com/doku.php?id=eval ... ons:labels
https://resource.dopus.com/t/still-a-bi ... or/52971/8
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: 10. Apr 2025 01:00 Ich glaube ein einziger Button, der wiederum ein Menu aufruft in dem die Geschichten dann alle nochmal aufklappen, als Übersicht und Einzel-Klick-Kopie, das kommt der besten Praktikabilität vielleicht am nächsten?!
Da besteht das Problem, dass man den Code einer 10-er Gruppe nicht in ein Schalterlabel packen kann, weil der nicht so viele Zeichen annimmt. Sonst könnte man eine 10-Gruppe im Label eines Schalters aufnehmen, und damit die Symbolleiste austauschen, auf der sich dann die zehn Symbole als Schalter befinden, die den Code in die Zwischenablage kopieren.
tbone hat geschrieben: 10. Apr 2025 01:00 Die B+W (schwarz weiß) Versionen habe ich in meiner Toolbar jetzt auch erstmal nur angedeutet.. nur 2 Reihen erstmal dazugemacht, aber im Grunde sind das "nochmal so viele" Icons bzw. Reihen.
Das dürfte dann kein so großer Aufwand sein, da sich die schwarz/weiß Symbole nur durch einen Buchstaben in der Symbolgruppe unterscheiden.
Statt <%ddbi:0> für farbige Symbole schreibt man <%ddbg:0> für das gleiche Symbol in schwarz / weiß. Wenn also die Schalter für die farbigen Symbole stehen, könnte man direkt in den xml-Dateien durch suchen und ersetzen die schwarz / weiß Symbole erstellen.
Zuletzt geändert von josinoro am 11. Apr 2025 18:04, insgesamt 1-mal geändert.
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: 10. Apr 2025 01:31 Damit man den Button-Code besser versteht, habe ich ein paar kleine Änderungen gemacht:
- sprechender Variablen-Name "pathExists" anstatt "Datei_01"
- immer auf "true" prüfen, nicht gemischt, damit Code, Auge und Gehirn leichter einrasten auf der gleichen Spalte und Logik
- unnötige Klammern entfernt, für Ternary Operator nicht nötig.
- @enableif statt "@disableif", ebenfalls um immer gegen "true" testen zu können, sieht auch aufgeräumter aus dann
- keine Verwendung von <%.. > inline Icons, um das Evalutator-Beispiel nicht unnötig komplex erscheinen zu lassen
- keine Verwendung von Icons die nur eine Nummer als Namen haben (ist unnötig verwirrend, irritiert beim Verstehen)

Hier noch ein paar Referenzen bzw. Links zum Thema:
https://docs.dopus.com/doku.php?id=eval ... e_contexts
https://docs.dopus.com/doku.php?id=eval ... ons:labels
https://resource.dopus.com/t/still-a-bi ... or/52971/8
Die Tipps und die Links sind gut. Durch das viele Probieren habe ich die doppelte Verneinung in meiner Variante gar nicht mehr wahrgenommen.
Vielen Dank nochmal an der Stelle.
Benutzeravatar
tbone
Supporter
Beiträge: 503
Registriert: 29. Okt 2021 00:45
Betriebssystem: Windows 10 Pro

Re: Iconwechsel wenn Datei nicht vorhanden

Beitrag von tbone »

Ich danke auch, ich habe auch was gelernt dabei! o)
Ich habe auch extra im GP-Forum ein paar Sachen nachhaken müssen.

Bei den Evaluatoren und den "ifs" bzw. den Bedingungen muss man ein bisschen aufpassen. Das verhält sich nicht unbedingt wie bei Javascript, eher wie bei C oder C++. Aber auf jeden Fall ist mir nochmal klar geworden, und das gilt egal wo, dass ein "if (<Int-Var>)" nur "true" ist, wenn der Wert des Ausdrucks auf ungleich 0 evaluiert. Eine Integer-Variable gegen "true" zu prüfen, wird immer "false" ergeben, es sei denn die Variable hat den Wert 1.
image.png
image.png (864 Bytes) 162 mal betrachtet
Irgendwie hatte ich das verdrängt, es ist mir hier aber zum Verhängnis geworden, weil "@enableif:= return selfiles;" irgendwie nur sehr "unzuverlässig" zu funktionieren schien, immer nur dann, wenn genau ein Item selektiert war, ich dachte erst, dass sei ein Bug.. o) Daher jetzt auch ".. (selfiles > 0);" im Beispiel-Code, denn das ergibt immer "true", egal welchen positiven Wert "selfiles" hat, also egal wieviele Items selektiert sind.
image.png
image.png (1.85 KiB) 162 mal betrachtet
Ohne solche Basics vor Augen zu haben, kann es schnell unlogisch werden! o)
Frohes Wochenende! o)

Wer noch Fragen zu "true" oder "false" hat, drückt "F12" im Browser und tackert ein bisschen auf der Javascript-Konsole herum! o)
image.png
image.png (5.59 KiB) 162 mal betrachtet
image.png
image.png (6.49 KiB) 162 mal betrachtet
Antworten