Delphi Firemonkey получить / установить TBitmap через RTTI
Как я могу получить / установить TBitmap через RTTI? Я сделал следующее:
function TMyWebCam.BitmapToString: string;
var
RContext : TRttiContext;
RType: TRttiType;
prop: TRttiProperty;
value : TValue;
begin
RContext := TRttiContext.Create;
RType := RContext.GetType(ClassType);
prop := RType.GetProperty('screenshot');
prop.GetValue(Self).TryCast(TypeInfo(TBitmap), value);
Result := value.ToString;
end;
что дает мне: (TBitmapOfItem @ 07A06280) Для преобразования строки в TBitmap сделали следующее:
procedure TMyWebCam.SetScreenshot(AString: String);
var
RContext : TRttiContext;
RType: TRttiType;
prop: TRttiProperty;
value : TValue;
begin
RContext := TRttiContext.Create;
RType := RContext.GetType(ClassType);
prop := RType.GetProperty('screenshot');
value.Cast(TypeInfo(TBitmap));
value.From<String>(AString);
prop.SetValue(Self, value);
end;
Это мой класс
TMyWebCam = class
private
fscreenshot: TBitmap;
public
constructor Create;
destructor Destroy;override;
property screenshot: TBitmap read fscreenshot write fscreenshot;
function BitmapToString : string;
procedure SetScreenshot(AString : String);
end;
constructor TMyWebCam.Create;
begin
fscreenshot := TBitmap.Create;
end;
destructor TMyWebCam.Destroy;
begin
fscreenshot.Free;
inherited;
end;
Я должен преобразовать TBitmap в строку для передачи его другому клиенту в виде широковещательного сообщения.