ماذا يحدث DC عندما مجانية على قماش ؟
-
29-10-2019 - |
سؤال
في هذه المدونة أتوقع مكالمة ReleaseDC
أن يحدث في MyCanvas.Free
, لكن هذا الكود يعمل بشكل جيد, كيف ذلك ؟
وما يحدث TCanvas الخاصة العاصمة ؟
var GlobalDC: THandle;
procedure TForm1.FormCreate(Sender: TObject);
begin
GlobalDC:= GetDC(0);
end;
function LoopMeOften(const X, Y: Integer): TColor;
var
MyCanvas: TCanvas;
begin
MyCanvas := TCanvas.Create;
MyCanvas.Handle := GlobalDC;
Result := GetPixel(MyCanvas.Handle, X, Y);
MyCanvas.Free;
end;
المحلول
TCanvas
لا يكون بها DC, فإنه لا يكتسب ولا يطلق العاصمة.تابع TControlCanvas
لا.
من TCanvas.التعامل مع الممتلكات
TCanvas لا تملك HDC.تطبيقات يجب إنشاء HDC ، تعيين التعامل مع المنشأة.التطبيقات يجب الافراج عن HDC عندما قماش لم يعد يحتاج إليها.
لا تنتمي إلى StackOverflow