Einheitliches Aktionensystem

German support forum

Moderators: white, Hacker, Stefan2

User avatar
Lefteous
Power Member
Power Member
Posts: 9535
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Einheitliches Aktionensystem

Post by *Lefteous »

Ich schlage ein einheitliches Aktionensystem vor, dass es dem Benutzer ermöglicht Aktionen ähnlich komfortabel zu verwalten, wie es auf programmiertechnischer Ebene in der Visual Component Library (VCL) möglich ist (Für den Anwender des Total Commander soll es natürlich einfacher sein, wie für den Programmierer :D ).
Im Augenblick gibt es hier im Total Commander leider kein einheitliches Konzept. Ich kann einen Startermenüeintrag erstellen und diesem eine Tastenkobination zuweisen (z.B. Strg+Alt+F7). Dann erstelle ich einen benutzerdefinierten Hotkey, der dieselbe Tastenkombination nutzt. Hier hat jetzt das Menü jetzt Priorität vor dem benutzerdefinierten Hotkey. Hinzu kommen noch Anbauten wie das Nutzen von Startermenüeinträgen bei den benutzerdefinierten Shortcuts. Das funktioniert auch alles gut, aber es ist aus meiner Sicht kein einheitliches intuitives System, sondern ein mit der Zeit Gewachsenes. Ich bin der Meinung hier sollte ein Redesign gemacht werden.

Folgendes schwebt mir vor:

Eine Aktion sollte folgende Egenschaften haben:
Name Ein eindeutiger Name für die Aktion
Beschriftung eine Beschriftung für die Aktion, die angezeigt wird.
Ereignis Das Kommando das ausgeführt wird.
Symbol Eine Liste mit Symbolen mit demselben Motiv aber unterschiedlichen Größen (16x16, 32x32 usw.)
Tastenkürzel Eine hierarchie Liste mit Tastenkobinationen für diese Aktion
Tooltip Ein Kurzhinweis, wenn man mit der Maus über den Eintrag fährt.
Kategorie Jede Aktion sollte zur besseren Konfiguration einer Kategorie zugeordnet werden können.


Es sollte eine vordefinierte Liste mit Aktionen geben, die der Benutzer komfortabel ändern und erweitern kann. Der Benutzer kann mit dieser (kategorisierten) Liste das vorkonfigurierte Menü bzw. die vorkonfigurierte Buttonbar ändern und erweitern. Hierbei wird ein neuer Meenüeintrag bzw. ein neuer Button erstellt, dem man dann eine Aktion zuweist. Das Steuerelement übernimmt nun von der Aktion alle für sich relevanten Eigenschaften.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48113
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Das wäre schon schön, doch allein die ganzen Symbole würden den TC extrem aufblähen...
Author of Total Commander
https://www.ghisler.com
User avatar
Lefteous
Power Member
Power Member
Posts: 9535
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

ghisler(Author) wrote:Das wäre schon schön, doch allein die ganzen Symbole würden den TC extrem aufblähen...
Natürlich müssten nicht für alle Aktionen im Standardsetup Symbole enthalten sein. Viele Symbole lassen sich auch aus in Windows mitgelieferten Symbolbibliotheken benutzen. Wenn man sich seine eigene geordnete Aktionsliste mit eigenen Symbolen zusammenstellen könnte, wäre das schon echt klasse.
Kleiner Nachtrag noch: Wichtig wäre eine Trennung von Struktur und Lokalisierung.
User avatar
Lefteous
Power Member
Power Member
Posts: 9535
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

So um diesen Thread mal wieder etwas Leben einzuhauchen noch eine Anmerkung zum aktuellen System. Im Augenblick steht in den Menü Dateien bei einigen Einträgen ein Hotkey. Wenn ich nun z.B. auf Strg+F10 eine andere Aktion lege hat diese Tastenkombination eine ganz andere Funktion. Im Menü steht jedoch immer noch "Alles Strg+F10" im Menü Ansicht.
Last edited by Lefteous on 2003-07-02, 21:10 UTC, edited 1 time in total.
User avatar
deus-ex
Power Member
Power Member
Posts: 969
Joined: 2003-02-10, 17:45 UTC

Post by *deus-ex »

Lefteous wrote:Wenn ich nun z.B. auf Strg+F10 eine andere Aktion lege hat diese Tastenkombination eine ganz andere Funktion. Im Menü steht jedoch immer noch "Alles Strg+F10" im Neü Ansicht.
Hab' ich gar nicht bemerkt. Schließe mich hier Lefteous an. Die Menus sollten die aktuell zugewiesenen
Tastaturkürzel wiedergeben, da dies eine wesentliche Hilfe ist sich diese einzuprägen oder in Erinnerung zu rufen.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48113
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Die Menus sollten die aktuell zugewiesenen
Tastaturkürzel wiedergeben, da dies eine wesentliche Hilfe ist sich diese einzuprägen oder in Erinnerung zu rufen.
Dies ist leider aus Uebersetzungsgründen nicht möglich. Man kann das Menue aber von Hand anpassen: Datei wcmd_deu.mnu.
Author of Total Commander
https://www.ghisler.com
User avatar
Hacker
Moderator
Moderator
Posts: 13073
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

Oder einfach das Menu in TCME ( http://thehacker.host.sk/tcme/ ) laden und gleich wieder speichern (BTW immer vorsichtshalber ein Backup machen bzw. unter anderem Namen speichern). Falls alles problemlos lauft sollten die Tastaturkurzel automatisch angepasst werden.

HTH
Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
User avatar
Lefteous
Power Member
Power Member
Posts: 9535
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

ghisler(Author) wrote:
Die Menus sollten die aktuell zugewiesenen
Tastaturkürzel wiedergeben, da dies eine wesentliche Hilfe ist sich diese einzuprägen oder in Erinnerung zu rufen.
Dies ist leider aus Uebersetzungsgründen nicht möglich. Man kann das Menue aber von Hand anpassen: Datei wcmd_deu.mnu.
Genau das ist das Problem: In den Menüdateien stehen übersetzungsrelevante Infos drin. Wenn nur die Struktur drin stehen würde, könnte man die Menü Dateien auch besser austauschen. Wenn ich mir z.B. ein Custom-Menü von Maxwish-Seite runterlade ist sie meistens in englisch.
Für die Menüüberschriften sollte es in der sprachabhängigen Datei einen Vorrat an Menütiteln geben, der sich an den Kategorien orientiert.

Beispiel:

So sieht das im Augenblick in der mnu-Datei aus:

POPUP "&Markieren"
MENUITEM "&Gruppe markieren...\tNUM +", cm_spreadselection
MENUITEM "Gruppenauswahl &rückgängig...\tNUM -", cm_shrinkselection
MENUITEM "Alle Dateien markieren\tSTRG NUM +", cm_selectall
MENUITEM "Keine Datei markieren\tSTRG NUM -", cm_Clearall
MENUITEM "Aus&wahl umkehren\tNUM *", cm_ExchangeSelection
MENUITEM "Auswahl wieder&herstellen\tNUM /", 529
MENUITEM SEPARATOR
MENUITEM "&Verzeichnisse vergleichen\tUmsch+F2", cm_CompareDirs
MENUITEM "Neue &markieren, gleiche verstecken", cm_DirMatch
END_POPUP

So in etwa stelle ich mir das vor:

POPUP MENUTITLE_MARK
MENUITEM cm_spreadselection
MENUITEM cm_shrinkselection
MENUITEM cm_selectall
MENUITEM cm_Clearall
MENUITEM cm_ExchangeSelection
MENUITEM 529
MENUITEM SEPARATOR
MENUITEM cm_CompareDirs
MENUITEM cm_DirMatch
END_POPUP

In (deutscher) Sprachdatei:

(1 Beispieleintrag)

[cm_spreadselection]
Caption="&Gruppe markieren
Hint=Gruppe markieren
HotKey=+

usw. Hier sollte es benötigte und optionale Einträge (z.B. "Icon") geben.

Wenn nötig bräuchte man auch noch einen Abschnitt, indem drinsteht, dass die Ctrl-Taste im deutschen Strg heißt etc.

Natürlich weiß ich, dass das tiefgreifende Veränderungen sind. Aber vielleicht lohnt sich ja ein langfristige Überlegung.
Jonas
Senior Member
Senior Member
Posts: 325
Joined: 2003-05-27, 16:59 UTC
Location: Germany
Contact:

Post by *Jonas »

So ein System wäre wirklich eine schöne Sache! Klar, es ist eine sehr einschneidene Veränderung am Grundgerüst des TC nötig, aber die anschliesenden Vorteile wären enorm. Ich bin auch der Meinung das derartiges auf langfristige Sicht unbedingt das Rückrad für Usereingaben bilden sollte.

Erweitert werden müssten Deine Aktionen noch um folgende Eigenschaften damit auch das Starten Externer Programme möglich wird: Parameter, Startpfad, Startart (als Symbol, maximiert...)
Zusätzlich müsste die Möglichkiet gegeben sein, als Beschriftung auf den Inhalt der Sprachdateien zuzugreifen (zB. in der Form: "LNG: <id> [sprachdatei_prefix(_DEU.lng wird angehängt)]" also konkret "LNG: 2" anstelle von "Neues Verzeichnis"). So liessen sich auch Sprachunabhängige Aktionen erzeugen. Klartexteingaben sind natürlich weiterhin möglich, aber gerade die TC-standardmenüs kämen so mit einer rein strukturellen Speicherung aus und es würde nur eine offizielle Sprachdatei benötigt. (Ich nehme an, das das das ist was Du, Lefteous, mit der strikten Trennung von Struktur und Lokalisierung meinst)

Das Startmenü würde sich in keinster Weise von den anderen Menüs unterscheiden. Es wird genauso nichts weiter als die Struktur der darin enthaltenen Aktionen verlangt.
Selbes für die Buttonbar. Es wird aufgespaltet in "ändern" und "Aktion bearbeiten", wobei "ändern" nur die Position (bei Änderung muss eben ein neues .bmp generiert werden) und die auszuführende Aktion verändert.
Auch die Directory Hotlist wäre nichts anderes als eine Ansammlung von Aktionen, genau wie die untere Buttonbar.
Ein Ziehen eines Programms in die Bottunbar generiert dann automatisch eine entsprechende Aktion sowie den Button selbst als Aufrufendes Element. Der user bekommt einen Dialog indem er der Aktion einen eideutigen Namen gibt und andere Parameter wie Startpfad oder hotkey festlegt.

Um weiterhin für Übersicht zu sorgen schlage ich eine Erweiterung der Kategorisierung vor: Es sollte eine feste Kathegorie "automatisch generiert" geben, in der alle Aktionen ohne vom user eindeutig festgelegten Namen vereint werden. Als Beispiel wären erzeugnisse der Direktory-Hotlist zu nennen. Es wäre äusserst unpraktisch wenn man hier bei jedem Hinzufühgen eines Verzeichnisses nach einem Eindeutigen Namen gefragt würde, zumal diese Aktionen (cd xy\zzz) meist ausschliesslich von hier aufgerufen werden. Also generiert der TC ohne Rückfrage die Aktion, generiert ihre den eindeutigen Namen wie zB. "Directory-Hotlist_zzz" und packt sie in die obengenannte feste Kathegorie. Braucht man diese Aktion später auch noch anderswo (zB. Buttonbar oder Menü) oder möchte ihr einen Hotkey zuordnen kann man später die Aktion immernoch bequem umkonfigurieren.

Ein ebenfalls grosser Vorteil ist deben der Tatsache das verschiedenste Elemente (Menü, Buttonbar, etc) auf die selbe Aktion zugreifen würden, sprich Änderungen zB. des Hotkeys sich global auswirken würden und nicht an zig verschiedenen Stellen Hand angelegt werden müsste, die relatif einfache Erweiterung um weitere aufrufende Elemente. Sehr schön wäre es zB. das Kontextmenü um eigene Aktionen zu erweitern. Ebenfalls müsste ncihts weiter als die Aktion und eine Bedingung (wie zB. immer, erweiterung=cpp, mime-type=plain/text, location=ftp, etc) in einer Struktur, beinhaltent Position, untermenüs und Seperatoren, ähnlich dem normalen Menü gespeichert werden.
Jonas
Senior Member
Senior Member
Posts: 325
Joined: 2003-05-27, 16:59 UTC
Location: Germany
Contact:

Post by *Jonas »

Lefteous wrote:So in etwa stelle ich mir das vor:

POPUP MENUTITLE_MARK
MENUITEM cm_spreadselection
MENUITEM cm_shrinkselection
MENUITEM cm_selectall
MENUITEM cm_Clearall
MENUITEM cm_ExchangeSelection
MENUITEM 529
MENUITEM SEPARATOR
MENUITEM cm_CompareDirs
MENUITEM cm_DirMatch
END_POPUP

In (deutscher) Sprachdatei:

(1 Beispieleintrag)

[cm_spreadselection]
Caption="&Gruppe markieren
Hint=Gruppe markieren
HotKey=+
Hier vermischt Du wieder Struktur (diesmal der Aktion) und Lokalisierung.
Ich nutze das Beispiel mal weiter:

In der Menüdatei (ausschnitt):
POPUP LNG: 7777
MENUITEM cm_spreadselection
MENUITEM cm_shrinkselection
MENUITEM cm_selectall
MENUITEM cm_Clearall
MENUITEM cm_ExchangeSelection
MENUITEM 529
MENUITEM SEPARATOR
MENUITEM cm_CompareDirs
MENUITEM cm_DirMatch
END_POPUP

In der Aktions-datei:
[cm_spreadselection]
Caption=LNG: 8888
Hint=LNG: 8889
HotKey=+

In der Sprachdatei:
7777=2&Markieren"
8888="&Gruppe markieren"
8889="Gruppe markieren"
User avatar
Lefteous
Power Member
Power Member
Posts: 9535
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

Jonas wrote:So ein System wäre wirklich eine schöne Sache! Klar, es ist eine sehr einschneidene Veränderung am Grundgerüst des TC nötig, aber die anschliesenden Vorteile wären enorm. Ich bin auch der Meinung das derartiges auf langfristige Sicht unbedingt das Rückrad für Usereingaben bilden sollte.
:wink:
Jonas wrote: Erweitert werden müssten Deine Aktionen noch um folgende Eigenschaften damit auch das Starten Externer Programme möglich wird: Parameter, Startpfad, Startart (als Symbol, maximiert...)
ja diese Sachen müssen natürlich auch sein. Hier noch eine Idee von meiner Wenigkeit:
http://www.ghisler.ch/board/viewtopic.php?t=1520
Jonas wrote: Zusätzlich müsste die Möglichkiet gegeben sein, als Beschriftung auf den Inhalt der Sprachdateien zuzugreifen (zB. in der Form: "LNG: <id> [sprachdatei_prefix(_DEU.lng wird angehängt)]" also konkret "LNG: 2" anstelle von "Neues Verzeichnis"). So liessen sich auch Sprachunabhängige Aktionen erzeugen. Klartexteingaben sind natürlich weiterhin möglich, aber gerade die TC-standardmenüs kämen so mit einer rein strukturellen Speicherung aus und es würde nur eine offizielle Sprachdatei benötigt. (Ich nehme an, das das das ist was Du, Lefteous, mit der strikten Trennung von Struktur und Lokalisierung meinst)
ja Trennung zwischen Struktur und Lokalisierierung ist das worauf ich hinaus will.
Jonas wrote: Das Startmenü würde sich in keinster Weise von den anderen Menüs unterscheiden. Es wird genauso nichts weiter als die Struktur der darin enthaltenen Aktionen verlangt.
Selbes für die Buttonbar. Es wird aufgespaltet in "ändern" und "Aktion bearbeiten", wobei "ändern" nur die Position (bei Änderung muss eben ein neues .bmp generiert werden) und die auszuführende Aktion verändert.
Auch die Directory Hotlist wäre nichts anderes als eine Ansammlung von Aktionen, genau wie die untere Buttonbar.
Ein Ziehen eines Programms in die Bottunbar generiert dann automatisch eine entsprechende Aktion sowie den Button selbst als Aufrufendes Element. Der user bekommt einen Dialog indem er der Aktion einen eideutigen Namen gibt und andere Parameter wie Startpfad oder hotkey festlegt.
genau so läuft der Hase!
Jonas wrote: Um weiterhin für Übersicht zu sorgen schlage ich eine Erweiterung der Kategorisierung vor: Es sollte eine feste Kathegorie "automatisch generiert" geben, in der alle Aktionen ohne vom user eindeutig festgelegten Namen vereint werden. Als Beispiel wären erzeugnisse der Direktory-Hotlist zu nennen. Es wäre äusserst unpraktisch wenn man hier bei jedem Hinzufühgen eines Verzeichnisses nach einem Eindeutigen Namen gefragt würde, zumal diese Aktionen (cd xy\zzz) meist ausschliesslich von hier aufgerufen werden. Also generiert der TC ohne Rückfrage die Aktion, generiert ihre den eindeutigen Namen wie zB. "Directory-Hotlist_zzz" und packt sie in die obengenannte feste Kathegorie. Braucht man diese Aktion später auch noch anderswo (zB. Buttonbar oder Menü) oder möchte ihr einen Hotkey zuordnen kann man später die Aktion immernoch bequem umkonfigurieren.
Das ist sicherlich sinnvoll. Allerdings plädiere ich dafür, das automatisch vergebene Aktions-Identifizierer sich eher an der Aktion (cm_UserCD0001) orientieren als daran, ob sie im Startmenü oder in der Verzeichnisliste erzeugt wurden.
Jonas wrote: Ein ebenfalls grosser Vorteil ist deben der Tatsache das verschiedenste Elemente (Menü, Buttonbar, etc) auf die selbe Aktion zugreifen würden, sprich Änderungen zB. des Hotkeys sich global auswirken würden und nicht an zig verschiedenen Stellen Hand angelegt werden müsste, die relatif einfache Erweiterung um weitere aufrufende Elemente. Sehr schön wäre es zB. das Kontextmenü um eigene Aktionen zu erweitern. Ebenfalls müsste ncihts weiter als die Aktion und eine Bedingung (wie zB. immer, erweiterung=cpp, mime-type=plain/text, location=ftp, etc) in einer Struktur, beinhaltent Position, untermenüs und Seperatoren, ähnlich dem normalen Menü gespeichert werden.


In Sachen Hotkeys ist es ganz einfach so: Es muss überhaupt kein Button existieren, damit ein Hotkey wirksam ist.
Nebenbei hat man so in der Aktionsverwaltung eine schicke Übersicht der aktuellen Hotkeys.
Jonas wrote:Hier vermischt Du wieder Struktur (diesmal der Aktion) und Lokalisierung.
Ich nutze das Beispiel mal weiter:

In der Menüdatei (ausschnitt):
POPUP LNG: 7777
MENUITEM cm_spreadselection
MENUITEM cm_shrinkselection
MENUITEM cm_selectall
MENUITEM cm_Clearall
MENUITEM cm_ExchangeSelection
MENUITEM 529
MENUITEM SEPARATOR
MENUITEM cm_CompareDirs
MENUITEM cm_DirMatch
END_POPUP

In der Aktions-datei:
[cm_spreadselection]
Caption=LNG: 8888
Hint=LNG: 8889
HotKey=+

In der Sprachdatei:
7777=2&Markieren"
8888="&Gruppe markieren"
8889="Gruppe markieren"
Ich vermische hier keinesfalls Struktur und Lokalisierung - wie kommst du darauf? Ich habe jedoch in dem Beispiel nicht hingeschrieben, was in der Aktions-Datei steht. Das würde nach meinen Vorstellungen so aussehen:

[CATEGORYTITLES]
CTG_SELECT=7777

[cm_spreadselection]
Caption=8888
Hint=8889
Hotkey=8890

Also eigentlich genau wie bei Dir oder wolltest Du ein Beispiel bringen wie man es nicht machen sollte:?: Wenn ja, worin besteht die Vermischung?

Ob der Hotkey lokalisiert werden sollte, darüber kann man natürlich diskutieren. In meinem Beispiel habe ich das einfach mal so gemacht.

Ich mag das nur mit Zahlen nicht so sehr. Zumindest für die Kategorietitel sollte man die schon vergeben - es ist eine Option, die man nutzen kann oder nicht. Allerdings läßt mein Vorschlag natürlich auch zu, das nur Zahlen benutzt werden. Warum stellst Du immer "LNG: " vornean? Das ist bisher auch nicht drin und macht das Parsen des Strings nur etwas aufwendiger. Wenn eine Nummer dasteht, dann gibt es halt keinen Identifizierer.

Mein Vorschlag baut noch auf der momentanen Menüstruktur auf. Es sollten dann sicher allgemeinere Prefixe als POPUP und MENUITEM benutzt werden.
User avatar
Pete
Junior Member
Junior Member
Posts: 88
Joined: 2003-02-08, 18:05 UTC
Location: Bodensee (Southern Germany)

Post by *Pete »

Hallo Lefteous, hallo Jonas,

dieses Konzept gefaellt mir sehr gut. Allerdings bin ich auch dafuer nicht nur Zahlencode zu verwenden, sondern auf beschreibende Kategorietitel auszuweichen.
Das waere viel einpraegsamer und nicht so abstrakt.

Denkt an die vielen TC User, die keine Programmierer sind, aber dennoch ihren TC an eigene Beduerfnisse anpassen wollen.

Und falls dieses Konzept von Christian in zukuenftige TC Versionen (v7.0?) implementiert wird, warte ich heute schon auf ein Tool, mit welchem der TC User auf einfache und komfortable Weise Buttonbar, Menue, und auch die untere Buttonleiste aendern kann.

Dieses Konzept wuerde auch die Mehrsprachigkeit enorm erleichtern.

Womoeglich koennte dieses Konzept dann auch auf Plugins ausgeweitet werden.

Gruss
Pete
Jonas
Senior Member
Senior Member
Posts: 325
Joined: 2003-05-27, 16:59 UTC
Location: Germany
Contact:

Post by *Jonas »

Lefteous wrote:So in etwa stelle ich mir das vor:

POPUP MENUTITLE_MARK <--- Alias
MENUITEM cm_spreadselection
MENUITEM cm_shrinkselection
MENUITEM cm_selectall
MENUITEM cm_Clearall
MENUITEM cm_ExchangeSelection
MENUITEM 529
MENUITEM SEPARATOR
MENUITEM cm_CompareDirs
MENUITEM cm_DirMatch
END_POPUP

In (deutscher) Sprachdatei:

(1 Beispieleintrag)

[cm_spreadselection]
Caption="&Gruppe markieren <--- Lokalisierung in der Struktur der Aktion
Hint=Gruppe markieren
HotKey=+
Mir wäre ein Alias für die Lokasilierung auch lieber als eine Zahl. Ich habe nur auf diese zurückgegriffen da die bisherigen Sprachdateien des TC ebenfalls nur Zahlen als Identifier verwenden.
Wie oben aufgezeigt hast Du hier sehrwohl in der definition der Aktion cm_spreadselection Deutsche Sprache mit der Stuktur vermischt. Dagegen ist auch für eigene Aktionen nichts einzuwenden, im Gegenteil. Es gestalt sich so für den User erheblich leichter etwas anzupassen. Für offizielle Aktionen hingegen erleichtert der Zugriff auf die Sprachdatei die Übersetzung erhelblich da nur eine Datei mit Aktionen gewartet werden muss (und nicht wie jetzt bei den Menüdateien zig verschiedene)
Ich verwende den Prefix LNG: um genau beides möglich zu machen. "LNG: 12345" holt den String aus der Sprachdatei. "lesbare Überschrift" wird dagegen direkt ausgegeben. Wie sonst sollte der TC wissen, was direkt ausgegeben und was ein Alias in der Sprachdatei ist?
Lefteous wrote:Allerdings plädiere ich dafür, das automatisch vergebene Aktions-Identifizierer sich eher an der Aktion (cm_UserCD0001) orientieren als daran, ob sie im Startmenü oder in der Verzeichnisliste erzeugt wurden.
Genau das finde ich nicht. Wenn Du für spätere Änderung eine Bestimmte Aktion in den automatisch generierten suchst findest Du "Hotlist_zzz" erheblich besser als "cm_User000127".


Eine weitere Ergänzung sind Parameter für Aktionen. Da es sowieso möglich sein muss, Aktionen aus Aktionen heraus aufzurufen (sonst könnte man keine cm_* in eigenen Aktionen nutzen) könnte man auch Parameter für Aktionen einbauen. Die Aufruf- und Ansprechkonventionen könnten sich an denen von batch-dateien orientieren.
Sprich zum Auruf: Ereignis = <aktion> "parameter 1" "parameter 2" ...
Ansprechen in der Aktion (beispiel): Ereignis = cm_RunAsUser %1 %2 (oder Ereignis = cm_ftpOpen "meine gespeicherte Verbindung")
Das wäre schon ein erster Schritt in Richtung Makro, besonders wenn man einer Aktion mehrere Ereignisse (Ereignis1=... Ereignis2=... etc) verpassen könnte (oder auch mehrere Hotkeys) die dann nacheinander abgearbeitet würden. Sicher, für eine richtige Makrosprache reit dsa nicht, es würde aber bereits sehr viele Dinge des täglichen gebrauchs enorm vereinfachen wenn man 2-3 Ereignisse auf einen Tastendruck abarbeiten könnte. Und wenn eines fernen Tages mal eine fähige Makrosprache in den TC einzug erhält, hätte man gleich primitive Routinen auf die man zurückgreifen könnte. - Gut, aber das Thema Makro und TC soll an einer anderen Stelle diskutiert werden.
User avatar
Lefteous
Power Member
Power Member
Posts: 9535
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

Jonas wrote: Wie oben aufgezeigt hast Du hier sehrwohl in der definition der Aktion cm_spreadselection Deutsche Sprache mit der Stuktur vermischt.
Was denn für eine Struktur der Aktion? Was soll das denn sein?
Steh ich jetzt total aufm Schlau? Ich will eine Menüdatei, eine Aktionsdatei und beliebig viele Sprachdateien. Ich verstehe offengestanden nicht was bei meinem Vorschlag dagegenspricht.
Jonas wrote: Ich verwende den Prefix LNG: um genau beides möglich zu machen. "LNG: 12345" holt den String aus der Sprachdatei. "lesbare Überschrift" wird dagegen direkt ausgegeben. Wie sonst sollte der TC wissen, was direkt ausgegeben und was ein Alias in der Sprachdatei ist?
Eine Zahl heißt "Hol die Beschriftung direkt aus der Sprachdatei". Die Sektion heißt dann [12345]. Das sollte möglich sein, aber die absolute Ausnahme sein!
Bei cm_xyz muss der Identifizierer, aus dem sich der Sektionsname ergibt aus der Auktionsdatei geholt werden.
Das wird bereits jetzt so gemacht.
Lefteous wrote:Allerdings plädiere ich dafür, das automatisch vergebene Aktions-Identifizierer sich eher an der Aktion (cm_UserCD0001) orientieren als daran, ob sie im Startmenü oder in der Verzeichnisliste erzeugt wurden.
Jonas wrote: Genau das finde ich nicht. Wenn Du für spätere Änderung eine Bestimmte Aktion in den automatisch generierten suchst findest Du "Hotlist_zzz" erheblich besser als "cm_User000127".
Ich habe das Kommando cm_UserCD0001 genannt und nicht "cm_User000127". Wieso machst Du keinen fairen Vergleich?
Jonas wrote:....Gut, aber das Thema Makro und TC soll an einer anderen Stelle diskutiert werden.
das finde ich auch!
Jonas
Senior Member
Senior Member
Posts: 325
Joined: 2003-05-27, 16:59 UTC
Location: Germany
Contact:

Post by *Jonas »

Lefteous wrote:Ich will eine Menüdatei, eine Aktionsdatei und beliebig viele Sprachdateien. Ich verstehe offengestanden nicht was bei meinem Vorschlag dagegenspricht.
Genau das will ich auch :) (nur mit der Mögloichkeit auf mehrere Aktions-dateien, aber das geht aus früheren Posts nicht hervor)
Der Unterschied: Bei mir ist die Standard Aktionsdatei frei von sprachspezifischen Eigenschaften. Das vereinfacht die Wartung (ein (un-)schöes Beispiel ist die momentane Menü-situation. Hier ist für jede Sprache eine eigene Menüdatei nötig obwohl die Struktur bei allen gleich ist. Diese Redundanz ist auch bei Deinem Beispiel nicht mehr vorhalnden. Aber anstelle dessen taucht eine Neue in der Aktionsdatei auf, da Du hier die Lokalisierung einbringst. Die Aktionsdatei muss bei Dir für jede Sprache extra vorhanden sein.)
Mein Vorschlag:
Eine offizielle Menüdatei, die nur die Struktur der Menüs enthält. Genau wie bei Dir auch.
Eine offizielle Aktionsdatei, in der die Eigenschaften der Aktionen verwaltet werden. Auch hier soll auf eine Lokalisierung verzichtet werden: Beschriftungen sollen aus der Sprachdatei geholt werden. Aber es ist auch die Möglichkeit zur direkten Eingabe von Beschriftungen möglich (für spätere erweiterungen). In Deinem ersten Beispiel hast Du sprachspezifische Eigenschaften in die Aktionsdatei gepackt, im zweiten nicht mehr. deshalb denke ich das wir uns auch hier einig sind. Einziger Unterschied: Du verwendest einfach Zahlen für verweise aud die Sprachdatei und alles was nicht reine Zahl ist wird direkt ausgegeben. Ich benutze einfach einen prefix LNG. Was nun einfacher zu parsen ist, also die Prüfung auf eine reine Zahl oder den Prefix weiss ich nicht. Wie es letztendlich realisiert wird, ist mir auch egal. Mit dem Prefix währen auch Aliase als Verweis zur sprachdatei möglich, wie Du sie im Menübeispiel verwendest, aber so wie zZ. die Sprachdatei aufgebaut ist spielt das keine grosse rolle. Also beleibt unterm strich kein wirklicher Unterschied in unseren Versionen. für die implementierung sind wir ja nicht zuständig ;)
Die Aktionsdatei solle aber nur Aktionen enthalten die von Standart abweichen. So ist das Update auf neuere Versionen einfacher da die evtl. vom User geänderte Aktiondatei nicht mit einer neuen ersetzt werden muss. Alternativ hierzu käme die obengenannte 2. Aktionsdatei ins Spiel die alle Standards enthält und erst an zweiter stelle zu Rate gezogen wird, wenn in der User-Aktions-Datei kein Eintrag zu finden ist. Sie wäre auch als art Übersicht über alle vorhandenen Aktionen zu sehen.
Lefteous wrote:Ich habe das Kommando cm_UserCD0001 genannt und nicht "cm_User000127". Wieso machst Du keinen fairen Vergleich?
Sorry, das CD habe ich im eifer des Gefechts glatt überlesen :oops:
Was mir wichtiger als der Prefix ist, ist, das in meinem Beispiel der Name des Verzeichnisses im Namen auftaucht, also bei Dir cm_userCD_dir-xy anstelle von cm_UserCD00123...
Wenn wir schon bei der Nomelklatur sind, was haltet ihr davon, cm_* für intern implementierte Aktionen zu verwenden und user_* für automatisch generirte? Also im Falle der Hotlist zB. "user_cd_Programme" (und erst hier bei mehreren eine Nummerierung starten)
Post Reply