delphi4arab منتديات دلفي للعرب
لماذا تظهر رسالة Abstract Error - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : لماذا تظهر رسالة Abstract Error (/showthread.php?tid=2090)



لماذا تظهر رسالة Abstract Error - bo0oda - 10-06-2010

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



لماذا تظهر رسالة Abstract Error - kachwahed - 10-06-2010

وعليكم السلام ورحمة الله
الصنف TStream هو صنف Abstract
معظم مناهجه ليست لها Implementation
أي أن تعريفها يؤجل إلى أصناف لاحقة...

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



لماذا تظهر رسالة Abstract Error - bo0oda - 10-06-2010

مشكور اخ 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;
وفى كل حال لك جزيل الشكر


لماذا تظهر رسالة Abstract Error - kachwahed - 10-06-2010

القراءة والكتابة في TStream تنقلك إلى موضع آخر...
استخدم:
PHP كود :
s.Seek(0, 0); 
قبل القراءة
بالتوفيق.



لماذا تظهر رسالة Abstract Error - bo0oda - 10-06-2010

كنت نسى خالص
شكرا اخى وفقك الله لما يحب ويرضى