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

نسخة كاملة : لماذا تظهر رسالة Abstract Error
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم
تظهر لى رسالة Abstract Error عند
هذة الدالة TStrings.SaveToStream
معا العلم انى استخدم (D2010/D7) ومعا كل منهم تظهر نفس الرسالة
وانا اعرف معنى Abstract فلماذا تظهر هذه الرسالة ؟
مثلا فى هذا الكود
كود :
var S : TStream; begin S := TStream.Create; CheckListBox1.Items.SaveToStream(s);// Error raised here end;
وعليكم السلام ورحمة الله
الصنف TStream هو صنف Abstract
معظم مناهجه ليست لها Implementation
أي أن تعريفها يؤجل إلى أصناف لاحقة...

استخدم عوضا عنه TMemoryStream:
PHP كود :
var
  
S : TMemoryStream;
begin
  S 
:= TMemoryStream.Create;
  
ListBox1.Items.SaveToStream(s);// No Error here
  
s.Free; 
بالتوفيق أخ bo0oda Wink
مشكور اخ kachwahed

كنت توصل لهذ من قليل واستخدمت TStringStream
وفعلا لم تظهر الرسالة ولكن عند استخدام دالة TStrings.LoadFromStream
لا يحدث شى
كود :
var S : TMemoryStream; i : Integer; m : TStringList; begin S := TMemoryStream.Create; //S.Size = 0 m := TStringList.Create; for i := 0 to CheckListBox1.Count - 1 do if CheckListBox1.Checked[i] then m.Add(CheckListBox1.Items[i]) ; m.SaveToStream(S); //s.Size = 37 ComboBox1.Items.LoadFromStream(s);//nothing happened ComboBox1.Update; S.Free; end;
وفى كل حال لك جزيل الشكر
القراءة والكتابة في TStream تنقلك إلى موضع آخر...
استخدم:
PHP كود :
s.Seek(0, 0); 
قبل القراءة
بالتوفيق.
كنت نسى خالص
شكرا اخى وفقك الله لما يحب ويرضى