MacroRecorder: in Datei speichern und aus ihr laden

Für Fragen rund um die Ide und zum Debugger
martin_frb
Beiträge: 586
Registriert: Mi 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
CPU-Target: mostly 32 bit

Re: MacroRecorder: in Datei speichern und aus ihr laden

Beitrag von martin_frb »

br_klaus hat geschrieben:
martin_frb hat geschrieben: Versteh ich nicht. Ich will ja nicht nur 1,2,4,8, 16, .. mal wiederholen, sondern vielleicht auch 10,11 oder 12mal. Soll der nutzer dann binaer Zahlen eingeben?
Dann vielleicht mit Einlesen durch Zahlstring, abgeschlossen mit #13.
Das geht, bedeutet aber derzeit einen dialog. Ähnlich wie "Goto Line". Irgendwann vielleicht mal eine commandozeile, wie vi oder emacs.
martin_frb hat geschrieben: - im primary-config-path (bevorzugt XML, kann CDATA sein)
Was ist denn CDATA?
Ein text abschnitt in XML. Der Macro muss also nicht XML sein, sondern nur als Text in dem (bereits vorhandenem) xml eingebettet werden.
martin_frb hat geschrieben: weitere Files sollten nicht verwendet werden.
Und warum nicht? Ist das ein "Dogma"?
Nein, aber es muss schon bessere Gründe geben als "spart ein paar Minuten Arbeit". Es gibt auch manche Benutzer von Lazarus, die nicht Unmengen von Files wollen.
Außerdem: primary-config-path ist ein Ordner. Da können weiter Dateien erzeugt werden.
LazMacroFileName := ExtractFileDir(ParamStrUTF8(0))
Das ist das Verzeichnis in der die Lazarus.exe ist. Etliche Betriebssysteme erlauben nur Root/Administrator Schreibzugriffe.
martin_frb hat geschrieben: Meine idee
ecLeft;
ecChar(#9);
ecChar('A');
Das versteh ich nicht so ganz. Wo soll denn das hin? Und warum da ein TAB drin? Oder ist das ein Beispiel für den Macrorecorder?
Das ist ein Beispiel Makro für, die 3 Tasten: Cursor-links, tab, A
Die Übersetzungen ecLeft/ecChar existieren in der IDE bereits. SynEdit übersetzt alle Eingaben in solche interne Kommandos und diese speichert dann der Makrorekorder. Das heist wenn der Benutzer "A" drückt, führt SynEdit das Kommando ecChar, mit dem Argument 'A' aus

Der Makro würde dann als Klartext in die Datei geschrieben (oder ins XML eingebettet). Man kann den Makro dann sogar editieren.
Gehen da nicht trotzdem IdeShortcuts (wo nur key1 belegt ist)?
martin_frb hat geschrieben: Entsprechend der Tastatur Belegung. Die kann aber geändert werden.
Läßt sich das nicht mit den anderen Keypress-Events abgleichen? Bei einem ist das Ergebnis char, und das ist, glaube ich, unabhängig von der Tastaturbelegung.
Die IDE erlaubt es sogar, die Tasten für links und rechts umzubelegen. Menu: Tools > Options > Editor > KeyMap

martin_frb
Beiträge: 586
Registriert: Mi 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
CPU-Target: mostly 32 bit

Re: MacroRecorder: in Datei speichern und aus ihr laden

Beitrag von martin_frb »

ES gibt aber ein anderes "Dogma": Backward compatibility.

Das heist, wenn ich jetzt ein bisschen Zeit spare, und die Datei irgendwo abspeichere, und das in einem Format das sich nicht leicht erweitern lässt, dann muss ich für alle Zukunft in der IDE das laden dieser Datei unterstützen.

Dementsprechend versuche ich eine Lösung zu finden, von der ich glaube das Sie sich auch in Zukunft eignet.

Natürlich kann ich die Zukunft nicht vorhersagen, wenn ich Pech hab investiere ich jetzt Arbeit und gewinne am Ende nix.
Aber ich habe etliches an Erfahrung mit solchen Dingen. Die Chancen sind also nicht ganz schlecht, das es sich lohnen wird.

ecChar('A');

Ist an Pascal angelehnt. Damit kann ich auf umfangreiche, gut etablierte Regeln zurückgreifen. Allerdings brauche ich für den Anfang nur einen winzigen Teil dieser Regeln, und der Aufwand ist sehr gering.

martin_frb
Beiträge: 586
Registriert: Mi 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
CPU-Target: mostly 32 bit

Re: MacroRecorder: in Datei speichern und aus ihr laden

Beitrag von martin_frb »

So im "Editor Macro" Fenster gibt es jetzt repeated play. Allerdings nur über den Button.

martin_frb
Beiträge: 586
Registriert: Mi 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
CPU-Target: mostly 32 bit

Re: MacroRecorder: in Datei speichern und aus ihr laden

Beitrag von martin_frb »

Ok.

Fast alles implementiert.

Im Fenster "Editor Macros" (Menu "View") kann man Macros in eine Project oder IDE liste schieben. Dann werden sie gespeichert.

Import/Export ueber popup menu

Repeat execution ueber "Play Button"

Antworten