nssj قام بنشر منذ 20 ساعات قام بنشر منذ 20 ساعات الإخوة الكرام .. هل يمكن إنشاء كود لإدراج نص مختصر خلال النص ؟ في الملف المرفق ثلاثة أزرار [insert1 // insert2 // insert3] والمطلوب عند استخدام الزر الأول (1insert)، الذهاب لموضع المؤشر وإضافة سطر جديد ثم (1= ) : رقم (1) يليه مباشرة بدون مسافة (=) ثم مسافة ثم بقية النص - وعند استخدام الزر الثاني نفس الشيء ولكن الرقم هنا (2= ) - وكذلك الحال في الزر الثالث نفس الإجراء والرقم (3= ) وكمثال على ذلك، هذه صورة توضح النص الأصلي والنص المطلوب بعد استخدام الزرين الأول والثاني: Assaker.accdb
Foksh قام بنشر منذ 18 ساعات قام بنشر منذ 18 ساعات من باب التوضيح إن كنت قد فهمت المطلوب بشكل صحيح .. هل الصورة أدناه تطبق للمطلوب ؟؟؟ 1
تمت الإجابة Foksh قام بنشر منذ 17 ساعات تمت الإجابة قام بنشر منذ 17 ساعات 29 دقائق مضت, nssj said: تمام أخي الكريم .. هذه هي النتيجة المطلوبة تمام اخي الكريم .. بداية وحتى تتوضح فكرتي بالتنفيذ ، سنعتمد على حدث عند النقر لمربع النص NASSbox . بحيث نتعرف على موقع المؤشر من خلال ما يلي :- في مديول ، نقوم بحجز المتغير في بداية المديول مع الدالة الرئيسية :- Public cursorPosition As Long Public Sub InsertAtRememberedCursor(ByVal i As String) Dim ctl As Control Set ctl = Forms!Assaker!NASSbox ctl.SetFocus Dim currentText As String currentText = ctl.Text Dim beforeText As String Dim afterText As String Dim insertText As String insertText = vbCrLf & i & "= " beforeText = Left(currentText, cursorPosition) afterText = Mid(currentText, cursorPosition + 1) ctl.Text = beforeText & insertText & afterText ctl.selStart = cursorPosition + Len(insertText) ctl.SelLength = 0 End Sub الآن في النموذج وفي حدث عند النقر على مربع النص المستهدف :- Private Sub NASSbox_Click() DoEvents cursorPosition = Me.NASSbox.selStart End Sub ثم في حدث عند النقر للأزرار ، كل زر ليقوم بإضافته الخاصة به داخل النص ، من خلال الإستدعاء التالي لها :- Private Sub insert1_Click() Call InsertAtRememberedCursor("1") End Sub Private Sub insert2_Click() Call InsertAtRememberedCursor("2") End Sub Private Sub insert3_Click() Call InsertAtRememberedCursor("3") End Sub وبالتالي ، تكون النهاية كما رأيت في الصورة السابقة . المرفق :- Assaker.zip 1
nssj قام بنشر منذ 16 ساعات الكاتب قام بنشر منذ 16 ساعات (معدل) تم المطلوب أخي الكريم .. جزاك الله خيرا وأحسن إليك كنت أحاول استيعاب الكود الذي تفضلت به لعلي أستخدمه أو جزءا منه في مهمات أخرى .. كما هي عادتي 😁 وأظنني استوعبت عمل الكود، لكن عندي بعض الاستفسارات لعلك تتكرم بتوضيحها - cursorPosition = Me.NASSbox.selStart هل هذه تعني: اجعل هذا المتغير = موقع المؤشر ؟ - beforeText = Left(currentText, cursorPosition) هل هذه تعني: هذا المتغير = كل ما هو قبل المؤشر - afterText = Mid(currentText, cursorPosition + 1) هل هذه تعني: هذا المتغير = كل ما بعد المؤشر - ما وظيفة آخر سطرين: منذ ساعه, Foksh said: ctl.selStart = cursorPosition + Len(insertText) ctl.SelLength = 0 تم تعديل منذ 16 ساعات بواسطه nssj 1
Foksh قام بنشر منذ 16 ساعات قام بنشر منذ 16 ساعات 5 دقائق مضت, nssj said: وأظنني استوعبت عمل الكود، لكن عندي بعض الاستفسارات لعلك تتكرم بتوضيحها ههههه ، ولا يهمك أخي .. خليني أوضح لك الفكرة بإجابات على اسئلتك .. 6 دقائق مضت, nssj said: هل هذه تعني: اجعل هذا المتغير = موقع المؤشر ؟ نعم بالضبط حيث أن SelStart هو رقم يمثل موقع بداية المؤشر داخل النص ، ويبدأ العد من 0 ( يعني أول حرف في النص موقعه = 0 ) 6 دقائق مضت, nssj said: هل هذه تعني: هذا المتغير = كل ما هو قبل المؤشر نعم بالضبط ، اجعل المتغير beforeText يحتوي على كل النص الذي يسبق موقع المؤشر 7 دقائق مضت, nssj said: هل هذه تعني: هذا المتغير = كل ما بعد المؤشر كلام سليم بالضبط ، اجعل المتغير afterText يحتوي على كل النص الذي يأتي بعد المؤشر 7 دقائق مضت, nssj said: - ما وظيفة آخر سطرين: منذ ساعه, Foksh said: السطر الأول يعيد المؤشر إلى ما بعد النص الذي تم إدراجه السطر الثاني يجعل تحديد النص = 0 . أي عند تنفيذ الإضافة النصية من الزر فإنه سيتم نقل التركيز الى مربع النص وبالتالي سيتم تحديد كامل النص ، ونحن لا نريد هذا طبعاً ، وبالتالي المهمة المطلوبة هي فقط أن يتم وضع المؤشر في المكان الجديد ( الذي تم تحديده قبل الإضافة طبعاً ) بدون تظليل النص . 1
Foksh قام بنشر منذ 16 ساعات قام بنشر منذ 16 ساعات 2 دقائق مضت, nssj said: شكرا على التوضيح أخي الكريم العفو أخي الكريم
الردود الموصى بها
انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد
يجب ان تكون عضوا لدينا لتتمكن من التعليق
انشئ حساب جديد
سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .
سجل حساب جديدتسجيل دخول
هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.
سجل دخولك الان