PDA

View Full Version : فراخوانی فایل با پسوند Hlp در دلفی



SYNDROME
جمعه 21 اردیبهشت 1386, 19:59 عصر
با سلام
من در دلفی 7 کد زیر را برای فراخوانی فایلهای Hlpنوشته ام.


Application.HelpFile := 'd:\Help.hlp';
Application.HelpJump('Test');

حالا همین دستور را در 2006 می نویسم پیغام زیر نمایش داده می شود.

No Topic-based help System Installed

جستجو کردم ولی چیز قابل قبولی پیدا نکردم.
چرا؟؟؟؟؟؟:کف: :کف: :کف: :کف:

SYNDROME
شنبه 22 اردیبهشت 1386, 14:40 عصر
با سلام
آیا تا حالا کسی این کار رو نکرده.
به دادم برسید.

dkhatibi
شنبه 22 اردیبهشت 1386, 18:07 عصر
No Topic-based help System Installed
روش کلید F1 را بزن ببین راهنما چیز اضافه تری می گه یا نه!

ghabil
شنبه 22 اردیبهشت 1386, 20:04 عصر
RegEdit رو اجرا کن برو سراغ کلید :
HKEY_CLASSES_ROOT\AppID\dexplore.exe.
AppID value {E722CD58-9D56-4A4B-9395-8456FE843B71}
اسمش رو عوض کن بزار یم چیزی مثل _AppID
حالا یکدونه AppID اضافه کن با این مقدار:
{4A79114D-19E4-11d3-B86B-00C04F79F802}

ببین راه میفته ؟

SYNDROME
شنبه 22 اردیبهشت 1386, 20:35 عصر
با سلام

RegEdit رو اجرا کن برو سراغ کلید :
HKEY_CLASSES_ROOT\AppID\dexplore.exe.
AppID value {E722CD58-9D56-4A4B-9395-8456FE843B71}
اسمش رو عوض کن بزار یم چیزی مثل _AppID
حالا یکدونه AppID اضافه کن با این مقدار:
{4A79114D-19E4-11d3-B86B-00C04F79F802}

ببین راه میفته ؟
روشی را که گفتید انجام دادم.
APPID->APPID_
سپس
New->Key
و در هنگام نامگذاری می گوید این نام وجود دارد.
تست هم کردم مشکل حل نشد.
باز هم منتظر راهنمایی شما دوستان هستم.
البته این مشکل در دلفی 2005 وجود ندارد.(جالبه)

ghabil
شنبه 22 اردیبهشت 1386, 22:31 عصر
من گفتم توی این آدرس APPID رو بکن _AppID یا اصلا بکن APPID2 بعد یک مقدار استرینگی اضافه کن با آیدی 4A79114D-19E4-11d3-B86B-00C04F79F802 ، این کعه نباید بگه اسمش وجود داره ؛ با انجام این کار باید مشکلت توی دلفی 2005 و 6 حل بشه!

SYNDROME
یک شنبه 23 اردیبهشت 1386, 21:14 عصر
با سلام
من کارهای زیر را انجام دادم(در عکس مشخص است).مشکل حل نشد.اگر اشتباه انجام دادم بنده را راهنمایی کنید.
واقعا شرمنده شما می شوم.:خجالت: :خجالت: :خجالت: :خجالت:

SYNDROME
یک شنبه 23 اردیبهشت 1386, 21:21 عصر
با سلام
شرمنده نتونستم عکس رو بگذارم ولی dexplore.exe را به صورت زیر درست کردم.
APPID : 4A79114D-19E4-11d3-B86B-00C04F79F802
AppID2 : E722CD58-9D56-4A4B-9395-8456FE843B71
لطف کنید و راهنمایی کنید.

ghabil
یک شنبه 23 اردیبهشت 1386, 22:31 عصر
اینا درسته اگر {}ها رو هم دوره اینا گذاشتی و جواب نگرفتی دیگه شرمنده من نمیدونم

m-khorsandi
دوشنبه 24 اردیبهشت 1386, 15:09 عصر
دلفی 2006 اولین نسخه‌ی دلفی هست که به صورت built-in از WinHelp و HTML Help پشتیبانی میکنه، منظور از WinHelp فایلی با قالب hlp و HTML Help فایلی با قالب chm هست.
فایل اصلی پروژه‌ات رو باز کن و اگه از WinHelp استفاده میکنی، یونیت WinHelpViewer و اگه از HTML Help استفاده میکنی، یونیت HTMLHelpViewer رو به لیست یونیتها اضافه کن و در جای مورد نظرت، کد زیر رو تست کن :



Application.HelpFile := 'c:\help.hlp';
Application.HelpCommand(HELP_FINDER, 0);

anubis_ir
دوشنبه 24 اردیبهشت 1386, 16:00 عصر
فایلهای hlp در ویستا منسوخ اعلام شده‌اند. بنابراین بهتر است از chm ها استفاده کنید.

SYNDROME
سه شنبه 25 اردیبهشت 1386, 16:28 عصر
با سالم




Application.HelpFile := 'c:\help.hlp';
Application.HelpCommand(HELP_FINDER, 0);

با تشکر از آقا محمد گل و Ghabil عزیز.
مشکلم تا حدودی حل شد ولی با این کار فقط منوی اصلی hELP من می آید و دستور Jump برای فراخوانی Topic بخصوص هیچ عملی را انجام نمی دهد.(Error هم نمی دهد)
برای فراخوانی یک تاپیک باید چکار کنم؟

SYNDROME
سه شنبه 25 اردیبهشت 1386, 16:30 عصر
با سالم

فایلهای hlp در ویستا منسوخ اعلام شده‌اند. بنابراین بهتر است از chm ها استفاده کنید.
نحوه فراخوانی Chm ها به چه صورت است؟

SYNDROME
سه شنبه 25 اردیبهشت 1386, 21:21 عصر
با سلام
اولاً شرمنده که تکراری ایجاد شد مشکل از سیستم بود.:خجالت: :خجالت: :خجالت: :خجالت:
کسی راه حلی به ذهنش نمی رسم.کارم بدجوری گیره.:گیج: :گیج: :گیج: :گیج:
با تشکر.

m-khorsandi
چهارشنبه 26 اردیبهشت 1386, 07:56 صبح
دو تا فایلی که ضمیمه کردم برای استفاده‌ی CHM هست.

SYNDROME
چهارشنبه 26 اردیبهشت 1386, 17:58 عصر
با اسلام
آقا محمد باز هم دستت درد نکنه.:خجالت:
یک سوال دیگر :لبخند:
روشی که گفتید کاملاً درست کار می کرد و می خواستم بدونم چطور می توانم Topic های یک Hlp را فراخوانی کنم.(یک Topic خاص)
با تشکر:قلب:
منتطر راهنمایی شما هستم.

SYNDROME
پنج شنبه 27 اردیبهشت 1386, 14:22 عصر
با سلام

با اسلام
روشی که بتوانم Topic های یک Hlp را فراخوانی کنم.(یک Topic خاص)
با تشکر:قلب:
منتطر راهنمایی شما هستم.
کسی می تونه کمکم کنه.واقعاً عجله دارم.:گیج: :گیج: :گیج: :گیج: :گیج:
با تشکر.

m-khorsandi
پنج شنبه 27 اردیبهشت 1386, 16:09 عصر
این مشکل توسط Peter Below به QC بورلند گزارش (http://qc.borland.com/wc/qcmain.aspx?d=34763) شده،
منظورم بازنشدن Topic یک فایل راهنما با قالب Hlp هست.
گزارش‌دهنده هم راه حل رو بیان کرده، در واقع مشکل به خاطر مقدار نادرست بازگشتی از تابع UnderstandsTopic هست. شما میتونی یونیت WinHelpViewer رو بازکنی و تابع UnderstandsTopic رو پیدا کنی و متن موجود رو کامنت و کد زیر رو جایگزین کنی‌ و نتیجه رو ببینی:


function TWinHelpViewer.UnderstandsTopic(const Topic: String): Boolean;
begin
{ after setting the defaults, if there's a Tester, ask it. }
if Assigned(WinHelpTester) then
Result := WinHelpTester.CanShowTopic(Topic, HelpFile(''))
else
Result := true;
end;

SYNDROME
پنج شنبه 27 اردیبهشت 1386, 18:35 عصر
با سلام




function TWinHelpViewer.UnderstandsTopic(const Topic: String): Boolean;
begin
{ after setting the defaults, if there's a Tester, ask it. }
if Assigned(WinHelpTester) then
Result := WinHelpTester.CanShowTopic(Topic, HelpFile(''))
else
Result := true;
end;

آقا محمد انجام دادم.
الان برای فراخوانی یک تاپیک از دستور زیر استفاده می کنم


Application.HelpSystem.ShowTopicHelp('Ali','c:\hel p01.hlp');

هیچ کاری انجام نمی دهد.
دستور زیر را می نویسم.


Application.HelpSystem.ShowHelp('علی' , 'c:\help01.hlp');

جواب می دهد.
ali : نام تاپیک است.
علی : نام کلمه کلیدی در همان تاپیک است.
دومی درست کار می کند.
آیا شما راه حل دیگری سراغ دارید تا من نام تاپیک را بدهم نه کلمه کلیدی تاپیک را.
با تشکر

m-khorsandi
پنج شنبه 27 اردیبهشت 1386, 18:50 عصر
اگه تابع UnderstandsTopic را تغییر دادی، سعی کن کامپایل هم بشه، یعنی مسیر یونیت رو به Library Path اضافه کن، مثلا: D:\Program Files\CodeGear\RAD Studio\5.0\source\Win32\vcl
بعد از اینکه مسیر رو اضافه کردی، یکبار پروژه‌ات رو Build کن تا اون یونیت هم کامپایل بشه، بعد از همون تابع قبلی، یعنی HelpJump استفاده کن، نه HelpSystem.ShowHelp .

SYNDROME
پنج شنبه 27 اردیبهشت 1386, 20:49 عصر
با تشکر
ای ول ، ای ول ، داش محمدو ای ول.:لبخند:
آقا دستت درد نکنه امروز خیلی روز خوبی برام بود(به لطف شما).
باتشکر.