Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TSynEdit & TSynMacroRecorder (https://www.delphipraxis.net/110040-tsynedit-tsynmacrorecorder.html)

TypusMensch 12. Mär 2008 02:44


TSynEdit & TSynMacroRecorder
 
Hallo,
Kurz gefasst: Wie kann ich mit TSynEdit und TSynMacroRecorder Makros aufnehmen?

"macro" = Instanz der Klasse (quasi nicht-visuelle Komponente).
"SynEdit1" = Instanz der Klasse TSynEdit (quasi visuelle Komponente).

Makroaufnahme starten (via Button):
Delphi-Quellcode:
macro.RecordMacro(SynEdit1);
Makroaufnahme stoppen (via Button):
Delphi-Quellcode:
macro.Stop;
macro.SaveToFile('c:\test.mak');
...funktioniert leider nicht.

Wenn ich das Makro später starten/aufrufen will:
Delphi-Quellcode:
macro.LoadFromFile('c:\test.mak');
macro.PlaybackMacro(SynEdit1);
... dann macht er gar nix. :shock:

Öffne ich das Makro dann per Editor sehe ich auch, dass das Makro leer ist, bis auf eine paar "NUL"-Symbolzeichen. Ich habe hier auch ein Makro welches "Hallo" ausgibt, welches daher mehr Symbolzeichen (nennen wir es mal hieroglyphischen Text ^^) beinhaltet. Daher muss ich ja irgendwas falsch machen. Über Rat und Hinweis danke ich im vorraus :)

MfG
TM

toms 12. Mär 2008 05:44

Re: TSynEdit & TSynMacroRecorder
 
Hallo,

Nimm diese Funktionen:

Delphi-Quellcode:
   
procedure LoadFromStream(aSrc: TStream);
procedure LoadFromStreamEx(aSrc: TStream; aClear: boolean);
procedure SaveToStream(aDest: TStream);

TypusMensch 12. Mär 2008 14:20

Re: TSynEdit & TSynMacroRecorder
 
Dann tritt hier ein Laufzeitfehler auf:
Delphi-Quellcode:
procedure TCustomSynMacroRecorder.SaveToStream(aDest: TStream);
var
  cEvent, eCnt : integer;
begin
  eCnt := EventCount;
  aDest.Write(eCnt, sizeof(eCnt)); //<--- an dieser Stelle genau
  for cEvent := 0 to eCnt -1 do
    Events[ cEvent ].SaveToStream( aDest );
end;
Ich vermute, er nimmt gar nicht wirklich auf... bin mir auch ziemlich sicher, dass ich es ebenso mit SaveToFile irgendwann mal hinbekommen hatte :?

TypusMensch 12. Mär 2008 14:27

Re: TSynEdit & TSynMacroRecorder
 
Ah, es könnte natürlich auch sein, dass ich
macro.Editor := SynEdit1;
Dabei erscheint jedoch auch ein Fehler. Schon wenn ich zu Entwurfszeit dieses Property an der Komponente ändern will erscheint:
http://img291.imageshack.us/img291/698/errrored8.jpg

Dubios. Leider gibt es keine Dokumentation und eine Demo für Makros ist ja auch nicht vorhanden. :(

TypusMensch 13. Mär 2008 10:44

Re: TSynEdit & TSynMacroRecorder
 
Fehler gefunden:

Nachdem ich SynEdit 2.0.6 installiert habe, trat der Fehler zwar immernoch auf, da seh ich aber, dass immernoch im Fehler text 2_0_5 steht. Hab also die Komponente des MakorRecorder von der Form gelöscht, neu draufgehauen und siehe da, ich konnte es nun zuweisen via macro.Editor := SynEdit;

Nun funktioniert das Speichern auch wieder via SaveToFile.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz