delphi4arab منتديات دلفي للعرب

نسخة كاملة : اضآفة المعلموات في مكون ال ListWiew ؟
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم
كيف اضيف المعلومات في الlistview في دلفي صوره توضيحيه
وكيفية اضافتها
[صورة: sevb3.gif]
بسم الله الرحمن الرحيم

راجع درس [دورة دلفي للعرب] الدرس الأول : الخصائص و الأحداث
السلام عليكم ورحمة الله,
اهلا وسهلا بك اخي Delphiero, بخصوص سؤآلك فقد تم شرحه في الدرس الأول من دروس الدورة ولله الحمد كما ذكر الأخ ديلفي بارك الله له, الرآبط على Rapidshare لذلك حاول كل فترة, وسيمشي معك الحال ان شاء الله (عندي الرآبط شير يعمي ليلا)

على كل حال اخي الكريم,
1. ضع في خآصيّة ال ViewStyle لليست فيو, VsReport
2. اضغط باليمين على ال Listview وبعدها Columns editor, وآضف الكلمنات التي تريدها,
3. اضف العنآصر عن طريق ال items editor يعد الضغط على ال listview باليمين,

بارك الله لك اخي الكريم,
بالتوفيق,
عندما نريد ان نتعامل مع عمود نكتب listview.subitem
لو لدينا اكثر من 20 عمود كيف نتعامل مع عمود معين ؟
إقتباس :لو لدينا اكثر من 20 عمود كيف نتعامل مع عمود معين ؟
كود :
ListView1.Items[I].SubItems[J] := 'SubItem Value';
شريطة أن تكون قد قمت بإنشائه.
kachwahed كتب :
كود :
ListView1.Items[I].SubItems[J] := 'SubItem Value';
شريطة أن تكون قد قمت بإنشائه.

نعم اخي الكريم لقد جربت الطريقة امس واشتغلت تمام لكن المشكله انه لايتعرف على الاعدمة التي لاتوجد فيها قيم

مثلاً لو اردت ان اكتب مباشرة في الحقل state والحقل city لم تدخل له اي قيمة فانه لايتعرف عليه ويعطي رسالة listindex out ساظل احاول حتى احصل على الجواب


وشكراً لك اخي الكريم
إقتباس :لاتوجد فيها قيم..لم تدخل له اي قيمة
ما نسميه نحن بذلك يعتبره دلفي "غير موجود"
محاولة الولوج إلى عنصر "غير موجود" ضمن قائمة متصلة يثير في دلفي استثناء: List index out of bounds

في الحقيقة هذا يرجع إلى طريقة تعريف الصنف TListView نفسه في المكتبة CommCtrl
طريقة لتدارك الأمر باستخدام API مباشرة يمكن أن تكون بهذا الشكل:
PHP كود :
uses
  CommCtrl
;

{
$R *.dfm}

function 
GetLVText(iItem, iSubItem: Integer): string;
var 
Str: array[0..MAX_PATH] of Char;
begin
  ListView_GetItemText
(Form1.ListView1.Handle, iItem, iSubItem, Str, MAX_PATH);
  
Result := Trim(Str);
end;

procedure SetLVText(iItem, iSubItem: Integer; Text: string);
begin
  
if GetLVText(iItem, iSubItem) = '' then
    ListView_SetItemText
(Form1.ListView1.Handle, iItem, iSubItem, PChar(Text));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListView1
.Items.Add.Caption := 'test';
  
SetLVText(0, 3, 'some text')
end; 
هذه الطريقة استخدمتها في أحد البرامج التي لم أطرحها بعد WinExplorer
بالتوفيق.