यह देशी सूची-दृश्य नियंत्रण के कार्यक्षेत्रों के लिए वीसीएल का समर्थन है। List-View Working Areas देखें।
[...] एकाधिक कार्य क्षेत्र एक दृश्य के विभिन्न क्षेत्रों को बनाने के लिए इस्तेमाल किया जा सकता है: प्रलेखन कि वे क्या किया जा सकता है के लिए एक उदाहरण देता है। आप एक ऐसे दृश्य में क्षेत्र बना सकते हैं जिसमें अलग-अलग अर्थ हैं। उदाहरण के लिए, फ़ाइल सिस्टम के दृश्य में पढ़ने/लिखने वाली फ़ाइलों के लिए क्षेत्र और केवल-पढ़ने वाली फ़ाइलों के लिए एक अन्य क्षेत्र हो सकता है। उपयोगकर्ता विभिन्न कार्यक्षेत्रों में उन्हें रखकर आइटम को वर्गीकृत कर सकता है। [...]
प्रलेखन यह भी कहा गया है कि आप किनारों के पास खाली सीमाओं बना सकते हैं या स्क्रॉल बार जहां सामान्य रूप से कोई भी कार्य क्षेत्रों का उपयोग करके किया जाएगा हो सकता है।
वीसीएल के दस्तावेज से बहुत गुम नहीं लग रहा है। आप कार्य क्षेत्रों को जोड़ और क्वेरी कर सकते हैं। किसी विशेष कार्य क्षेत्र में किसी आइटम को स्थानांतरित करें, या उससे पूछें कि यह किस क्षेत्र में रहता है। कुछ भी स्वचालित नहीं है, आपको बस इसे स्वयं करना है। एक आइटम किसी कार्य क्षेत्र से जुड़ा नहीं है, आपको इसे स्वयं स्थानांतरित करना होगा (वीसीएल केवल कार्यक्षेत्रों पर फिर से शुरू होता है और आइटम के क्षेत्र और क्षेत्र के समन्वय को जांचता है ताकि कार्य क्षेत्र में कोई आइटम हो)।
वर्गीकरण भाग शायद बेहद उपयोगी नहीं है, क्योंकि कोई भी नियंत्रण के बिना अपने स्वयं के आभासी क्षेत्रों को रख सकता है। किनारों और स्क्रॉल बार के बारे में बिट्स शायद अधिक महत्वपूर्ण हैं। लेकिन मैंने ओएस समेत किसी एप्लिकेशन में ऐसी चीज को लागू नहीं किया है। लेआउट नियंत्रण के लिए
नमूना उपयोग:
type
TForm1 = class(TForm)
Button1: TButton;
ListView1: TListView;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
end;
var
Form1: TForm1;
implementation
uses
commctrl;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
R1, R2: TRect;
begin
R1 := Rect(0, 0,
ListView1.ClientWidth div 2, ListView1.ClientHeight div 2 + 10);
R2 := Rect(ListView1.ClientWidth div 2 + 1, 0,
ListView1.ClientWidth - 1, ListView1.ClientHeight div 2 + 10);
ListView1.WorkAreas.Add.Rect := R1;
ListView1.WorkAreas.Add.Rect := R2;
ListView1.AddItem('Item 1', nil);
ListView1.AddItem('Item 2', nil);
ListView1.AddItem('Item 3', nil);
ListView1.AddItem('Item 4', nil);
ListView1.AddItem('Item 5', nil);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
for i := 0 to ListView1.Items.Count - 1 do begin
ListView1.Items[i].Left := ListView1.WorkAreas[1].Rect.Left;
ListView1.Items[i].Top := ListView1.WorkAreas[1].Rect.Top;
end;
ListView1.Arrange(arAlignTop);
end;
प्रारंभिक दृश्य:
ध्यान दें कि पहली तस्वीर में "आइटम 5" नहीं है:
बटन दबाने के बाद किसी भी कार्य क्षेत्र में। बटन में हैंडलर क्लिक करें मैंने सभी पांच आइटम 'दाएं-शीर्ष' कार्य क्षेत्र में डालने का प्रयास किया। "आइटम 5" के बाद वहां रखा गया है, नियंत्रण ने "आइटम -1" को बाहर निकालने का फैसला किया है क्योंकि सभी पांच फिट नहीं थे। अब तक यह स्पष्ट होना चाहिए कि मैंने कभी भी कार्यक्षेत्रों का उपयोग नहीं किया है, लेकिन मैंने उद्देश्य से इस उदाहरण को संभावित क्विर्क को इंगित करने में सक्षम होने के लिए दिया है। मुझे उम्मीद थी कि दस्तावेजों में उल्लिखित स्क्रॉलबार दिखाई देगा।
मैं एक अच्छा डेल्फी उदाहरण की उम्मीद कर रहा था जो उनके उपयोग को उजागर करेगा। – Alister
@ एलीस्टर - मैंने एक साधारण उदाहरण को एक साथ रखने की कोशिश की, अनुमान लगाया नहीं जा सकता है कि यह मददगार होगा .. –