add and extract item from listview in fmx
#1
السلام عليكم

ما الطريقة التي يمكنني بها اضافة عناصر الى اللست فيو وبعد ذلك عرض اي عنصر اريد من القائمة لفهم ما اريد عملت الكود على vcl لفهم المطلوب

كود :
procedure TForm1.Button1Click(Sender: TObject);   var   item: TListItem;   begin   item := ListView1.Items.Add;     item.Caption := 'Mohamed';   item.SubItems.Add('Akram');   item.SubItems.Add('055002011');   item.ImageIndex := 0;   end;   procedure TForm1.CaptionclickClick(Sender: TObject);   begin   Memo1.Lines.Add('caption : ' + ListView1.Items[ListView1.Selected.     Index].Caption);     end;     procedure TForm1.FirstitemclickClick(Sender: TObject);     begin     Memo1.Lines.Add('First sub item : ' +      ListView1.Items[ListView1.Selected.       Index].SubItems[0]);   end;   procedure TForm1.SeconditemclickClick(Sender: TObject);   begin   Memo1.Lines.Add('Second sub item : ' +    ListView1.Items[ListView1.Selected.     Index].SubItems[1]);   end;
الرد
#2
وعليكم السلام


بعد بحث يسير..


إقرأ الصفحة التالية، خاصة How to Modify List View Appearance Properties


http://docwiki.embarcadero.com/RADStudio...Appearance


[صورة: ItemAppearenceValueListView.png]
بعدها قمت بالتعديل على Text1.AppearanceObjectName إلى Name

أضفت 2 من TTextObjectAppearance أسميتهما على التوالي: SubName و Phone


[صورة: DynamicAppearence.png]

الآن الكود (ضمت إجراء الضغط على الزر Button1)


كود :
procedure TForm1.Button1Click(Sender: TObject); var   list: TListViewItem;   lName, lSubName, lPhone: TListItemText; begin   list := ListView1.Items.Add;   lName := list.Objects.FindObjectT<TListItemText>('Name');   lSubName := list.Objects.FindObjectT<TListItemText>('SubName');   lPhone := list.Objects.FindObjectT<TListItemText>('Phone');   lName.Text := 'Mohamed';   lSubName.Text := 'Akram';   lPhone.Text := '055002011';   list := ListView1.Items.Add;   lName := list.Objects.FindObjectT<TListItemText>('Name');   lSubName := list.Objects.FindObjectT<TListItemText>('SubName');   lPhone := list.Objects.FindObjectT<TListItemText>('Phone');   lName.Text := 'merouane';   lSubName.Text := 'karim';   lPhone.Text := '066222334455'; end;
[صورة: attachment.php?aid=4032]


الملفات المرفقة
.jpg   2.jpg (الحجم : 150.15 ك ب / التحميلات : 65)
[-] كل من 1 user says قال شكرا ل merouane على المشاركة المفيدة
  • invocker
الرد
#3
شكرا استاذ مروان راح اجرب ان شاء الله

تمام يا غالي بقي

1- اضافة الصورة

2 - كيف اجلب قيمة الحقل وعرضه في memo
name
SubName
Phone
الرد
#4
الحمد لله حليت طريقة اصافة الصورة

[صورة: p_1302c245q1.png]

بقي طريقة جلب القيم من اللست فيو

جربت هكذا ولم تنجح

edit1.Text:=ListView1.Items.AppearanceItem[1].Data['Name'].AsString;
or
edit1.Text:=ListView1.Items.AppearanceItem[1].Data['Subname'].AsString;
or
edit1.Text:=ListView1.Items.AppearanceItem[1].Data['Phone'].AsString;

جربت هذا لكن يجلب الاسم واللقب فقط فكيف اجلب رقم الهاتف وعرض الصورة في image

showmessage ('First Name: '+ AItem.Objects[0].Data.AsString);
showmessage('Last Name: '+AItem.Objects[1].Data.AsString);
الرد
#5
استخدم الكود التالي

كود :
procedure TForm1.Button1Click(Sender: TObject); var lv: TListViewItem; IItem:TListItemImage; begin lv := ListView1.Items.Add; lv.Data['Name'] := 'Hello'; lv.Data['SubName'] := 'word'; lv.Data['Phone'] := '012456'; IItem:=lv.Objects.FindDrawable('img') as TListItemImage; if (IItem<>nil) then   IItem.ImageIndex:=0;   lv := ListView1.Items.Add; lv.Data['Name'] := 'Hello2'; lv.Data['SubName'] := 'word2'; lv.Data['Phone'] := '0124562'; IItem:=lv.Objects.FindDrawable('img') as TListItemImage; if (IItem<>nil) then   IItem.ImageIndex:=1; end; procedure TForm2.ListView1ItemClick(const Sender: TObject;   const AItem: TListViewItem); var   img: TBitmap;   Size: TSizeF; begin   Size := TSize.Create(64,64);   memo1.Lines.Add (AItem.Objects[0].Data.AsString+' : '+AItem.Objects[1].Data.AsString +' : '+AItem.Objects[2].Data.AsString);   ImageViewer1.Bitmap.Assign(Imagelist1.Bitmap(Size, AItem.Index )); end; end.


الملفات المرفقة
.png   Sans titre.png (الحجم : 33.39 ك ب / التحميلات : 10)
[-] كل من 1 user says قال شكرا ل Eagle Master على المشاركة المفيدة
  • invocker
الرد
#6
جزاكم الله خيرا هذا هو تمام
الرد
#7
(26-07-2019, 10:45 AM)Eagle Master كتب : استخدم الكود التالي

كود :
procedure TForm1.Button1Click(Sender: TObject); var lv: TListViewItem; IItem:TListItemImage; begin lv := ListView1.Items.Add; lv.Data['Name'] := 'Hello'; lv.Data['SubName'] := 'word'; lv.Data['Phone'] := '012456'; IItem:=lv.Objects.FindDrawable('img') as TListItemImage; if (IItem<>nil) then   IItem.ImageIndex:=0;   lv := ListView1.Items.Add; lv.Data['Name'] := 'Hello2'; lv.Data['SubName'] := 'word2'; lv.Data['Phone'] := '0124562'; IItem:=lv.Objects.FindDrawable('img') as TListItemImage; if (IItem<>nil) then   IItem.ImageIndex:=1; end; procedure TForm2.ListView1ItemClick(const Sender: TObject;   const AItem: TListViewItem); var   img: TBitmap;   Size: TSizeF; begin   Size := TSize.Create(64,64);   memo1.Lines.Add (AItem.Objects[0].Data.AsString+' : '+AItem.Objects[1].Data.AsString +' : '+AItem.Objects[2].Data.AsString);   ImageViewer1.Bitmap.Assign(Imagelist1.Bitmap(Size, AItem.Index )); end; end.
بارك الله فيكم ، لكن هل هناك مشكلة لل        item height   أحيانا يحصل تداخل خاصة في ال fmx Huh
الرد


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


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