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

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



تخزين قيم الخلايا لعمود في مصفوفة - shdotcom - 30-07-2011

السلام عليكم ورحمة الله وبركاته

كيف يمكن جلب قيم الخلايا في عمود معين من ال DBGrid ووضعها في مصفوفة ؟؟؟
شئ مشابه لـ StringGrid1.Cells[2,i]


تخزين قيم الخلايا لعمود في مصفوفة - FPS - 30-07-2011

وعليكم السلام ورحمة الله وبركاته
====================
يمكنك فعل ذلك بطريقتين
1 - من DBGrid
for i:=1 to table.RecordCount do
begin
table.RecNo:=i;
a[i]:=DBGrid1.Columns.Items[رقم العمود].Field.Value;
end;
علما أن رقم العمود يبدأ من 0


والطريقة الثانية من الجدول ذاته
for i:=1 to table.RecordCount do
begin
table.RecNo:=i;
a[i]:=table.FieldByName('اسم العمود').Value;
end;


تخزين قيم الخلايا لعمود في مصفوفة - shdotcom - 30-07-2011

السلام عليكم ورحمة الله وبركاته

شكرا على الرد ... لكن ما أبحث عنه هو جلب القيم مع بقاء المؤشر في مكانه على السجل الحالي.


تخزين قيم الخلايا لعمود في مصفوفة - FPS - 01-08-2011

وعليكم السلام
============
يمكنك الاحتفاظ برقم السطر الحالي ثم اعادته حيث كان

كود :
n:=table.RecNo; for i:=1 to table.RecordCount do begin table.RecNo:=i; a[i]:=DBGrid1.Columns.Items[رقم العمود].Field.Value; end; table.RecNo:=n;

أو يمكنك فعل ذلك بطريقة اخرى وهي طريقة انشاء المكونات الديناميكية
بفرض انك تستخدم قواعد البيانات Paradox فالطريقة كالتالي:
بفرض ان الجدول الاصلي هو table
كود :
var i:integer; newtab:TTable; begin newtab:=TTable.Create(Self); newtab.DatabaseName:=table.DatabaseName; newtab.TableName:=table.TableName; newtab.open; for i:=1 to newtab.RecordCount do begin newtab.RecNo:=i; a[i]:=newtab.FieldByName('اسم العمود').Value; end; end;



تخزين قيم الخلايا لعمود في مصفوفة - shdotcom - 02-08-2011

السلام عليكم ورحمة الله وبركاته

شكرا جزيلا ،،، وجدت الحل باستخدام Virtual Table