Registriert seit: 4. Sep 2004
1.465 Beiträge
Delphi 10.4 Sydney
|
AW: SendInputHelper - Ein Wrapper, der den Umgang mit SendInput vereinfacht
4. Dez 2023, 12:18
Wenn beim Add oder Flush eine Exception auftreten könnte, dann würde noch der Ressourcenschutzblock fehlen.
Delphi-Quellcode:
with TSendInputHelper.Create do
try
AddShortCut([ssWin], 'r'); // [Win] + [R]
AddDelay(100); // Verzögerung in ms
AddText('cmd', TRUE); // TRUE = AppendReturn
Flush; // Erst hier werden die zuvor hinzugefügten Eingaben gebündelt abgesetzt.
finally
Free;
end;
Wenn du das auf einen Record umschreibst und z.B. intern nur dynamische Arrays (anstatt objekte/Pointer/Listen) verwendets,
OK, ein Interface statt Class ginge auch, aber warum komplizierter.
dann kann man auf Create und Free verzichten, also wie eine einfach Variable benutzten und dann vergessen. (wie Integer, TPoint oder String+StringHelper)
PS, dann ginge auch sowas wie Ducktyping. (überall jeweils Self als Result zurückgegeben)
TSendInputHelper.Create.AddShortCut([ssWin], 'r').AddDelay(100).AddText('cmd', TRUE).Flush;
Ja, Dank Custom-Managed-Records kann man nun auch in Records eigentlich alles benutzen,
so lange ein Record nur sein eigenens Zeugs nutzt und man beim Kopieren von Variablen alle Inhalte, anstatt nur die Referenzen kopiert,
oder man für Objekte/Pointer sich eine Referenzzählung baut (geht, aber macht kein Spaß, da es keine Record-Vererbung gibt und Generics hier kaum nutzbar sind).
Kannst du bitte mal ein paar Code-Beispiele zeigen?
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.
|
|
Zitat
|