مشاهدة النسخة كاملة : كيفية اضافة الصور؟!
الواحةالعذبة
12-03-2004, 01:58 PM
السلام عليكم و رحمة الله
هذه اول مشاركة لي في المنتدى....
علي أجد ضالتي.....
سؤال: كيف اوم باضافة صورة للبرنامج بخيث اذا ضغط المستخدم على الصورة يقوم بحث معين (علما بان برنامجي عبارة عن ألعاب للأطفال ) ..
حاولت استخدام Image/Picture box لكن المشكلة ان الصورة تضاف كمستطيل وانا لو اردت اضافة صور نجمة على سبيل المثال لا اريد ان يتم تنفيذ الكود اتلابع للصورة لحدود النجمة (المساحة الخارجي).....
ارجوا مساعدتي في اقرب وقت....
وجزاكم الله خيراً .....
PRG of RPG
12-03-2004, 04:26 PM
السلام عليكم
همممممم ،،، هل تقصد الشفافية ..
لديك اربعة خيارات :
0- Native(Pure) VB
1- API وتحديداً BitBlt
2- DirectX7 or DirectX8 (صعب للمبتدأين)
3- المحركات المجانية (Revolution3D - AXDE::MF - TrueVision - 3DState)
على حسب نوع البرنامج والوضائف المستخدمة فيه يتم إستخدام واحد من الأنواع الثلاثة
وللأسف انت لم توضح كامل خصائص البرنامج ولكن ربما يكون النوع الثاني
لحسن الحظ لدي مثال قديم برمجته ليشرح BitBlt API Function تجده مع المرفق
على كل حال تستطيع العمل مع دوال VB فقط (VB Built in) حتى بدون دوال API
وهذا مثال على السريع يوضح كيف نتخلص من اللون الأبيض مثلاً
Private Sub Form_Load()
Dim I As Long, I2 As Long
Me.Show
For I = 0 To Picture1.Height - 1
For I2 = 0 To Picture1.Width - 1
If Picture1.Point(I2, I) <> RGB(255, 255, 255) Then Picture2.PSet (I2, I), Picture1.Point(I2, I)
Next I2
DoEvents
Next I
End Sub
بالتوفيق :)
الواحةالعذبة
12-03-2004, 05:49 PM
الله يجزاك خير PRG of RPG
هل هذي الطريقة تنفع لبرنامجي....!!
انا في برنامجي ابغى اضيف صور Gif مثلاً لو عندي صورة نجمه اضفتها للبرنامج و الخلفية لها شفافة راح تنضاف على شكل مربع!!
انا ابغى انفذ كود معين لو ضغط المستخدم على صورة النجمة نفسها بغض النظر على الخلفية الشفافة لان هذي المشكلة مأرقتني :31: ....
جزاك الله الجنة
PRG of RPG
12-03-2004, 06:04 PM
السلام عليكم
مرحباً :)
1- حمل صورة (بأي نسق)
2- إجعلها شفافة
3- ضع الشرط إذا نقر المستخدم داخل إطار المستقيل على لون لا يساوي اللون الشفاف نفذ الكود
هذه هي الخطوات المطلوبة )
PRG of RPG
12-03-2004, 06:16 PM
السلام عليكم
على فكرة دوال PictureBox بطيئة وأعني PSet و Point إستخدم دوال API لذلك (Set_Pixel و Get_Pixel ) ....... كحالة عامة وفي حالتنا الخاصة أنت تحتاج أما Point او Get_Pixel فقط
بالتوفيق :)
الواحةالعذبة
12-03-2004, 06:49 PM
الله يجزاك خير....
بس انا ما قدمره جربت دوال API
إستخدم دوال API لذلك (Set_Pixel و Get_Pixel ) ....... كحالة عامة وفي حالتنا الخاصة أنت تحتاج أما Point او Get_Pixel فقط
فكيف اتعامل معها؟!!
ممكن لو تكرمت توضحها بمثال؟؟؟؟
والله يجزيك الجنة
PRG of RPG
14-03-2004, 04:56 PM
السلام عليكم
مرحباً
الشرح في مثال في المرفق :)
الواحةالعذبة
14-03-2004, 08:12 PM
جزاك الله خير أقدّر لك تعاملك وإيثارك لوقتك في الرد فجعله الله في موازيين أعمالك تفرح به يوم القيامة اللهم آآآمين ... أدري شكلي مطولتها بس اصبر علينا مشروع تخرّج ويحتاج الى جهد من جميع النواحي ...
لكن المشكلة انه لعبتي فيها خلفية ملونه يعني صورة ...
وفوقها صور عبارة عن imagebox والصورة محفوظة عن طريق الفوتوشوب بامتداد gif مع مسح خلفيتها
بحيث تصبح شفافة وقد ارفقت أحدى الصور ، فعند الضغط على حدودها الشفافة يُنفّذ الإجراء الحدثي لها...
فكيف اجعل الصورة محدودة بحيث لاينفذ الا عند النقر عليها ؟؟ هذا أمر
>> استحملني شوي واكسب أجر ...:)
الأمر الآخر رأيت في الكود الذي وضعته استخدامك لدالة BitBlt وقد استخدمتها مع الـ pictureBox
سؤالي هل ينفع اني استخدمها مع الـ imageBox ، لأني اريد أخذ نسخة من الصورة و اذا كانت
هذه الدالة ما تنفع ، فكيف استطيع عمل نسخة من صورة موضوعه على imageBox
وبصراحه عندي اسئلة ؟؟
بس شكلي ثقّلت عليك ..
لكن اللي شجعني اسألك انك مبرمج ألعاب ومشروعي عبارة عن ألعاب ..
فإذا عندك امكانية لاستقبال اسئله منّي أعطني الضوء الأخضر ..
وإذا لم تستطع وخانك الوقت والظروف أعطني الضوء الأحمر حتى أتوقف عن طرح الأسئلة ؟؟
ولك جزيل الشكر و الإمتنان :)
PRG of RPG
15-03-2004, 05:11 PM
السلام عليكم
بالتأكيد أخي حياك الله أخي في أي وقت :)
للأسف أداة Image لا تدعم الخاصية Hdc بشكل مباشر لذا لا نستطيع إجراء العمليات عليها مباشرة .. عموماً تمتلك Image خاصيتين لا تمتلكها PictureBox بشكل مباشر :
1- Stretch ،، ونستطيع إستخدام StretchbBlt لجعل PictureBox تدعهما
2- الشفافية ،، أعتقد أن PictureBox لا تمتلك هذه الخاصية ونستطيع إستخدام دوال API لهذه العملية
معنى هذا الكلام أنه من الأفضل إستخدام Picture Box دائماً لجميع عمليات الصور
نسخ صورة موجوده في Image إلى PictureBox
Set Picture1 = image1
وهذا يعني في الحقيقة
Set Picture1.Picture = Image1.Picture
وتستطيع حفظ الصورة (bmp) من خلال كائن IPictureDisp (الموجود في كلا الأداتين بإسم Picture)
SavePicture Image1.Picture, xPath
في الواقع الموضوع تقريباً GDI - Graphics Device Interface
المثال بعد التعديل مع المرفق
بالتوفيق :)
الواحةالعذبة
16-03-2004, 07:14 PM
أخي لا أجد ما أكافئك به سوى الدعاء..
فجزاك الله جنات الفردوس الاعلى....آميـــــن
بقي لدي مشكلة -بسيطة بإذن الله- ..
وهي أن خلفية البرنامج لدي مضافة في picture box لاتظهر كاملة و لو قمت بتضبيطها وظهرت بشكل جيد تبقى غير ثابته لو نقلتها لجهاز آخر..
فهل هناك طريقة لأقوم بتثبيت صورة الخلفية للبرنامجعلما باني احتاج للتعامل معها في picture box .
انشاء الله تكون فهمت اللي ابغاه...
وجزاك الله خيرا.....
PRG of RPG
16-03-2004, 11:43 PM
السلام عليكم
مرحباً :)
للأسف لم افهم قصدك بالضبط ولكن إن كنت تعني
1- مكان ضهور الفورم
في نافذة الخصائص إختر الفورم ثم غير الخاصية StartUpPosition
2- دقة الشاشة (800×600) مثلاً ،،، نستطيع تغيير دقة الشاشة بإستخدام الAPI
Private Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwFlags As Long) As Long
... أرجوا ان تفصل أكثر :)
الواحةالعذبة
21-03-2004, 06:19 PM
الله يجزاك خير انا الحين طبقت نفس الطريقة اللي ارسلتها لي على برنامجي ( للأزرار) و ضبطت على صورة وحداه فقط !!
ولما اضفت صورة ثانية خرب كل شي؟!!!!!
فما العمل ؟
( علماً باني بحتاج اسوي الحركة على 30 صورة في البرنامج:06: !)
PRG of RPG
23-03-2004, 11:01 PM
السلام عليكم
آسف على التأخير ،،
تستطيع العمل على عدد مالا نهائي من الصور
وتستطيع العمل بطرق مختلفة وإنشاء Class خاصة بذلك
عموماً ،، وعلى كل حال ،، لقد قمت بإضافة صورة أضافية ... في المرفق
بالتوفيق :)
الواحةالعذبة
24-03-2004, 08:24 PM
الله يجزاك الجنه..... بحاول اطبقها واذا فيه مشاكل ما راح اقر و بسأل
الواحةالعذبة
01-04-2004, 09:05 AM
المشكلة السابقة والتي تحتاج الى تفصيل أكثر وهي قضية الفورم ::blackeye:
السؤال: اذا وضعت صورة على الفورم على طول عن طريق خصائصها ...
وكانت الصورة بحجم الفورم ومعمول لها تكبير بحجم الشاشة ...
المشكلة تكمن في ان الصورة تتناسب مع الفورم لكن تختلف اذا تغيّرت دقّة الشاشة (resilition)
يعني لو خذيت البروجكت وحطيته على جهاز ثاني فيه الدقّة تختلف ، راح يتغيّر شكل الفورم
ممكن تكبر الصورة وتصير أكبر من حجم الشاشة فثلاث أرباعها ما ينشاااف ...
فالسؤال الذي يطرح نفسه :
كيف اضبّط الصورة مع دقّة الشاشة بحيث لو نُقل المشروع على جهاز آخر المفروض انه الصورة تتناسب مع الدقة حتى تظهر الشاشة والصورة كاملة للمستخدم ...
وجزاك الله خيرا كثيييييييييييييييييرا ....
PRG of RPG
01-04-2004, 08:27 PM
السلام عليكم
أمامك طريقتين :
1- تغيير دقة الشاشة ... كما ذكرت لك سابقاً (وهذا الحل أسهل وأفضل برأيي )
2- جعل أبعاد الصورة = أبعاد الصورة * (الدقة الجديدة / دقة شاشة جهازك)
تحياتي :)
جميع حقوق برمجة vBulletin محفوظة ©2025 ,لدى مؤسسة Jelsoft المحدودة.
جميع المواضيع و المشاركات المطروحة من الاعضاء لا تعبر بالضرورة عن رأي أصحاب شبكة المنتدى .