اضآفة عنآصر Listbox الى combobox بدون تكرار؟
#1
السلام عليكم

أبحث عن طريقة معينة لاضافة جميع عناصر ListBox الى ComboBox بدون تكرار ...لا أتكلم هنا عن مجال

قواعد البيانات و بدون استعلام
لا اله الا أنت سبحانك اني كنت من الضالمين
الرد
#2
السلام عليكم ورحمة الله

اخي الكريم

بما ان ال ComboBox.items هو من نوع ال TStrings وال Listbox.Items من النوع ذآته فيمكن فعل هذا بسهولة وبدون تكرار,

تفضل:
PHP كود :
form1.ComboBox1.Items := form1.ListBox1.Items; 

بارك الله لكم والسلام عليكم
فرّج همّ المهمومين يا الله
اللهم فك قيد اسرانا و اسرى المسلمين
الرد
#3
وعليكم السلام ورحمة الله
يمكن نقل عناصر TListBox إلى TStringList ثم إلى TComboBox،حيث هناك خاصية في TStringList تسمح باختيار العناصر غير المكررة، للاستفادة منها يجب ترتيب العناصر أولا. مثال:
PHP كود :
var
  List: 
TStringList;
begin
  
List := TStringList.Create;
  try
    List.
Sorted := True;//Sort items first.
    
List.Duplicates := dupIgnore;//Ignore duplicate Items.
    
List.Assign(ListBox1.Items);
    
ComboBox1.Items.Assign(List);
  finally
    
FreeAndNil(List);
  
end; 
بالتوفيق.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد
#4
اها, جزآك الله خيرا اخي الكريم كاش واحد على الشرح, لم اكن اعلم هذا,

إقتباس :بدون تكرار

فهمت بكلمة الأخ لكلمة تكرار انه يقصد بدون استخدام loop لكن ربما كنت مخطئ,

على كل حال, جزآكم الله خيرا,
فرّج همّ المهمومين يا الله
اللهم فك قيد اسرانا و اسرى المسلمين
الرد
#5
بارك الله فيكم اخواني الكرام لكن المقصود هو ايجاد خوارزمية لفعل دلك دون الاعتماد على خاصية أو اجراء...

يعني اعتمد على نفسك
لا اله الا أنت سبحانك اني كنت من الضالمين
الرد
#6
أدخل إلى سورس TStringList وتقصي أمر:
PHP كود :
List.Duplicates := dupIgnore 
بعبارة أخرى:
إقتباس :يعني اعتمد على نفسك
Wink بالتوفيق.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد
#7
بارك الله فيك كانت غايتي من طرح الموضوع ايجاد خوارزمية ...و أنا لازلت أبحث
لا اله الا أنت سبحانك اني كنت من الضالمين
الرد
#8
محاولة:
PHP كود :
var
  
I: Integer;
begin
  cbx
.Items.BeginUpdate;
  for 
I:= 0 to lbx.Count - 1 do
    if 
cbx.Items.IndexOf(lbx.Items[I]) < 0 then
      cbx
.Items.Add(lbx.Items[I])
  
cbx.Items.EndUpdate;
end; 
الرد
#9
لم أفهم هذا السطر:
كود :
cbx.Items.IndexOf(lbx.Items[I]) < 0

لماذا 0>
الرد


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


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