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

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

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

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

3 إجابة

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

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

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

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

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

 

تم الرد عليه بواسطة (17,560 نقاط)
مختارة بواسطة
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;



 

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

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

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

 

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

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

اسئلة متعلقة

+7 تصويتات
2 إجابة
سُئل يوليو 13، 2018 في تصنيف MySQL بواسطة amine | 59 مشاهدات
+1 تصويت
1 إجابة
سُئل أبريل 19 في تصنيف SQL Server بواسطة hidenpain (760 نقاط) | 77 مشاهدات
+4 تصويتات
1 إجابة
سُئل سبتمبر 30، 2018 في تصنيف Database بواسطة فريد (960 نقاط) | 61 مشاهدات
+1 تصويت
0 إجابة
سُئل سبتمبر 2، 2018 في تصنيف SQL Server بواسطة Yamada Fakir (1,620 نقاط) | 59 مشاهدات
ادعُ اصدقائك في الفايسبوك لمشاركتك
Comodo SSL

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

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

374 سؤال
603 إجابة
1,062 تعليق
232 مستخدم