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

زر البحث عن التالي

بدأه boussice في 19 ديسمبر 2011 · 4 رد · 1,074 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

و هي أول مشاركة لي في هذا المنتدى :

إخواني الكرام المطلوب هو :

لدينا Combobox فيه الحروف الأبجدية

و لدينا Edit1 و Edit2

و لدينا زر : Button

بحيث نكتب في Edit1 أي جملة أو كلمة مثلا ' arabteam2000 '

و نختار أي حرف منقائمة Combobox مثلاً حرف ' a '

و عند الضعط على زر Button يعطينا النتيجة في Edit2

أي موضع الحرف a في الكلمة و هو الموضع 1

و لكن عند الضغط مرة أخرى على الزر يعطينا موضع الحرف مرة أخر إن وجد

حرف a موجد في الموضع 01 ثم لما نضغط على الزر مرة أخرى يعطينا في الموضع 03 و الموضع 07

كيف يكون ذلك ؟

و لكم من أسمى عبارات التقدير و شكرًا .

#2
boussice كتب:

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

و هي أول مشاركة لي في هذا المنتدى :

إخواني الكرام المطلوب هو :

لدينا Combobox فيه الحروف الأبجدية

و لدينا Edit1 و Edit2

و لدينا زر : Button

بحيث نكتب في Edit1 أي جملة أو كلمة مثلا ' arabteam2000 '

و نختار أي حرف منقائمة Combobox مثلاً حرف ' a '

و عند الضعط على زر Button يعطينا النتيجة في Edit2

أي موضع الحرف a في الكلمة و هو الموضع 1

و لكن عند الضغط مرة أخرى على الزر يعطينا موضع الحرف مرة أخر إن وجد

حرف a موجد في الموضع 01 ثم لما نضغط على الزر مرة أخرى يعطينا في الموضع 03 و الموضع 07

كيف يكون ذلك ؟

و لكم من أسمى عبارات التقدير و شكرًا .

السلام عليكم

يوجد طرق عديدة لحل هذه الاشكالية, لكن اسرع واحدة و ابسطها مما خطر ببالي هو :

انك تنشيء جدول فيه 28 حقل و يكون كل حقل يحمل حرف واحد بمعنى اخر يقبل حرف واحد في كل حقل.

بعدها تعمل برنامجك بشكل عادي و تكون الطريقة انك عندما تكتب الكلمة في ال edit1 تكون عملية تلقائة تنقل نفس الكلمة حرفا حرفا الى الجدول. بحيث كل حرف في حقل. و عند الضغط على الزر تتم عملية فلترة للحرف المصود ضمن جدول, يعني يتحول عملك ليكون بين الحرف اللي موجود في ال combobox و بين الجدول. بهذه الطريقة يمكنك ان تحصل على اكبر عدد ممكن من المعطيات بكل سهولة و بأسرع وقت.

اتمنى تكون فهمت فكرتي. عدد حقول الجدول 28 لانه اكبر احتمال لأطول كلمة في العالم و هي "antidisestablishmentarianism" يعني انك ستكون ملم بكل الاحتمالات لاطول الكلمات.

و اذا حبيت اعمل لك مثال سافعله بنفس الشرح الذي قلته لك.

و اذا فهمتها و كانت هي ما تريده انت. فالحمد لله

بالتوفيق

تم تعديل هذه المشاركة بواسطة info_megue في 20 ديسمبر 2011 في 00:45

i-love-algerie-laura23920090720132603.gif
#3

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

1. قم بتعريف متغير خارجي (خارج الإجراءات - تحت القسم implementation مثلاً). سنستعمل هذا المتغير كعداد.

implementation

{$R *.dfm}

var
    Idx: Cardinal;

2. في الحدث OnCreate للـ Form نعطي قيمة مبدئية للمتغير.

procedure TFRtlForm1.FormCreate(Sender: TObject);
begin
    Idx := 0;
end;

3. في الحدث OnClick للزر نقوم بعملية البحث.

procedure TFRtlForm1.Button1Click(Sender: TObject);
var
    APos: Integer;
begin
    Idx := Idx + 1;
    APos := PosEx(UpperCase(ComboBox1.Text), UpperCase(Edit1.Text), Idx);
    if APos = 0 then
        Edit2.Text := 'Not Found'
    else
        Edit2.Text := IntToStr(APos);
    Idx := APos;
end;

* لاحظ أننا استعملنا الدالة PosEx (و ليس Pos) لأن الدالة PosEx تسمح لنا بتحديد مكان بداية البحث.

* لاحظ كذلك أننا استعملنا الدالة UpperCase لتحويل النصين إلى حروف كبيرة لأن الدالة PosEx (و كذلك Pos) تقوم بمقارنة ثنائية (Binary) أي أن الحرف a مثلاً يختلف عن الحرف A.

* الدالتان PosEx و UpperCase موجودتان في الوحدة StrUtils، و لهذا قد تحتاج إلى إضافتها إلى عبارة uses (في دلفي 7 تقوم دلفي بإضافتها تلقائياً في القسم implementation).

4. في الحدث OnChange لمربع النص (Edit1) نعيد تصفير المتغير لاحتمال تغيير النص فيبدأ البحث من جديد.

procedure TFRtlForm1.Edit1Change(Sender: TObject);
begin
    Idx := 0;
end;

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

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

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

#4

السلام عليكم

دائما اجايتك كافيه عود مباركة مشرفنا الغالي

#5

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

شكر شكر إلى كل من رد

شكر للأخ/ nfo_megue مشكور على المعلومات

شكر خاص للأخ / najy_zl بوركت و جعلها الله في ميزان حسناتك

و كذلك شكر للاخ / زكيري عبد العالي

و شكر خاص للاشخاص القائمين على هذ ا المنتدى و أصحاب منتدانا الغالي

لأني وجدت ضالتي و شكرًا للجميع

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