البحث بطريقة جميلة... فلتر للأسماء الغير مراد بها؟
#1
بسم الله الرحمان الرحيم...
السلام عليكم ورحمة الله وبركاته...

اخواني الكرام
من يومين وأنا صادفت مشكلة والله المستعان...
او في الحقيقة مشكلتان لكن الثانية سأحاول بها اكثر قبل ان اضع سؤال لعلّي اجد لها الجواب ان شاء الله... ( ما شاء الله... تعلمت من موضوعي القديم Smile)


نعم الى المشكلة التي تقريباّ عقدتني والله المستعان...
وهي...

الفكرة:
البحث في ليست بوكس بطريقة جميلة....

كيف؟
نعم...
المراد هو التالي...
البرنامج هو لإدخال الأسماء....
وعند البحث من خلال الإيديت بوكس يتم عمل فيلتر للأسماء الذين لا يبدأون بحرف معيّن...

توضيح:
مثلا لو كتبت انا مو ... ميم و واو...

يتم حينها اخفاء جميع الأسماء الذين لا يبدأون ب ميم و واو....

يعني اسم احمد و اسم قاسم يتم اخفائهم...
لكن اسم موهّرّج يكون ظاهر مثلا....

كما الحال في مثلا برنامج
السكيبي...
او برنامج
الماستجر ان لم لكن مخطا والله اعلم...

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

PHP كود :
procedure TForm1.ListBox1KeyPress(Sender: TObject; var Key: Char);
var
  
i: Integer;
begin
  
Case Key of
    
#27: Begin
           //Escape key, clear search string
           
FSearchStr := EmptyStr;
         
End; { Case Esc }
    
#8 : Begin
           // backspace, erase last key from search string
           
If Length(FSearchStr) > 0 Then
             Delete
( FSearchStr, Length( FSearchStr), 1 );
         
End; { Case backspace }
    Else
      
FSearchStr:= FSearchStr + Key;
  
End; { Case }
  If 
Length(FSearchStr) > 0 then
    
if Sender is TListbox then Begin
      i
:= SendMessage( TListbox(Sender).handle, LB_FINDSTRING,
                       
TListbox(Sender).ItemIndex, longint(@FSearchStr[1]));
      If 
i <> LB_ERR Then
        TListbox
(Sender).ItemIndex := i;
    
end
    
else
      if 
Sender is TCombobox then begin
        i
:= SendMessage( TCombobox(Sender).handle, CB_FINDSTRING,
                         
TCombobox(Sender).ItemIndex, longint(@FSearchStr[1]));
        If 
i <> LB_ERR Then
          TCombobox
(Sender).ItemIndex := i;
      
end;
  
Key := #0;
end; 

لكن المشكلة هي ان هذا الكود يجب ان يكون في حدث onkeypress بلإضافة الى
انه لا يمكن ان اكتب من خلال editbox في حدث onChange ....

وآخر عائق هو انه لا يخفي الأسماء التي لا تبدئ بنفس الحرف...

هذا والله اعلم...
ليس لدي مشكل من استخدام اي مكون خارجي ان كان مناسب...

ــــــــــــــ

ان شاء الله يكون السؤال واضح...
وان لم يكن كذلك فأوضح ان شاء الله..

بارك الله فيكم وعليكم
وزادكم من فضله

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


الردود في هذا الموضوع
البحث بطريقة جميلة... فلتر للأسماء الغير مراد بها؟ - بواسطة AL-MOB4RM3G - 10-02-2009, 05:23 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم