easyDelphi Q&A
+5 تصويتات
157 مشاهدات
عندي حدول قاعدة بيانات بـ Mysql عبارة عن اسم شخص وصورته .

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

كيف يمكن عرض صورة اسم وصورة كل شخص على DBCtrlGrid

ولكم الشكر
سُئل في تصنيف MySQL بواسطة | 157 مشاهدات
 

3 إجابة

+3 تصويتات
أفضل إجابة

عذرا حسبتك تقصد "DBGrid" و لكنك كنت تقصد "DBCtrlGrid" ... كما أشكر بذلك الأستاذ سامر عن ملاحظاته القيمة و متابعته الجدية للموقع ...

 إليك الحل لسؤالك ...( آخذا بعين الأعتبار لجميع أنواع الصور التي يمكن أن يخزنها البلوب) و شكرا.

و إليك النتيجة كما بلي:

و أما فيما يخص البرنامج كاملا مع الكود سورس ف: الرابط هنا  الباسورد لفك الضغط هو "EasyDelphi.com/qa"  من دون "" ويرجى إستعمال الوينرار نسخة 5 فما فوق.

 

تم الرد عليه بواسطة (13,990 نقاط)
مختارة بواسطة
0 تصويتات

بعد تفعيل خاصية OwnerDraw لل grid

ارسم الصورة مباشرة بالاعتماد على القيمة في الحقل على ال canvas.
طبعا الكود من الذاكرة غير مجرب، و عملية الرسم كل مرة بهذا الشكل غير مقبولة انت بحاجة لعمل نوع من ال cache للصور المعروضة، لكن الكود يعطيك مفتاح البداية.
 

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
  Bitmap : TBitMap;
begin
  with Column do
  begin
    DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);

    i f ((FieldName = 'MyImageField') and (Field.AsString <> '')) then
    begin
      Bitmap := TBitmap.Create;
      try
        with Bitmap do begin
          LoadFromFile(Field.AsString);
          Canvas.Draw(Rect.Left,Rect.Top,Bitmap);
        end;
      finally
        Bitmap.Free;
      end;
      end;
  end;
end;



 

تم الرد عليه بواسطة (11,920 نقاط)
هو سأل عن dbCtrlGrid وليس DBGrid
+2 تصويتات

بعد عناء البحث و التجريب فقد توصلت إلى الحل المثالي الذي يعطي الجواب الصحيح لسؤالك ...(دارسا لجميع أنواع الصور التي يمكن أن يخزنها البلوب) و شكرا.

و إليك النتيجة كما بلي:

 

و أما فيما يخص البرنامج كاملا مع الكود سورس فالرابط هنا الباسورد لفك الضغط هو "EasyDelphi.com/qa"  من دون "" ويرجى إستعمال الوينرار نسخة 5 فما فوق.

تم الرد عليه بواسطة (13,990 نقاط)
هو سأل عن dbCtrlGrid وليس DBGrid

اسئلة متعلقة

+7 تصويتات
2 إجابة
سُئل يوليو 13 في تصنيف MySQL بواسطة amine | 48 مشاهدات
+4 تصويتات
1 إجابة
سُئل سبتمبر 30 في تصنيف Database بواسطة فريد (860 نقاط) | 53 مشاهدات
+1 تصويت
0 إجابة
سُئل سبتمبر 2 في تصنيف SQL Server بواسطة Yamada Fakir (1,330 نقاط) | 41 مشاهدات
+1 تصويت
1 إجابة
سُئل نوفمبر 19 في تصنيف MySQL بواسطة Anis (130 نقاط) | 38 مشاهدات
ادعُ اصدقائك في الفايسبوك لمشاركتك
Comodo SSL

مرحبًا بك إلى EasyDelphi Q&A، حيث يمكنك طرح الأسئلة والحصول على الإجابة عليها من المستخدمين الآخرين.

لا يسمح بطلب او السؤال عن كراك او تفعيل او كسر او فك او اي شيء يخالف اتفاقيات الترخيص  مهما كان السبب ومهما كان البرنامج ونوعه. ولا حتى نشر روابط تحتوي على مثل هذه الاشياء لا في الاسئلة ولا في الاجابات ولا التعليقات . نهائيا

282 سؤال
487 إجابة
866 تعليق
177 مستخدم