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

عمل إجراء من هذا الكود

بدأه iamsad في 25 مايو 2011 · 7 رد · 422 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لدي هذا الكود حيث يقوم بطباعة مستطيل منحني الأطراف أريد عمله في شكل إجراء

  Dim f As New Font("Times New Roman", 12, FontStyle.Underline)
        Dim b As New SolidBrush(Color.Black)
        Dim p As New Pen(Color.Black, 2)

        Dim H As Integer = 100
        Dim W As Integer = 100

        Dim X12 As Single = 600

        Dim Y13 As Single = 150

        Dim Y24 As Single = 180

        Dim X34 As Single = 50

        ' Create rectangle to bound ellipse.
        Dim rect As New Rectangle(X12, Y13, H, W)

        Dim rect2 As New Rectangle(X12, Y24, H, W)

        Dim rect3 As New Rectangle(X34, Y13, H, W)

        Dim rect4 As New Rectangle(X34, Y24, H, W)

        ' Create start and sweep angles on ellipse.
        Dim startAngle As Single = 0.0F
        Dim sweepAngle As Single = -90.0F

        Dim startAngle2 As Single = 0.0F
        Dim sweepAngle2 As Single = 90.0F

        Dim startAngle3 As Single = 180.0F
        Dim sweepAngle3 As Single = 90.0F

        Dim startAngle4 As Single = 180.0F
        Dim sweepAngle4 As Single = -90.0F


        ' Draw arc to screen.
        e.Graphics.DrawArc(p, rect, startAngle, sweepAngle)
        e.Graphics.DrawArc(p, rect2, startAngle2, sweepAngle2)
        e.Graphics.DrawArc(p, rect3, startAngle3, sweepAngle3)
        e.Graphics.DrawArc(p, rect4, startAngle4, sweepAngle4)
        '##########################################


        'LINE ONE & TWO
        Dim XL1 As Single
        Dim Y1L12 As Single
        Dim Y2L12 As Single
        Dim XL2 As Single
        XL1 = X12 + W
        XL2 = X34
        Y1L12 = Y13 + (H / 2)
        Y2L12 = Y24 + (H / 2)

        e.Graphics.DrawLine(p, XL1, Y1L12, XL1, Y2L12)
        e.Graphics.DrawLine(p, XL2, Y1L12, XL2, Y2L12)
        '=======================
        'LINE 3 & 4
        Dim X1L34 As Single
        Dim X2L34 As Single
        Dim YL3 As Single
        Dim YL4 As Single
        X1L34 = X34 + (W / 2)
        X2L34 = X12 + (W / 2)
        YL3 = Y13
        YL4 = Y24 + H

        e.Graphics.DrawLine(p, X1L34, YL3, X2L34, YL3)
        e.Graphics.DrawLine(p, X1L34, YL4, X2L34, YL4)

أقوم بمناداته بهذه الكيفية :

drawroundedrectangle(x12, y13, x34, y24, h, w)

وبصراحة لم أفهم كيفية عمل الدوال يوما فهل أجد عندكم المساعدة؟

تم تعديل هذه المشاركة بواسطة iamsad في 26 مايو 2011 في 13:00

يا أهل سوريا اعلنوها خلافة اسلامية لتكون الشام عقر دار المسلمين وخلاص ارض فلسطين

#2

السلام عليكم ورحمه الله وبركاته

اخي الكود السابق تكمن فكرته في استخدام دالتين DrawLine لرسم خط و DrawArc لرسم منحنى فأساس الخوارزميه ترسم 4 خطوط تربطها اربعة منحيات

.:: Wish to become better and better ::.

#3

وعليكم السلام

أعرف أخي فأنا من كتب هذا الكود ولكني أريد تحويله إلى إجراء أقوم بمناداته كأي إجراء فيقوم بطباعة هذا الشكل بدل أن أكتب الكود كله في كل مرة أريد استخدامه فيها وقد جربت وضعه في MODULE ولكن أجده في الإجراء لا يتعرف على المتغير 'e' ولم أستطع أن أعرف كيف يتم تعريفه عرفته على أنه

System.Drawing.Printing.PrintPageEventArgs

ولم ينجح

جزاك الله خيرا

يا أهل سوريا اعلنوها خلافة اسلامية لتكون الشام عقر دار المسلمين وخلاص ارض فلسطين

#4

السلام عليكم ورحمه الله وبركاته

اخي بالنسبة للكائن e معرف في كل الاجراءات, يمكنك انشاء كائن اخر واستخدامه للطباعه بس لابد ان تضع الاستدعاء داخل حدث PrintPage

.:: Wish to become better and better ::.

#5

وعليكم السلام

أخي للأسف فهو غير معرف عندي في الإجراء وعندما قمت بتعريفه على أنه As System.Drawing.Printing.PrintPageEventArgs يعطي خطأ أثناء الطباعة Object reference not set to an instance of an object. وفي السابق قمت بتعريفه على أنه

As new System.Drawing.Printing.PrintPageEventArgs

ولكن أيضا هناك خطأ

Argument not specified for parameter 'graphics' of 'Public Sub New(graphics As System.Drawing.Graphics, marginBounds As System.Drawing.Rectangle, pageBounds As System.Drawing.Rectangle, pageSettings As System.Drawing.Printing.PageSettings)'

فمازالت المشكلة قائمة

يا أهل سوريا اعلنوها خلافة اسلامية لتكون الشام عقر دار المسلمين وخلاص ارض فلسطين

#6

السلام عليكم ورحمه الله وبركاته

اخي لو سمحت ارفق مشروعك ليتم تعديله ...

.:: Wish to become better and better ::.

#7

وعليكم السلام

الحمد لله حلت المشكلة فقد من المفترض أن أعرف الـ E ضمن معاملات الإجراء

وهذه الدالة التي تقوم بطباعة مستطيل منحني الأطراف بعد التعديل لتعم الفائدة

وجزاك الله عني خير الجزاء لسرعة الاستجابة

Public Sub ROUNDED(ByVal E As System.Drawing.Printing.PrintPageEventArgs, ByVal X12 As Integer, ByVal Y13 As Integer, ByVal X34 As Integer, ByVal Y24 As Integer, ByVal H As Integer, ByVal W As Integer)

        Dim P As New Pen(Color.Black, 1)
        ' Create rectangle to bound ellipse.
        Dim rect As New Rectangle(X12, Y13, H, W)

        Dim rect2 As New Rectangle(X12, Y24, H, W)

        Dim rect3 As New Rectangle(X34, Y13, H, W)

        Dim rect4 As New Rectangle(X34, Y24, H, W)
        'Dim E As New System.Drawing.Printing.PrintPageEventArgs
        ' Create start and sweep angles on ellipse.
        Dim startAngle As Single = 0.0F
        Dim sweepAngle As Single = -90.0F

        Dim startAngle2 As Single = 0.0F
        Dim sweepAngle2 As Single = 90.0F

        Dim startAngle3 As Single = 180.0F
        Dim sweepAngle3 As Single = 90.0F

        Dim startAngle4 As Single = 180.0F
        Dim sweepAngle4 As Single = -90.0F


        ' Draw arc to screen.
        E.Graphics.DrawArc(P, rect, startAngle, sweepAngle)
        E.Graphics.DrawArc(P, rect2, startAngle2, sweepAngle2)
        E.Graphics.DrawArc(P, rect3, startAngle3, sweepAngle3)
        E.Graphics.DrawArc(P, rect4, startAngle4, sweepAngle4)
        '##########################################


        'LINE ONE & TWO
        Dim XL1 As Single
        Dim Y1L12 As Single
        Dim Y2L12 As Single
        Dim XL2 As Single
        XL1 = X12 + W
        XL2 = X34
        Y1L12 = Y13 + (H / 2)
        Y2L12 = Y24 + (H / 2)

        E.Graphics.DrawLine(P, XL1, Y1L12, XL1, Y2L12)
        E.Graphics.DrawLine(P, XL2, Y1L12, XL2, Y2L12)
        '=======================
        'LINE 3 & 4
        Dim X1L34 As Single
        Dim X2L34 As Single
        Dim YL3 As Single
        Dim YL4 As Single
        X1L34 = X34 + (W / 2)
        X2L34 = X12 + (W / 2)
        YL3 = Y13
        YL4 = Y24 + H

        E.Graphics.DrawLine(P, X1L34, YL3, X2L34, YL3)
        E.Graphics.DrawLine(P, X1L34, YL4, X2L34, YL4)


    End Sub

مع كامل تقديري واحترامي

يا أهل سوريا اعلنوها خلافة اسلامية لتكون الشام عقر دار المسلمين وخلاص ارض فلسطين

#8

السلام عليكم وحمه الله وبركاته

بالتوفيق اخي ...

.:: Wish to become better and better ::.

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