#pas
procedure THIEvents.SetName(Value: string);
var V: PChar;
begin
if FEvent <> 0 then CloseHandle(FEvent);
if Length(Value) > 0 then V := PChar(Value) else V := nil;
FEvent := CreateEvent(nil, True, False, V);
end;
Вот так будет проще:
#pas
procedure THIEvents.SetName(Value: string);
begin
if FEvent <> 0 then CloseHandle(FEvent); // Логично
FEvent := CreateEvent(nil, True, False, @Value); // А так - проще
end;