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

كيف يمكن جعل الصورة (image) تتكرر على منصة العمل في برنامج للرسم بلغة الدلفي

بدأه Hatem Kayali في 23 مايو 2008 · 3 رد · 1,060 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ارجو المساعدةحول كيفية جعل الصورة (Image) تتكرر طولاً و عرضاً على الشاشة (منصة الرسم) في برنامج الرسم الذي أقوم بكتابته بلغة الدلفي بحيث يتم إظهار" ما نقوم برسمه في أحد تكرارات الصورة (خط أو دائرة مثلاً) " على جميع هذه التكرارات علماً أنه يجب ان تظهر تلك التكرارات وكأن عددها غير محدود (لانهائي) " أي أنه عندما نقوم بإزاحة التكرارات للأسفل أو الأعلى أو يميناً أو يساراً فإن تلك الإزاحة لا تنتهي".

وكذلك ارجو مساعدتي حول كيفية ربط الماسح الضوئي(scaner) واستعماله بالبرنامج كما في برامج الرسم العامة.

مع جزيل الشكر.

تم تعديل هذه المشاركة بواسطة Hatem Kayali في 24 مايو 2008 في 11:50

#2

السؤال غامض بعض الشيء، حبذا لو وضحت ذلك برسم لما تريد إنشاء مثله

#3

الأخ محمد:

عذراً على غموض السؤال, إن ما أقصده بسؤالي هو كيف يمكن جعل صورة ما تتكرر أفقياً وعمودياَ على الشاسة برمجياً بلغة الدلفي بحيث أن بدايتها تلاصق نهايتها وأعلاها ملاصق لأسفلها بشكل متكرر وعندما نقوم بتحرير أو تعديل أحد تكرارات الصور فإنه يجب أن يظهر هذا التعديل على كل التكرارات , مع إمكانية إزاحة التكرارات في كل الإتجاهات و تكبير أو تصغير هذه التكرارت(مثال ذلك : عندما نضع صورة ما على سطح المكتب في الwindows فإنه يمكننا أن نجعلها مكررة بواسطة إختيار " تجانب " في حقل الموضع) .

أما الشق الثاني من السؤال فأظنه واضح, وشكراً على إهتامك بالموضوع.

#4

السلام عليكم...

لا أدري إن كان المثال التالي يفي بالغرض أم لا (مشروح هنا بالإضافة إلى المرفق).

أولاً: أضف مكون Image إلى النموذج (Form) و اضبط الخاصية Visible له على False (حتى لا يظهر أثناء التنفيذ)، و اضبط الخاصية AutoSize على True.

ثانياً: اكتب الكود التالي في معالج الحدث OnPaint للنموذج (Form):

procedure TForm1.FormPaint(Sender: TObject);
var
	X, Y: Integer;
begin
	Image1.Picture.LoadFromFile(IncludeTrailingBackslash(ExtractFilePath(Application.ExeName)) + 'Test.bmp');
	Y := 0;
	while Y < ClientHeight do begin
		X := 0;
		while X < ClientWidth do begin
			Canvas.Draw(X, Y, Image1.Picture.Graphic);
			X := X + Image1.Width;
		end;
		Y := Y + Image1.Height;
	end;
end;

مع ملاحظة أن الملف Test.bmp (أو أي ملف صورة آخر) يجب - حسب الكود السابق - أن يكون في نفس مجلد المشروع.

الآن، نفذ البرنامج (Run) و اتركه شغالاً ثم افتح ملف الصورة في أي برنامج رسم و قم بتحريره ثم احفظه. عندما تعود الآن إلى برنامجنا ستجد أن التغييرات التي تم إجراؤها (و حفظها) قد ظهرت مباشرة على النافذة.

نرجو الاستفادة و السلام

بالنسبة إلى موضوع الماسح الضوئي (Scanner) فإنه لدي ملف DLL (تحصلت عليه من الإنترنت) أستعمله مع برامج Visual Basic لكني لم أجربه مع برامج Delphi. قد أتمكن من إجابتك في فرصة قادمة.

و السلام مرة أخرى.

TiledPictures.rar

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…