Ein möglicher Workaround: Eine eigene Bridge- oder Worker-
Unit erzeugen, in der die SendInputHelper-Aufrufe gekapselt werden, z.B.:
Delphi-Quellcode:
unit SIHWorker;
interface
uses
SendInputHelper;
procedure SendShortCut(DummyShiftState: Integer; ShortChar: Char);
implementation
var
SIH: TSendInputHelper;
procedure SendShortCut(DummyShiftState: Integer; ShortChar: Char);
begin
case DummyShiftState
of
1: SIH.AddShortCut([ssShift], ShortChar);
2: SIH.AddShortCut([ssCtrl], ShortChar);
3: SIH.AddShortCut([ssAlt], ShortChar);
end;
SIH.Flush;
end;
{ Todo: weitere SendInputHelper-Aufrufe }
initialization
SIH := TSendInputHelper.Create;
finalization
SIH.Free;
end.
Zusätzlich sollte noch in SendInputHelper.pas TShiftState durch TSIHShiftState ersetzt werden.
Jetzt kann man die Methoden von SendInputHelper indirekt über SIHWorker aufrufen und braucht so SendInputHelper nicht mehr in anderen Units zu deklarieren (was zu den besagten Fehlern führen würde).