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

كيفية تحديد حجم مربع نص بأسطر معينة ...؟

بدأه (( عبدالله )) في 4 مارس 2009 · 13 رد · 907 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بســم الله الـرحمــن الرحيــم

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

اخواني بارك الله فيكم ، يوجد لدي نموذج ويوجد في النموذج مربع نص ارتفاعه 6 اسطر بالضبط ( ونفس الحجم في التقرير ) ،،

المربع مسند الى جدول يحتوي على مفكرة ، المهم .. كيف استطيع ان اجعل المستخدم لا يتعدى هذه الأسطر المحددة ( 6 اسطر ) ..؟

بحيث الكلام الذي يكتبه في مربع النص لا يتعدى الـ 6 اسطر .....؟

وجزاكم الله خيرا ..

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#2

فقط فكرة سريعة... إذا كان إدخال الأسطر سيتم باستخدام مفتاح الإدخال (Enter) فيمكن عد هذه المفاتيح بحيث لا تتجاوز خمسة... أما إذا كان الإدخال حراً غير مقيد بضغط زر الإدخال، فتستطيع تقييد الإدخال بأكبر عدد من الحروف ممكن إدخاله في ستة أسطر...

تقييد الإدخال ممكن أن يتم في حدث keypress للحقل بتعيين الصفر كقيمة لـKeyAscii في حالة تجاوز الحروف للحد المسموح به أو تجاوز عدد مرات مفتاح زر الإدخال لخمسة....

والله أعلم

#3

اشكرك اخي على هذا الفهم والتوضيح ،،

طيب ممكن يكون المستخدم ذكي شوي ويدخل سطرين في سطر واحد ^^ يعني في السطر الثاني يضغط انتر ....؟

ما الحل في هذه الحالة ....؟

هل يوجد طريقة لأجبار مربع النص ان لا يزيد في الطول ، ولكن يكتفي فقط بالطول المحدد مسبقاً .....<<<< هذه افضل طريقة ..

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#4

للرفـــــــــــــــــــع،،

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#5

معك حق... الطريقة الأولى غير مناسبة. أظن أننا بحاجة إلى الاستعانة بدوال الـ API، ربما لمعرفة عدد سطور النص... ذلك يحتاج لمشاركة الإخوان ذوي الخبرة...

#6

منتظر رد جواب على ..

اقتباس
هل يوجد طريقة لأجبار مربع النص ان لا يزيد في الطول ، ولكن يكتفي فقط بالطول المحدد مسبقاً .....<<<< هذه افضل طريقة ..

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#7

للرفع للأهمية القصوى ..

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#8

بسم الله الرحمن الرحيم

اقتباس
هل يوجد طريقة لأجبار مربع النص ان لا يزيد في الطول ، ولكن يكتفي فقط بالطول المحدد مسبقاً

نعم يوجد لكن اطلب منك طلبين

الاول - ارفاق مثال

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

يعني 6 اسطر كم تساوي كلمة تقريبا ؟

وان شاء الله محلوله بإذنه تعالى

#9

بســم الله الـرحمــن الرحيــم

اخي الكريم ، انا لا اريد التحديد بعدد من الكلمات ، لان المربع مؤهـل لتصغير الخط وتكبيره ^^

لذلك لا يوجد حـل من وجهة نظري لهذه المشكلة إلا بتحديد عدد الأسطر للحجم المصمم مسبقاً ، عارف يمكن يكون الطلب مستحيل لكن ان شاء الله نجد له حـل . وإلا اضطررت لحـل لهذه المشكلة ( لا اريد التطرق له الآن ) .

demo.rar

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#10

السلام عليكم

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

كذا من الكلمات .. لكن مادام الامر متعلق بان النص موهل للتكبير زمن تشغيل البرنامج فحتى لو

توصلنا لدالة لحساب عدد سطور مربع النص لن تنفع لماذا .. لانه باختصار مساحة 6 اسطر بخط

مقاس 18 تختلف كليا عن مساحة نفس العدد بمقاس 10 ,,,,,, والسلام

تم تعديل هذه المشاركة بواسطة اكسيرالحياة في 17 مارس 2009 في 18:10

#11

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

طيب انا ممكن الغي ميزة تكبير وتصغير الخــط ... لكن له تجد لي طريقة تحديد عدد الأسطـر ...؟

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#12

أرجو الاطلاع على الملف المرفق... لاحظ أخي أنه يستخدم Ritch Textbox بسبب صعوبة التعامل مع handle لمربع النص العادي...

اقتباس
أظن أننا بحاجة إلى الاستعانة بدوال الـ API، ربما لمعرفة عدد سطور النص... ذلك يحتاج لمشاركة الإخوان ذوي الخبرة...

lines_also.rar

#13

تظهر لدي اخطاء في الملف المرفق ....؟

طيب هـل من احد يتعامل لنا مع هذه الدوال التي تشير اليهـا ...؟

الله المستعان ولا حول ولا قوة إلا بالله .

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#14

أخي هذا الكود الكامل لنموذج لا يحوي إلا Microsoft Ritch Textbox واحد فقط اسمه RichTextBox1:

Private Declare Function SendMessage Lib "user32" _
	Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
	ByVal wParam As Long, ByVal lParam As Any) As Long

Private Declare Function FindWindowEx Lib "user32" _
	Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, _
	ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

Private Const EM_GETLINECOUNT = &HBA

Dim handle As Long

Private Sub Form_Load()
	DoCmd.Restore
	handle = Screen.ActiveForm.hwnd
End Sub

Private Sub RichTextBox1_KeyPress(KeyAscii As Integer)
	Dim Handle1 As Long, lngCount As Long

	While FindWindowEx(Handle1, 0, "CtlFrameWork_ReflectWindow", vbNullString) = 0
		Handle1 = FindWindowEx(handle, Handle1, "OFormSub", vbNullString)
	Wend
	Handle1 = FindWindowEx(Handle1, 0, "CtlFrameWork_ReflectWindow", vbNullString)
	Handle1 = FindWindowEx(Handle1, 0, "RichTextWndClass", vbNullString)
	lngCount = SendMessage(Handle1, EM_GETLINECOUNT, 0&, vbNull)

	If lngCount > 6 Then KeyAscii = 0
End Sub

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