الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أملأ جدول StringGrid1 من قاعدة البيانات

مغلق
بدأه admin في 1 مايو 2003 · 8 رد · 1,546 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أخواني الاعزاء

السلام عليكم

لدي عدة اسئلة على StringGrid1

1- كيف املأ جدول StringGrid1 من قاعدة بيانات أكسس .

2- كيف أضع عنوان للأعمدة والصفوف ليصبح مثل الشكل التالي .

3- كيف أعمل حدثا بحيث لا يعمل إلا على العمود الثاني مثلا .

test.jpg

شاكرين جدا عل تعاونكم ،،،

وتقبلوا تحياتي ،،،

#2

اخي admin

لقد وضعت dbgrid

أمل ان توافي متتطلباتك (f)

#3

جواب السؤال الأول و الثاني هو

[ALIGN=LEFT]procedure TForm1.Button1Click(Sender: TObject);

var Row,Col : Integer;

begin

for Col:=0 to DBGrid1.Columns.Count-1 do

    StringGrid1.Cells[col,0]:= DBGrid1.Fields[Col].FieldName;



ADOTable1.First;

While not ADOTable1.Eof do

begin

for Row :=1 to ADOTable1.RecordCount do

    for Col:=0 to DBGrid1.Columns.Count-1 do

        StringGrid1.Cells[col,row]:= DBGrid1.Fields[Col].CurValue;

ADOTable1.Next;

end;



end;[/ALIGN]

جواب السؤال الثالث هو :

[ALIGN=LEFT]procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,

  ARow: Integer; var CanSelect: Boolean);

begin

if Acol=2 then

ShowMessage('hi col 2');

end;[/ALIGN]

مع تحياتي

#4

شكرا جزيلا Mina ,Reda

جعله الله في موازين حسناتكم

عفوا أخ Reda لم أجد الـ dbrgid التي تقصد:(

#5

شكرا جزيلا Mina

هذا ما أريد بالضبط .

جعله الله في موازين حسناتك ،،،

وتقبل تحياتي ،،،

#6

سأجاوبك وبإذن الله ستتوضح لك الامور اكثر

لملئ العناويين

لامر ابسط مماتصور صديقي admin

واو ان اشكرك على اسئلتك اللطيفة لكن لااعرف ماهو هدفك من كل هذا التعقيد على كل

إن الخلايا بcell

هي مصفوفات ثنائية البعد وتستطيع التعامل معها والاضافة إليها حسب رقم العمود والصف للخلية

StringGrid1.Cells[0,0]:='رقم الصنف';
StringGrid1.Cells[1,0]:='اسم الصنف';
StringGrid1.Cells[2,0]:='السعر ';
StringGrid1.Cells[3,0]:='الكمية ';
StringGrid1.Cells[4,0]:='السكن';

بالنسبة للاضافة من قاعدة البيانات

للخلايا فهي كما تعرف raw

col

تستطيع التعامل معها كأي object

مثلا

تحجز متحولات وتتعامل مع الصفوف والاعمدة كالتالي

var
x:integer;
y:integer;
begin
for x:=0to stringgrid1.colcount-1 do
for y:=1to stringgrid1.rowcount-1do

وتستطيع تحديد كل حقل تود نقله من قاعدة البيانات وإدخاله داخل الخلايا مهما كان نوع قاعدة البيانات

وهنا يبقى الامر مرهونا لك كمبرمج

شخصيا لااحب الacssec

ولا انصحك بالstring grid لقواعد البيانات

بالنسبة لسؤالك الثالث

سأعطيك فكرة للحل وحاول وإن شاء الله بيمشي الحال

مثلا لو ان الخلية

StringGrid1.Cells[2,2]

هي المعنية

ستستفيد من احداث ك select index مع رقم ال index

تلميح للحل

procedure constadmin(Grid : TStringGrid;
                              column : integer);

حيث أن فرضا الاجراء constadmin هو من سيقوم بالعملية

وستقوم بإضافة مايناسبك من احداث ولو اني لست مع ان تستعمل string Grid

مثلا

grid.cells[column, i]);

كنت اود ان اشرح لك اكثر لكن اعذرني فالامتحانات على الابواب

ولا يوجد لدي delphi على الحاسب

وقد وضعت dbgrid فيها كل مايحلم بها المبرمج من امكانيات انا متاكد ستجد بها حلولا لمشاكلك جميعها بإذن الله ..

أرجو أن تكون الفكرة قد وضحت في ذهنك اكثر ؟

وتقبل تحياتي

اخوك

رضا(f)

#7

:o

texdbgrid.rar

#9

شكرا جزيلا أخي reda لقد كان الشرح واضحا ووافيا ، الآن اتضحت لدي الفكرة جيدا .

أتمنى لك التوفيق والنجاح في دراستك .

أما لماذا كل هذا التعقيد فلا أمانع أن تغيير اتجاهي وأن تعطيني فكرة أفضل منها ( وهذا ما أتمنى أن يحدث في المنتديات وهو أن يتم استبدل الفكرة إن وجدت أفضل وليس الإجابة فقط على السؤال ) - عموما استخدمت ال stringgrid لإدخال بيانات الفواتير بدلا من edit أو dbedit لأنها الأسهل في حذف سطر كامل ، أما dbgrid الموجودة مع الدلفي لم تخدمني في عمل الفاتورة ، وسأجرب الـ dbgrid التي وضعتها .

اعتذر عن الإطالة داعيا الله عز وجل أن يسهل لك ولكل رواد المنتدى اختباراتكم . وأن يوفقكم في الحصول على أعلى الدرجات .

وأشكرك أيضا أخي أبو محمد الهذلي ، ولكن أتمنى أن تصحح الرابط :(

هذا الموضوع مغلق.

مواضيع مشابهة