![]() |
|
كيف استدعي صورة مخزنة بقاعدة البينات - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : كيف استدعي صورة مخزنة بقاعدة البينات (/showthread.php?tid=1180) |
كيف استدعي صورة مخزنة بقاعدة البينات - nabilkeb - 07-09-2009 لم أدرج حل القضية بالأمس ، لتفادي كثرة الطرح ، كي لا تختلط الأمور عليك ، و أحببت التدارك أولا. - الفت الإنتباه أولا إلى OpenPictureDialog ، لا بد من تعديل خاصية الفلتر له ليصبح مقتصر على صور Bmp فقط ، و إذا أردت لواحق أخرى ، المهم لا يجب ترك مثلا اللاحقة Ico في الوقت الذي لا تستخدمينها ، و تتسبب في الخطأ ، لا بد من تقييد خيارات المسخدم. - إلى غاية ادراج سورس تكبير و تصغير الصورة ، أرفقت مجموعتين من نفس الصور بحجم24 و 128 فقط حاولي فتح الصور لمشاهدة الحجم الحقيقي ، ثم ادراجها بــ DBImage1 ، ثم ملاحظة الفرق. كيف استدعي صورة مخزنة بقاعدة البينات - nabilkeb - 07-09-2009 Function التحكم بحجم الصورة : كود : function ResizeBmp(bitmp: TBitmap; wid, hei: Integer): Boolean;
var
TmpBmp: TBitmap;
ARect: TRect;
begin
Result := False;
try
TmpBmp := TBitmap.Create;
try
TmpBmp.Width := wid;
TmpBmp.Height := hei;
ARect := Rect(0,0, wid, hei);
TmpBmp.Canvas.StretchDraw(ARect, Bitmp);
bitmp.Assign(TmpBmp);
finally
TmpBmp.Free;
end;
Result := True;
except
Result := False;
end;
end;كود : ResizeBmp(DbImage1.Picture.Bitmap,[COLOR=DarkRed]100[/COLOR],[COLOR=DarkRed]110[/COLOR]) ;و على هذا حاولي نفس التجربة مع الصور السابقة و لاحظي الفرق ، خصوصا صور المجلد48 فحجمها يكبر رغم نقص الجودة بسبب الحجم الصغير الأصلي ، كذلك الصور من المجلد128 كانت لا تظهر مكتملة (نقص طفيف) ، الآن تظهر كاملة . بالتوفيق كيف استدعي صورة مخزنة بقاعدة البينات - kwahab - 07-09-2009 رائع :thanks: انا اضفت الى uses كلمة jpeg والان اصبح يدعم الصورjpeg وهي التي تعمل مشكل حيث لا تظهر لان حجمها كبير اما bmp فهي تظهر.اما jpeg فهي لاتظهر الي حد الان. لاحظت ايضا نه لو اردنا ان نستبدل صورة شخص بصورة اخرى فان زر modifier لا يحفظ التغيير ايضا عند الضغط على الازرار pré و sui فان ما يظهر ليس ما يكون مختارا في dbgrid وانا في انتظار ردودك الجميلة
كيف استدعي صورة مخزنة بقاعدة البينات - nabilkeb - 07-09-2009 إقتباس :انا اضفت الى uses كلمة jpeg والان اصبح يدعم الصورjpeg وهي التي تعمل مشكل حيث لا تظهر لان حجمها كبير اما bmp فهي تظهر.اما jpeg فهي لاتظهر الي حد الانليس لا تظهر لأن حجمها كبير ، بل لا تظهر بسبب كود تحجيم الصورة كود : ResizeBmp(DbImage1.Picture.Bitmap,100,110) ;و لن ننزع هذا السطر ، لأننا نحتاجه ، أما إذا كان لازم و لابد من الصور نوع Jpeg فيمكن تحويلها إلى Bmp ثم بعد ذلك كما لدينا : تحجيمها ثم تخزينها بالجدول، ندع هذا الأمر جانبا و نعالجه فيما بعد. إقتباس :لاحظت ايضا نه لو اردنا ان نستبدل صورة شخص بصورة اخرى فان زر modifier لا يحفظ التغييرالأمر كذلك و لقد تم معالته إقتباس :لاحظ ايضا اخي الكريم عند الضغط على الازرار pré و sui فان ما يظهر ليس ما يكون مختارا في dbgridأزرار التفقد و المعاينة (التالي ، السابق ...) تعمل بشكل عادي .لم أفم ما تودينه بقولك هذا . كيف استدعي صورة مخزنة بقاعدة البينات - nabilkeb - 07-09-2009 - أثناء تغيير قيمة Combobox7 و 9 و Edit16 فإن EDit4 لا يتغير ، و بالتالي يتم اعطاهم جميعا نفس الحدث MaskEdit4Change - كود سورس تحويل Jpg إلى Bmp : كود : procedure TForm1.Button1Click(Sender: TObject);
var
jpeg: TJPEGImage;
bmp: TBitmap;
begin
if OpenPictureDialog1.Execute then
begin
jpeg := TJPEGImage.Create;
try
jpeg.CompressionQuality := 100; {Default Value}
jpeg.LoadFromFile(OpenPictureDialog1.FileName);
bmp := TBitmap.Create;
try
bmp.Assign(jpeg);
if saveDialog1.Execute then bmp.SaveTofile(saveDialog1.FileName+'.bmp');
finally
bmp.Free
end;
finally
jpeg.Free
end;
end;
end;كود : procedure TForm7.DBImage1Click(Sender: TObject);
Var
Im: TPicture;
Ext,Nom_Fichier : String;
begin
if OpenPictureDialog1.Execute then Begin
Nom_Fichier:= OpenPictureDialog1.FileName;
Ext:= UpperCase(ExtractFileExt(Nom_Fichier));
if (Ext='.JPEG') or (Ext='.JPG') then Begin
Im:= TPicture.Create;
Im.LoadFromFile(Nom_Fichier);
DBImage1.Picture.Bitmap.Assign(Im.Graphic);
Im.Free;
End Else if (Ext='.BMP') then
DBImage1.Picture.LoadFromFile(Nom_Fichier)
//Else ShowMessage('unsupported image');
End; ResizeBmp(DBImage1.Picture.Bitmap,100,110) ;
end;- أضنني قطعت لك شوطا كبيرا ، عليك بما تبقى . - بالتوفيق أختاه - كيف استدعي صورة مخزنة بقاعدة البينات - kwahab - 07-09-2009 اخي الكريم لقد بذلت معي مجهود كبير اشكرك وجزاك الله خيرا وجعل ذلك كله في ميزان حسناتك:thanks: ساكمل المشروع بقيت لي الفلترة بالرقم والاسم واللقب ساحاول ان انجزها وان واجهت صعوبات ساطرح المشكل وانتظر منكم كل رد جميل. يعيش منتدانا يعيش:clap2: كيف استدعي صورة مخزنة بقاعدة البينات - nabilkeb - 07-09-2009 ryma192000 كتب :اخي الكريم لقد بذلت معي مجهود كبير اشكرك وجزاك الله خيرا وجعل ذلك كله في ميزان حسناتك:thanks:بالتوفيق أختي ، هذا الرابط حقا من شأنه مساعدتك و به جل طرق البحث بقواعد البيانات و الفلترة أيضا و أنصح انشاء المطلوب بواسطة لغة الاستعلام البنيوي فهي أحسن و أقوى و كذلك الأمر سهل أيضا. هذا الرابط قد يفيدك و هذا كتاب عربي قيم جدا جدا للمبتدئين ، راجعي الصفحة 118 ،أيضا تجدين المطلوب بالصفحة 126 كيف استدعي صورة مخزنة بقاعدة البينات - kwahab - 07-09-2009 1. إقتباس :أزرار التفقد و المعاينة (التالي ، السابق ...) تعمل بشكل عادي .لم أفم ما تودينه بقولك هذا .لاحظ ان الشخص الذي تختاره لا تظهر صورته معه انما صورة من هو قبله. اي ظهور معلومات الشخص متاخرة عن ظهور صورته.وللتاكد اضغط مباشرة في dbgrid وستظهر كل صورة مع معلوماتها. 2.عند التعديل لو افرغنا حقل او اكثر ووافقنا على التغيير فان رسالة التنبيه التي تشير الى ضروروة ملاء كل الحقول لا تظهر. مشكور مرة اخرى على ردودك يا غالي. كيف استدعي صورة مخزنة بقاعدة البينات - nabilkeb - 07-09-2009 إقتباس :لاحظ ان الشخص الذي تختاره لا تظهر صورته معه انما صورة من هو قبله. اي ظهور معلومات الشخص متاخرة عن ظهور صورته.وللتاكد اضغط مباشرة في dbgrid وستظهر كل صورة مع معلوماتها.هذ الكلام لا أساس له من الصحة ، خذي المرفق فيه سجلين ، اعملي Suivant و Précédent أو كليك على DBGrid أو حتى الانتقال بأزرار لوحة المفاتيح أعلا و أسفل : النتيجة واحدة : تتمثل في تغيير المعطيات التي تظهر على Edt و Combobox و Datetimepicker و ... كل سجل مرفوق بالصورة الخاصة به. لا يوجد أي اشكال ، اللهم إذا كان المقصود شيء آخر . إقتباس :.عند التعديل لو افرغنا حقل او اكثر ووافقنا على التغيير فان رسالة التنبيه التي تشير الى ضروروة ملاء كل الحقول لا تظهر.هذه لم أفهمها حاولت الحذف ، التعديل (ملء كل الحقول: الأمر عادي ، ترك احداها أو كلها فارغة : رسالة: ملء الحقول ... ) التأكيد على التعديل ، كل شيء عادي ..... إما أنك خاطئة أو أني لم أفهم القصد . كيف استدعي صورة مخزنة بقاعدة البينات - kwahab - 08-09-2009 تسلم يا غالي لقد تكمنت من الفلترة للاسم واللقب بالكود التالي كود : if form7.Edit2.Text='' then
begin
dm.table5.Filtered:=false;
end
else
begin
dm.table5.Filtered:=true;
dm.table5.Filter:='Nom='+quotedstr(form7.edit2.text+'*');
end![]() الملف بالمرفقات وياريت لو تشوف ملاحظاتي السابقة فيما يخص رسالة:املا كافة الحقول التي لاتظهر في حالة التعديل وعند ترك حقل فارغ. ملاحظة:الحروف كلها majuscules |