delphi4arab منتديات دلفي للعرب
كيف تستعمل ListBox1.AddItem لتخزين نص وعنوانه - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : كيف تستعمل ListBox1.AddItem لتخزين نص وعنوانه (/showthread.php?tid=426)



كيف تستعمل ListBox1.AddItem لتخزين نص وعنوانه - kachwahed - 13-01-2009

من يدلنا على طريقة لتخزين معيطات بشكل منسق (كل عنوان يقابله نوع معين من المعطيات: نص، قيمة، صورة، ....)، أظن أن ذلك ممكن باستعمال ListBox1.AddItem لأنها تخزن قيمة نصية و متغير من النوع TObject، لكنني لم أتوصل الى الطريقة الصحيحة.
بالنسبة للنص Edit1.text بالأمر سهل:
كود :
ListBox1.AddItem(Edit1.Text, { ...Memo1... });
ولقراءته:
كود :
Edit1.Text := ListBox1.Items.Strings[ListBox1.ItemIndex]; Memo1 := ListBox1.Items.Objects...;
أما بالنبسة الآخر فلم أجد حل في Google فهل أجد شيئا Delphi4Arab؟


كيف تستعمل ListBox1.AddItem لتخزين نص وعنوانه - محمد عبد العزيز - 14-01-2009


إقتباس :فلم أجد حل في Google فهل أجد شيئا Delphi4Arab؟
ان شاء الله تجد

محتوى المكون ListBox1 نصي String فقط
ان اردت تخزين شيئ اخر غير نصي استعمل ListView
هناك مثال حي ضمن امثلة دلفي
كود :
\Program Files\Borland\Delphi*\Demos\Virtual Listview
والسلام عليكم



كيف تستعمل ListBox1.AddItem لتخزين نص وعنوانه - kachwahed - 15-01-2009

بارك الله فيك أخونا عبد العزيز على التوجيه وجزاك الله خيرا.
المثال الذي أعطيتني لم يكن بالضبط ما كنت أبحث عنه.
وقد وجدته الآن.
المكون TListBox يمكنه تخزين قيمة نصية (String) تقابلها قيمة من النوع TObject.
حتى الآن استعملتها مع نص String وقائمة من النصوص TStringList كنوع TObject.
واستعملتها مع نص ومؤشر على تسجيل Pointer of record، وهذا الأهم.
وإليكم كود الطريقتين:
الأولى:
PHP كود :
var
  
Form1: TForm1;
  
NotesFile: TStringList;
implementation
{$R *.dfm}
procedure TForm1.ListBox1Click(Sender: TObject);
begin
  Memo1
.Lines := TStrings(ListBox1.Items.Objects[ListBox1.ItemIndex]);
  
Edit1.Text := ListBox1.Items[ListBox1.ItemIndex];
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  NotesFile
.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
  NotesFile 
:= TStringList.Create;
  
NotesFile.Text := Memo1.Text;
  
ListBox1.Items.AddObject(Edit1.Text, NotesFile);
end; 
الثانية:

PHP كود :
PMyRec = ^TMyRec;
TMyRec = record
  EdTitre
: String;
  
MemTexte: String;
end;
var
  
Form1: TForm1;
  
EcriRec: PMyRec;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
  
New(EcriRec);
  
EcriRec.EdTitre := Edit1.Text;
  
EcriRec.MemTexte := Memo1.Text;
  
ListBox1.AddItem(Edit1.Text, pointer(EcriRec));
end;
procedure TForm1.ListBox1Click(Sender: TObject);
var 
LirRec: TMyRec;
begin
  LirRec 
:= pMyRec(ListBox1.Items.Objects[ListBox1.itemindex])^;
  
Edit1.Text := LirRec.EdTitre;
  
Memo1.Text := LirRec.MemTexte;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
  
if EcriRec <> nil then
  Dispose
(EcriRec);
end; 
وفي ملف المسا عدة (Help) للدلفي مثال عن استعمالها مع TControl أيضا.
شكرا كثيرا على التوجيه.