PDA

View Full Version : یه مشکل در دخیره در دیتابیس



vb_nima
پنج شنبه 06 اردیبهشت 1386, 21:18 عصر
با سلام
برنامه من یه سری آیکون را از list view گرفته و در دیتابیس به روش appendChunk ذخیره می کنه.
بعد که خواست این آیکونها را بازیابی کنه اون قسمتهایی که باید ترانسپارنس (بی رنگ) باشد به صورت سیاه است؟؟
لطفا دوستان یه کمکی کنید.
تنظیم خاصی باید روی Image list که به list view متصل است انجام بدم.

‍Peter Norton
پنج شنبه 06 اردیبهشت 1386, 21:26 عصر
اگه می تونی کدی رو که باهاش Icon را می خوانی و نمایش می دهی درج کن.

vb_nima
پنج شنبه 06 اردیبهشت 1386, 21:35 عصر
آیکون را با همون روش getChunk از دیتابیس میگیرم و در فایل temp.ico با همون متد put قرار میدم . بعدش با loadpicture فایل temp.ico را داخل پیکچر باکس باز میکنم.
فایل temp.ico را از داخل my computer هم که باز میکنم بازم اطراف آیکون سیاهه.

‍Peter Norton
پنج شنبه 06 اردیبهشت 1386, 22:06 عصر
به احتمال زیاد آیکونهات TrueColor هستن یا از متد جدید XP در اونها استفاده شده. سعی کن تعداد رنگ آیکونها رو به 256 تغییر بدی ببینی فرقی می کنه یا نه.
اگه نشد فیلد رو مسقیماً به یه PictureBox متصل (Bind) کن ببین اونجا هم خرابه؟
ولی حدس خود من تعداد رنگها هست.

vb_nima
پنج شنبه 06 اردیبهشت 1386, 22:19 عصر
ببینید راحتر شد یه کم مشکلم مثل اینکه از تابع savepicture که برای ذخیره عکس در دیتابیس استفاده می کنم.
شما این برنامه را اجرا کنید و کلید save را بزنید.
بعدش تو پوشه برنامه فایل temp.ico را نگاه کنید.
چرا اینطوری میشه.
من چه کار کنم. که اینطوری نشه .

CodeMasterX
پنج شنبه 06 اردیبهشت 1386, 23:47 عصر
آهان حالا شد،خودت جواب خودت رو دادی!
اگر فایل های تصویری رو با SavePicture ذخیره کنی این مشکل پیش میاد چون رنگ بندی فایل ها به هم میریزه.به جای استفاده از این تابع از روی فایل اصلی داده ها رو بخون و اطلاعات باینری رو توی دیتابیس ذخیره کن.

vb_nima
جمعه 07 اردیبهشت 1386, 08:39 صبح
نمیشه آخه من آیکونها را از فایلها جدا میکنم
ExtractAssociated
شاید یه روش دیگر برای save باشه ؟لطفا کمک کنید

CodeMasterX
جمعه 07 اردیبهشت 1386, 15:24 عصر
اگه شما آیکون ها رو از فایل های اجرایی استخراج میکنی این مشکل همواره وجود خواهد داشت دلیلش هم خیلی مشخص نیست،مربوط به الگوریتم استخراج آیکون و نمایش اون توی خود وی بی میشه.من این کار رو مدت ها است که انجام میدم و این مشکل همیشه برام بوده.

vb_nima
جمعه 07 اردیبهشت 1386, 18:45 عصر
خودم یه راه پیدا کردم.
تصویر را به همون صورت ذخیره می کنیم . به همون شکل که اطرافش سیاه میمونه.
بعد از یک کنترل imagelist استفاده میکنیمک
فایل تصویر را در یک picturebox باز میکنیم همونطور که ملاحظه میشه اطرافش سیاه است./
حالا تصویر را با استفاده از متد Picture1.image در imagelist قرار بدید.
حالا



imagelist1.maskColor=vbTransparnet
imagelist1.useMaskColor=True
حالا اگر از این تصاویر در listview استفاده کنیم قسمت سیاه حذف میشه.
اگر هم بخواهیم در pictureBox استفاده کنیم باید از متد زیر استفاده کنیم



picture1.picture=imagelist1.listimage(1).extractIc on
مشکلم اینطوری حل میشه. ولی اگر کسی نشون میداد چطوری یه آیکون را ذخیره کینم خوب بود.

CodeMasterX
شنبه 08 اردیبهشت 1386, 01:29 صبح
در VB6 ذخیره آیکن ها با متد های مرسوم این مشکلات رو همواره به همراه خواهد داشت.
همین زاهش که شما خودت پیدا کردی جوابگو هست.