PDA

View Full Version : اختصاص دادن یک آیکن به پسوند فایل مورد نظر



Restlesa
شنبه 10 اردیبهشت 1390, 08:12 صبح
سلام بر همگی دوستان عزیز
در حال نوشتن یه پروژه کار با فایل هستم که می خوام قابلیت باز کردن تمامی پسندهای rtf و txt و medoc رو تنها با برنامه ی خودم رو بهش اضافه کنم.
سورش رو پیدا کردم اما یه مشکلی دارم و اون این هستش که وقتی برنامه برای اولین بار اجرا میشه آکنی برنامه ام که همون آیکن فایل exe ام هستش روی تمامی پسوندهای ذکر شده می افته.
یعنی تمامی فایل های rtf,txt و medoc تنها یک آیکن می گیرن
چه طوری میتونم برای پسوندهام آیکن های مخصوص خدشونو بزارم ؟؟؟
و مشکل بعدی اینه که وقتی فایلی رو با برنامه ام باز کنم آدرس کامل فایل مربوطه در Caption فرمم می افته. چه طوری می تونم تنها نام فایل باز شده بدون پسوندش رو به Caption فرمم اختصاص بدم ؟؟؟
سرورس رو در قالب یه ماژول براتون ضمیمه می کنم.
خواهش می کنم راهنماییم کنید
خیلی خیلی فوریه
با تشکر

محسن واژدی
شنبه 10 اردیبهشت 1390, 14:07 عصر
سلام علیکم
ماژول را ویرایش کردم،(طبق موجود در تصویر زیر)
الآن میتوانید برای هر فرمت آیکون متفاوتی اختصاص دهید

موفق باشید

Restlesa
یک شنبه 11 اردیبهشت 1390, 12:13 عصر
ممنونم دوست عزیز
حالا چه طوری میتونم آیکن به فایل ذخیره شده رو اختصاص بدم و دیگری اینکه آیا این آیکنی که من برای فایل ذخیره شده اختصاص میدم بر روی همه ی پسوندهای txt و rft و medoc قرار میگیره یا نه ؟؟؟؟

محسن واژدی
یک شنبه 11 اردیبهشت 1390, 14:49 عصر
چه طوری میتونم آیکن به فایل ذخیره شده رو اختصاص بدم
متوجه بخش اول سوالتون نشدم اما فکر کنم که منظورتون این باشه که چگونه به فرمت انتخاب شده آیکونی را اختصاص دهیم؛ برای این دستور را بر اساس نمونه زیر بنویسید:
Call ConnectExtsToMe("txt", "c:\my icon.ico")


آیا این آیکنی که من برای فایل ذخیره شده اختصاص میدم بر روی همه ی پسوندهای txt و rft و medoc قرار میگیره یا نه ؟؟؟؟

بله در این ویرایش آخری میتوانید به هر فرمت یک آیکون متفاوت اختصاص داد مثلا آیکون فایل های txt با rtf متفاوت باشد

موفق باشید

Restlesa
یک شنبه 11 اردیبهشت 1390, 18:37 عصر
متوجه بخش اول سوالتون نشدم اما فکر کنم که منظورتون این باشه که چگونه به فرمت انتخاب شده آیکونی را اختصاص دهیم؛ برای این دستور را بر اساس نمونه زیر بنویسید:
Call ConnectExtsToMe("txt", "c:\my icon.ico")

درسته دوست عزیز.منظورم دقیقا همینیه که فرمودید
ولی یک سوال تنها راه اختصاص دادن آیکن به فایل همین روشی است که مثال زدید ؟؟؟
منظورم اینه که باید حتما به صورت دستی آدرس آیکن مورد نظرمو به فایل مورد نظر اختصاص بدم ؟؟؟



بله در این ویرایش آخری میتوانید به هر فرمت یک آیکون متفاوت اختصاص داد مثلا آیکون فایل های txt با rtf متفاوت باشد
در این باره هم میشه بگی باید چی کار کنم ؟؟؟

Mr'Jamshidy
یک شنبه 11 اردیبهشت 1390, 21:38 عصر
درسته دوست عزیز.منظورم دقیقا همینیه که فرمودید
ولی یک سوال تنها راه اختصاص دادن آیکن به فایل همین روشی است که مثال زدید ؟؟؟
منظورم اینه که باید حتما به صورت دستی آدرس آیکن مورد نظرمو به فایل مورد نظر اختصاص بدم ؟؟؟


در این باره هم میشه بگی باید چی کار کنم ؟؟؟

منظورتون از دستی چیه؟ یعنی این که آدرش از پیش تعیین شده باشه؟ اگر درست فهمیده باشم اینطوری که شما میگید اگر آدرس آیکان عوض بشه دیگه آیکان نمایش داده نمیشه

بنظر من بهتره کد رو اینطوری استفاده کنی ((اگر درست فهمیده باشم!!))

ConnectExtsToMe("txt", App.Path & "\" & "MyIcon.ico")
یا
ConnectExtsToMe("txt", App.Path & "\" & App.Exename & ".exe, 1")

محسن واژدی
یک شنبه 11 اردیبهشت 1390, 23:26 عصر
ولی یک سوال تنها راه اختصاص دادن آیکن به فایل همین روشی است که مثال زدید ؟؟؟
منظورم اینه که باید حتما به صورت دستی آدرس آیکن مورد نظرمو به فایل مورد نظر اختصاص بدم ؟؟؟


نه، لازم نیست آدرس ثابت تعریف کنین در واقع وارد کردن یک آدرس ثابت بیشتر موارد غیراستاندارد است چه بسا که کاربر مکان برنامه شما را تغییر دهد که در این صورت آیکون های اختصاص داده شده غیرفعال خواهد شد
همانگونه که آقای Mr'Jamshidy (http://barnamenevis.org/member.php?43330-Mr-Jamshidy) نمونه اش را نوشتن از دستور نمونه زیر استفاده کنین:

ConnectExtsToMe("txt", App.Path & "\" & "MyIcon.ico")





بله در این ویرایش آخری میتوانید به هر فرمت یک آیکون متفاوت اختصاص داد مثلا آیکون فایل های txt با rtf متفاوت باشد


در این باره هم میشه بگی باید چی کار کنم ؟؟؟


[/QUOTE]

مثلا" میتوانید به فایل های txt یک آیکون دفترچه سبز رنگ و برای فایل های rtf نیز یک آیکون آبی اختصاص دهید







بنظر من بهتره کد رو اینطوری استفاده کنی ((اگر درست فهمیده باشم!!))


ConnectExtsToMe("txt", App.Path & "\" & "MyIcon.ico")

یا

[VB]ConnectExtsToMe("txt", App.Path & "\" & App.Exename & ".exe, 1")

خصوصا" روش دوم که بسیاری از برنامه ها از آن بهره میبرند، کافیست آیکون های مورد نظرتون را ریسورس کنین سپس با شماره ایندکس آنها را به فرمت مورد نظر اختصاص دهید

موفق باشید

Restlesa
دوشنبه 12 اردیبهشت 1390, 01:03 صبح
کدی رو که برام گذاشتین رو به پروژه ام اضافه کردم اما موقع اجرا در قسمت Sub Main به دستور زیر ایراد میگیره و خطا میده

ConnectExtsToMe("txt", App.Path & "\" & "MyIcon.ico")

عکس خطا رو هم برات ضمیمه کردم

محسن واژدی
دوشنبه 12 اردیبهشت 1390, 08:57 صبح
سلام علیکم

تست کردم مشکلیپیش نیامد

یک نمونه گذاشته ام در زیر، بررسی کنید انشاء درسته

موفق باشید

Restlesa
دوشنبه 12 اردیبهشت 1390, 11:38 صبح
ممنونم دوست عزیز خطای ایجاد شده برطرف شد
حال یه سوال دیگه هم دارم که اگه به پست 1 توجه کنی متوجه میشی
خودم هر کاری کردم نشد که نشد ممنونت میشم این یدونه مشکلمم رو حل کنی

محسن واژدی
دوشنبه 12 اردیبهشت 1390, 12:11 عصر
سلام علیکم
فکر کنم مشکلتون در دریافت نام فایل بدون پسوند از یک مسیر بود، از کد زیر استفاده کنید:
Public Function GetOnlyFileName$(FilePth$)
On Error Resume Next
FilePth$ = Trim(FilePth$)
GetOnlyFileName$ = Mid$(FilePth$, InStrRev(FilePth$, "\") + 1)
GetOnlyFileName$ = Left(GetOnlyFileName$, InStrRev(GetOnlyFileName$, ".") - 1)
End Function

موفق باشید

Mr'Jamshidy
دوشنبه 12 اردیبهشت 1390, 17:18 عصر
یک روش دیگه هم هست البته با اجازه اساتید

تو این روش باید حتما فایل وجود داشته باشه


Function GetFileNameOnly(Path As String) As String
Dim FName As String
FName = Trim$(Dir$(Path))
If Not FName = "" Then
GetFileNameOnly = FName
Else
GetFileNameOnly = "File Not Exists"
End If
End Function
البته میتونی به جای


If Not FName = "" Then
GetFileNameOnly = FName
Else
GetFileNameOnly = "File Not Exists"
End If

کد رو کمتر کنی و فقط بنویسی


GetFileNameOnly = FName

Restlesa
دوشنبه 12 اردیبهشت 1390, 21:07 عصر
اازتون ممنونم
حال فقط یه درخواست دیگه ازتون داشتم و اونم اینه که آیا می تونید فایل ضمیمه شده در پست 9 رو به زبان دلفی تبدیلش کنید ؟؟؟؟
خودم می خواستم تو قسمت برنامه نویسی دلفی تاپیکی در این باره ایجاد کنم اما نمی دونم چرا اجازه زدن پست در اونجا رو نداشتم
اگه این یه دونه درخواست منو انجام بدین یک دنیا ممنونتون میشم

Mr'Jamshidy
سه شنبه 13 اردیبهشت 1390, 13:18 عصر
اگه میتونستم حتما این کار رو برات انجام میدادم اما متاسفانه کوچکترین چیزی از دلفی بلد نیستم همین چند روز پیش تود دلفی نصب کردم حتی نتونستم توش یک پروژه ایجاد کنم

موفق باشی