Доброго времени суток. Использую в проекте GDI+, при вызове процедуры рисования(вызывается в цикле) происходит потеря контекста(Hendel) канвы, пробовал перед каждым вызовом рисования передавать хендел и пересоздавать обьект GDI+ всё работает, но пересоздавать обьект перед рисованием каждой линии согласитесь не хорошо, написал процедурку, в которую передаю контекст канвы, и сверяю с контекстом содержащимся в обьекте GDI+, в случае если не совпадает, пересоздаю обьект с новым контекстом, почемуто срабатывает не всегда, вот код процедуры пересоздания:
type
TGDIPGraphics = class
private
FGPGraphics: TGPGraphics;
......
end;
procedure TGDIPGraphics.HWNDAlignment(AHWND: Integer);
begin
if not(Assigned(FGPGraphics)) or not(FGPGraphics.GetHDC = AHWND) then
begin
FGPGraphics.Free;
FGPGraphics := TGPGraphics.Create(Integer(AHWND));
FGPGraphics.SetSmoothingMode(SmoothingModeAntiAlias);
FGPGraphics.SetPageUnit(UnitPixel);
end;
end;
Может ктонибудь подскажет как можно отслеживать изменение контекста канвы?