لم أدرج حل القضية بالأمس ، لتفادي كثرة الطرح ، كي لا تختلط الأمور عليك ، و أحببت التدارك أولا.
- الفت الإنتباه أولا إلى OpenPictureDialog ، لا بد من تعديل خاصية الفلتر له ليصبح مقتصر على صور Bmp فقط ، و إذا أردت لواحق أخرى ، المهم لا يجب ترك مثلا اللاحقة Ico في الوقت الذي لا تستخدمينها ، و تتسبب في الخطأ ، لا بد من تقييد خيارات المسخدم.
- إلى غاية ادراج سورس تكبير و تصغير الصورة ، أرفقت مجموعتين من نفس الصور بحجم24 و 128
فقط حاولي فتح الصور لمشاهدة الحجم الحقيقي ، ثم ادراجها بــ DBImage1 ، ثم ملاحظة الفرق.
و بطبيعة الحال الحجم اختياري مراعاة مع حجم DBImage
و على هذا حاولي نفس التجربة مع الصور السابقة و لاحظي الفرق ، خصوصا صور المجلد48 فحجمها يكبر رغم نقص الجودة بسبب الحجم الصغير الأصلي ، كذلك الصور من المجلد128 كانت لا تظهر مكتملة (نقص طفيف) ، الآن تظهر كاملة .
رائع :thanks:
انا اضفت الى uses كلمة jpeg والان اصبح يدعم الصورjpeg وهي التي تعمل مشكل حيث لا تظهر لان حجمها كبير اما bmp فهي تظهر.اما jpeg فهي لاتظهر الي حد الان.
لاحظت ايضا نه لو اردنا ان نستبدل صورة شخص بصورة اخرى فان زر modifier لا يحفظ التغيير
ايضا عند الضغط على الازرار pré و sui فان ما يظهر ليس ما يكون مختارا في dbgrid
وانا في انتظار ردودك الجميلة
إقتباس :انا اضفت الى uses كلمة jpeg والان اصبح يدعم الصورjpeg وهي التي تعمل مشكل حيث لا تظهر لان حجمها كبير اما bmp فهي تظهر.اما jpeg فهي لاتظهر الي حد الان
ليس لا تظهر لأن حجمها كبير ، بل لا تظهر بسبب كود تحجيم الصورة
كود :
ResizeBmp(DbImage1.Picture.Bitmap,100,110) ;
في الحدث DBImage1Click ، لو يتم نزع هذا السطر فإنها سوف تظهر على DBImage1 ، و لن يتم تخزينها بالجدول لأن الحقل من نوع جرافيك ، و لا يدعم إلا Bmp .
و لن ننزع هذا السطر ، لأننا نحتاجه ، أما إذا كان لازم و لابد من الصور نوع Jpeg فيمكن تحويلها إلى Bmp ثم بعد ذلك كما لدينا : تحجيمها ثم تخزينها بالجدول، ندع هذا الأمر جانبا و نعالجه فيما بعد.
إقتباس :لاحظت ايضا نه لو اردنا ان نستبدل صورة شخص بصورة اخرى فان زر modifier لا يحفظ التغيير
الأمر كذلك و لقد تم معالته
إقتباس :لاحظ ايضا اخي الكريم عند الضغط على الازرار pré و sui فان ما يظهر ليس ما يكون مختارا في dbgrid
وانا في انتظار ردودك الجميلة
أزرار التفقد و المعاينة (التالي ، السابق ...) تعمل بشكل عادي .لم أفم ما تودينه بقولك هذا .
- أثناء تغيير قيمة 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;
يمكن الإستغناء عن SaveDialog و تحديد مباشر لمكان الحفظ ، و لكن في هذا المشروع أضن أن الأحسن (في حدث الضغط على DBImage )
كود :
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;
- أضنني قطعت لك شوطا كبيرا ، عليك بما تبقى .
- بالتوفيق أختاه -
اخي الكريم لقد بذلت معي مجهود كبير اشكرك وجزاك الله خيرا وجعل ذلك كله في ميزان حسناتك:thanks:
ساكمل المشروع بقيت لي الفلترة بالرقم والاسم واللقب ساحاول ان انجزها وان واجهت صعوبات ساطرح المشكل وانتظر منكم كل رد جميل.
يعيش منتدانا يعيش:clap2:
ryma192000 كتب :اخي الكريم لقد بذلت معي مجهود كبير اشكرك وجزاك الله خيرا وجعل ذلك كله في ميزان حسناتك:thanks:
ساكمل المشروع بقيت لي الفلترة بالرقم والاسم واللقب ساحاول ان انجزها وان واجهت صعوبات ساطرح المشكل وانتظر منكم كل رد جميل.
يعيش منتدانا يعيش:clap2:
إقتباس :أزرار التفقد و المعاينة (التالي ، السابق ...) تعمل بشكل عادي .لم أفم ما تودينه بقولك هذا .
لاحظ ان الشخص الذي تختاره لا تظهر صورته معه انما صورة من هو قبله. اي ظهور معلومات الشخص متاخرة عن ظهور صورته.وللتاكد اضغط مباشرة في dbgrid وستظهر كل صورة مع معلوماتها.
2.عند التعديل لو افرغنا حقل او اكثر ووافقنا على التغيير فان رسالة التنبيه التي تشير الى ضروروة ملاء كل الحقول لا تظهر.
مشكور مرة اخرى على ردودك يا غالي.
إقتباس :لاحظ ان الشخص الذي تختاره لا تظهر صورته معه انما صورة من هو قبله. اي ظهور معلومات الشخص متاخرة عن ظهور صورته.وللتاكد اضغط مباشرة في dbgrid وستظهر كل صورة مع معلوماتها.
هذ الكلام لا أساس له من الصحة ، خذي المرفق فيه سجلين ، اعملي Suivant و Précédent أو كليك على DBGrid أو حتى الانتقال بأزرار لوحة المفاتيح أعلا و أسفل : النتيجة واحدة : تتمثل في تغيير المعطيات التي تظهر على Edt و Combobox و Datetimepicker و ... كل سجل مرفوق بالصورة الخاصة به. لا يوجد أي اشكال ، اللهم إذا كان المقصود شيء آخر .
إقتباس :.عند التعديل لو افرغنا حقل او اكثر ووافقنا على التغيير فان رسالة التنبيه التي تشير الى ضروروة ملاء كل الحقول لا تظهر.
هذه لم أفهمها حاولت الحذف ، التعديل (ملء كل الحقول: الأمر عادي ، ترك احداها أو كلها فارغة : رسالة: ملء الحقول ... ) التأكيد على التعديل ، كل شيء عادي .....
إما أنك خاطئة أو أني لم أفهم القصد .
تسلم يا غالي
لقد تكمنت من الفلترة للاسم واللقب بالكود التالي
كود :
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