delphi4arab منتديات دلفي للعرب

نسخة كاملة : كيفية تحديد الصور (حقل نوع جرافيك) في Timage
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم
الفكرة تبدو بسيطة لكني تعبت دون التوصل إلى المبتغى
في المرفقات مشروع صغير يوضح الفكرة و الإشكال.
لدينا جدول يحتوي 03 حقول الأول (الكود) الثاني (الإسم) الثالث (الصورة)
الأول حقل مفتاحي - الثاني رقمي - الثالث نوع جرافيك
و لدينا أيضا بعض العناصر Timage
ـ السؤال الأول: كيف يتم تحديد صورة معينة من الجدول (سجل معين) في العنصر Image دون استعمال وسيط (العنصر DBimage ) ؟
كود :
Image1.Picture.Bitmap:=DBimage1.Picture.Bitmap
ـ موضوع الإشكال : يريد المستخدم التوصل إلى البيانات الخاصة بفرد معين عن طريق البحث في قاعدة البيانات بطرق و احتمالات مختلفة (كل الطرق و الإحتمالات لا يوجد فيها إشكال باستثناء الآتي) . يريد التوصل إلى كل البيانات من كود و إسم و ... ، لشخص معين و ليس له أي معطيات عنه باستثناء تذكره لصورته ، و بالتالي عرض جميع الصور من قاعدة البيانات ، ليحدد ( Select ) الصورة المقصودة و منه استيراد و تحديد باقي البيانات الخاصة بذلك السجل.
السؤال: كيف يتم تحديد صورة كل سجل في العنصر Timage على حدى ، حسب السجلات الموجودة (مع امكانية وجود سجل (حقل الصورة فارغ) من غير صورة) ؟
....المرفق....
و عليكم السلام

استعن بالمكون TDBCtrlGrid اعتقد انه يفى بالغرض

بالتوفيق
كذلك الديبي قرايد الغير مجاني

كود :
http://devexpress.com/Products/Vcl/ExQuantumGrid/

لكن هل من حل لكي يتعامل dbctrlgrd مع حقول من نوع blob تحوي صور من نوع jpeg او png ؟
اتمنى الاجابة لانني بحاجة للجواب ليس للاستفادة فقط
Assign تقوم بنسخ حقول غرض إلى غرض آخر من نفس النمط (ينبغي استخدامها بحذر)
PHP كود :
var
  
Photo: TPicture;
begin
  Photo 
:= TPicture.Create;
  try
  if 
not OpenPictureDialog1.Execute then Exit;
    
Photo.LoadFromFile(OpenPictureDialog1.FileName);
    
DBImage1.DataSource.DataSet.Edit;
    
DBImage1.Picture.Graphic.Assign(Photo);
    
DBImage1.DataSource.DataSet.Post;
  finally
    
Photo.Free;
  
end;  // try
end; 
للقراءة:
PHP كود :
procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
  Table1
.First;
  
image1.Picture.Assign(DBImage1.Picture);
وهكذا... 
بالتوفيق.
يمكن الرجوع الى :
TStream او TBlobStream
السلام عليكم

بإستخدام الـ TMemoryStream : إذا كان من نوع bmp (إذا لم تكون كذلك حولها )
كود :
var MemStream: TMemoryStream; begin MemStream := TMemoryStream.Create; try TBlobField(Table1.FieldByName('img')).SaveToStream(MemStream); MemStream.Position :=0; Image1.Picture.Bitmap.LoadFromStream(MemStream); finally MemStream.Free;
بالتوفيق
شكرا للجميع.
لم أنتبه إطلاقا للمكون TDBCtrlGrid. يفي بالغرض مع بعض التعديلات.

بالتوفيق للجميع