في بعض الأحيان يتعين علينا دائمًا تغيير بعض الإعدادات الافتراضية عند استخدام Listview الخاص بـ Delphi7، والآن نقوم بتجميعها معًا وتلخيصها على النحو التالي.
MultiSelect := True؛ يمكّن Listview من تحديد صفوف متعددة في نفس الوقت
GridLines := True; يتسبب في عرض Listview لخطوط الشبكة
ViewStyle := vsReport يعرض قائمة مفصلة بعناصر البيانات
HideSelection := True; عندما تفقد طريقة عرض القائمة التركيز، لا يتم تمييز الصف المحدد.
// تعيين إجراء اللون TForm1.ListView1CustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);var subRect, itemRect: TRect; ثم ابدأ Sender.Canvas.Font.Color := clRed; // لون خط الخط المحدد Sender.Canvas.Brush.Color := clgray; //clGreen; Brush.Color := clWhite; // نهاية لون تمييز الصف العادي itemRect := Item.DisplayRect(drLabel); العنصر الفرعي: = 0 إلى (المرسل كـ TListView).Columns.Count - 1 يبدأ subRect.Left := itemRect.Left؛ لـ i:= 1 إلى SubItem يبدأ subRect.Left := subRect.Left + (المرسل كـ TListView) .Column[i - 1].Width; subRect.Right := subRect.Right + SubRect.Left + (المرسل باسم TListView).Column[i].Width; end; إذا كان SubItem = 0، فابدأ subRect.Right := subRect.Right + 2; Sender.Canvas.TextRect(subRect, subRect.Left, subRect.Top, Item.Caption); نهاية آخر Sender.Canvas.TextRect(subRect, subRect.Left, subRect.Top, Item.SubItems[SubItem - 1]); end;
// وظيفة الفرز خاصة { الإعلانات الخاصة } SortCol: Integer; SortWay: Integer; الإجراء TForm1.ListView1ColumnClick(Sender: TObject; Column: TListColumn);begin SortCol := Column.Index; 1 طريقة فرز أخرى:= 1؛ TCustomListView).AlphaSort;end;procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem; Data: Integer; var Compare: Integer);var t: Integer;ابدأ إذا (SortCol = 0) ثم ابدأ المقارنة:= SortWay * CompareText(Item1.Caption, Item2.Caption); t := SortCol - 1; Compare := SortWay * CompareText(Item1.SubItems[t], Item2.SubItems[t]); end;هناك مشكلة في هذه الوظيفة: الفرز الرقمي سيكون مشابهاً للأحرف، على سبيل المثال: 1,10,102,3,34,356...يمكن للقراء المهتمين تحسينها