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

كيف يمكنني طباعة سطرين داخل تكست بوكس مثل ما هما و بنفس المحاذاة ؟

مغلق
بدأه alhootti في 28 يناير 2008 · 7 رد · 1,119 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

عندي تكست بوكس مع Multiline مكتوب داخله :

محمد بن حمد الشامسي

خميس بن سالم الكعبي

هكذا

المطلوب :اريد طباعة هذين السطرين مثل ماهما و بنفس المحاذاه( يعني تحت بعض )

وباستخدام الأكواد التالية :

'يمين يسار
Printer.CurrentX = 4500
'فوق تحت
Printer.CurrentY = 3300
Printer.RightToLeft = True
Printer.Print Text1.Text

أرجو التعديل في المثال

Print2008.rar

#2

لعلكم لم تفهموا قصدي دعني أوضح لكم أكثر

مثلا أنا كتبت الجملة التالية في تكست بوكس :

سعيد بن خميس بن سالم الكعبي و كيلا عنه محمد بن راشد بن سيف الجابري

عندما تصل الجملة إلى كلمة محمد فإنها تنزل و تبدأ السطر الثاني يعني هكذا

سعيد بن خميس بن سالم الكعبي و كيلا عنه

محمد بن راشد بن سيف الجابري

أريد ان أطبع السطرين هكذا تحت بعض و بنفس المحاذاة و ربما تكون المحاذاة من الوسط او من البداية المهم السطر الثاني يكون بنفس محاذاة السطر الأول .

المحاذاة = )Alignment (left + right

تم تعديل هذه المشاركة بواسطة alhootti في 31 يناير 2008 في 07:35

#3

جرب هذه الطريقة

وهي عبارة عن فصل الاسطر عن بعض وبعد ذلك طباعة سطر سطر

Dim arr() As String
arr = Split(Text1, vbCrLf)
Printer.RightToLeft = True
Dim CurY As Single
CurY = 3300

Dim i As Long
For i = 0 To UBound(arr)
Printer.CurrentX = 4500
CurY = CurY + 250
Printer.CurrentY = CurY
Printer.Print arr(i)

Next
 Printer.EndDoc
#4

جزاك الله خيرا يا أخي و بارك الله فيك و غفر الله لك و لوالديك طريقتك ناجحة بس ينقصها شيء واحد وهو

عندما اكتب الجملة الأولى ثم اضغط على انتر لكي أكتب الجملة الثانية كسطر ثاني ثم زر أمر الطباعة هذه الطريقة ناجحة

ولكن عندما اكتب الجملة الأولى حتى اصل إلى نهاية تكست بوكس فإنه تلقائيا يبدا بكتابة الجملة الثانية (السطر الثاني) و في هذه الحالة يطبع السطرين كسطر واحد فقط

على الرغم من وجود سطرين فما الحل يا ترى ؟!!!

#5

الحل في هذه الحالة هو تقسيم السطر الطويل عن طريق تقدير طول السطر على الطابعة مثلا 50 حرف وبعد ذلك البحث في داخل السطر المطلوب عن فراغ للقطع عنده .

#6

أستخدم الدالة vbCrLf لإنشاء سطر جديد ، مثلا :

Dim arr() As String
arr = Split(Text1, vbCrLf)
Printer.RightToLeft = True
Dim CurY As Single
CurY = 3300

Dim i As Long
For i = 0 To UBound(arr)
	Printer.CurrentX = 4500
	CurY = CurY + 250
	Printer.CurrentY = CurY
	Printer.Print arr(i) + vbCrLf
Next
Printer.EndDoc

شكراً

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#7

الأخ MMA_EG_Cairo

لم تنجح الفكرة

:tantrum:

بخصوص فكرة الأخ: TareqVB لو افترضنا ان ( محمد ) و حرف م يحمل الرقم 49 و حرف ح يحمل الرقم 50 فتكون الكلمة هكذا مح مد !!!

:wacko:

ارجوا ان تجدوا لي الحل المناسب

تم تعديل هذه المشاركة بواسطة alhootti في 1 فبراير 2008 في 12:52

#8

طيب ممكن بدل عدد الحروف نسعمل عدد الكلمات والمسافة بعد كلمة رقم ... يتم الفصل

ارجو كتابة الكود

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

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

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

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

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

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