الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال في ال Canvas

مغلق
بدأه asrocks في 4 أبريل 2006 · 3 رد · 678 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أعمل الآن برنامج للرسم شبيه بالرسام و لكن واجهتني مشكلة و هي عندما أرسم دائرة أو مستطيل و هذا هو الكود لرسم مستطيل

var x1,y1:integer;
b:boolean;
FormMouseDown
b:=true;
x1:=x;
y1:=y;

FormMouseup
b:=false;
canvas.Rectangle(x1,y1,x,y);

FormMouseMove
if b then  begin
refresh;
canvas.Rectangle(x1,y1,x,y);
end;

لكن المشكلة عند رسم مستطيل فإنه يرسم ,أما عند رسم مستطيل آخر فإنه ينفذ الأمر Refresh و يختفي المستطيل الأول.

فما هو الحل لهذه المشكلة.

#2

أرجو أن يساعدك هذا المثال المشروح

وفقك الله

Drawing.zip

#3

ألف شكر أخي hazem_3332000 على ردك المفيد.

#4

اخواني الافاضل

عندما اقوم بالرسم على الفورم او الاداة paintbox و اقوم بعمل تصغير و تكبير للفورم لا يظهر الخط المرسوم و كنا نعالج ذلك في الفيجوال باسناد خاصية redraw=true للاداة التى تستخدم في الرسم ان كانت فورم او picture.

و لكن للاسف هذه الخاصية غير موجودة في الدلفي للادوات التى يمكن الرسم عليها و بعد بحث رايت احد الامثلة الخاصة بالرسم و لكنه يستخدم الحدث onpaint للاداة و لكن عند استخدام هذا الحدث يتم تحميل الرسم عند تحميل الفورم و لكن نريد الحدث يظهر عند الضغط على زر مثلا او عند اجراء معين .

هذا الموضوع مغلق.

مواضيع مشابهة