PDA

View Full Version : کمک در مورد کامپایل نرم افزار ... در دلفی 6



parniant
یک شنبه 01 دی 1387, 21:17 عصر
با سلام تو برنامم که با دلفی است از یک نرم افزار استفاده کنم مثل help and manual و با نوشتن دستور زیر یکی از فایل هایی که توسط این نرم افزار درست کرده ام رو اجرا می کنم اگه بخوام برنامه ام رو اجرایی کنم و به کامپیوتر دیگری انتقال بدم و بخوام برنامم رو در اون اجرا کنم که نرم افزار مورد نظر در اون نصب نشده باشه چطور می تونم این عمل رو انجام بدم و در حقیقت در کامپیوتر مقابل نیاز به نصب برنامه مورد نظر نباشه



ShellExecute(Handle,NIL,PChar('E:\h\htmlhelp\htmlh elp.chm'), nil,nil,SW_SHOWNORMAL);


من برای اجرایی کردن برنامم از install shield استفاده می کنم آیا باید درقسمتی از اون این برنامه رو هم بار کنم یا نه ؟

merced
یک شنبه 01 دی 1387, 21:33 عصر
فايل هاي CHM توي تمام ويندوز ها بدون نياز به نصب چيز ديگه اي باز ميشن

parniant
یک شنبه 01 دی 1387, 22:14 عصر
اما الان من که help and maual رو استفاده می کنم و help ساختم پسوند آن chm است آیا به نظر شما دستوری که در پست 1 نوشته شده بدون نرم افزار help... اجرا می شه ؟

vcldeveloper
دوشنبه 02 دی 1387, 00:04 صبح
اما الان من که help and maual رو استفاده می کنم و help ساختم پسوند آن chm است آیا به نظر شما دستوری که در پست 1 نوشته شده بدون نرم افزار help... اجرا می شه ؟
بله، مشکلی از نظر اجرا نداره، ولی اگر منظورتون اینه که چطور این Help را حساس به موقعیت کاربر بکنید؛ یعنی کاربر در هر قسمتی از برنامه بود، صفحه Help مربوط به همان قسمت باز بشه، می تونید در تاپیک هایی که در این سایت درباره ساخت Help بحث کردند، عبارت FAR را جستجو کنید، یا به سایت ابزار ساخت راهنمای FAR برید، و در بخش دلفی سایت، یونیت های پشتیبانی از CHM مربوط به دلفی را رایگان دانلود کنید، و توضیحاتشان را هم مطالعه کنید.

parniant
دوشنبه 02 دی 1387, 07:29 صبح
ببخشید می شه کاملتر توضیح بدید الان من باید در کامپیوتر مقصد که می خوام برنامم رو آنجا اجرا کنم این نونیت ها رو نصب کنم یا فقط در کامپیوتر خودم دانلود کنم کافیه
و آیا در دلفی نیاز به دستور خاصی برای اینکه آن فایل chm باز بشه داره یا نه ؟
چون همونطور که فهمیدید الان اون فایل chm رو در کامپیوتر خودم باز می کنه البته همونطور که در پست 1 هم می بینید من آدرس درایو در کامپیوترم دادم و اون هم باز می شه اما در کامپیوتر دیگه ای باید چه آدرسی بدم ؟
و در مورد آنچه گفتید search کردم اما یا من بلد نیستم یا نمی دونم چی باید دانلود کنم ؟

vcldeveloper
دوشنبه 02 دی 1387, 16:47 عصر
ببخشید می شه کاملتر توضیح بدید الان من باید در کامپیوتر مقصد که می خوام برنامم رو آنجا اجرا کنم این نونیت ها رو نصب کنم یا فقط در کامپیوتر خودم دانلود کنم کافیه
باید مشخص کنید که منظورتان از نمایش فایل CHM چی هست. اگر فقط می خواید یک فایل راهنما را باز کنید، همون ShellExecute کفایت میکنه. فایل CHM هم برای باز شدن در ویندوز نیاز به IE 4.0 یا بالاتر داره که روی همه ویندوز ها نصب هست.
اما اگر می خواید Help برنامه شما حساس به محیط باشه، یعنی کاربر هر جا که درخواست راهنما کرد، صفحه مرتبط با همان کار بهش نمایش داده بشه، مثل محیط دلفی که هر جا F1 بزنید، صفحه مروبط به هما قسمت در راهنمای دلفی باز میشه، اون وقت باید یکسری کد در برنامه خودتان بنویسید تا دلفی فایل CHM شما را به عنوان فایل Help پروژه بشناسد، و صفحه مورد نظر را باز کند. برای این کار، در نسخه های دلفی قبل از دلفی 2007، دلفی خودش راه حلی ارائه نمی کرد، ولی شرکت FAR یک یونیت مجانی ارائه کرده بود که با استفاده از کدهای آن، قابلیت مورد نظر به برنامه شما اضافه می شد. در دلفی 2007 به بعد ظاهرا خودِ دلفی هم این قابلیت را ارائه میکنه، ولی همچنان می تونید از همون یونیت FAR هم استفاده کنید. پس او یونیت ها فقط مربوط به کامپیوتر خودتان هستند، و نیازی نیست آنها را به کاربر تحویل بدید. کاربر فقط به فایل EXE و فایل CHM شما نیاز داره.


چون همونطور که فهمیدید الان اون فایل chm رو در کامپیوتر خودم باز می کنه البته همونطور که در پست 1 هم می بینید من آدرس درایو در کامپیوترم دادم و اون هم باز می شه اما در کامپیوتر دیگه ای باید چه آدرسی بدم ؟
باید از آدرس های Relative استفاده کنید، مثلا:

HelpPath := ExtractFilePath(Application.ExeName) + '\Help\MyHelp.chm';
و بجای آن آدرس، از متغیر HelpPath استفاده کنید.

vcldeveloper
دوشنبه 02 دی 1387, 16:51 عصر
اینم لینک اون یونیت مجانی:
http://helpware.net/delphi/index.html

parniant
دوشنبه 02 دی 1387, 19:58 عصر
با سلام به شما آقای کشاورز
به صفحه ای که گفتید رفتم ولی اینقدر فایل برای دانلود هست که نمی دونم کدومش رو دانلود کنم می شه کمک کنید
با تشکر

vcldeveloper
دوشنبه 02 دی 1387, 20:42 عصر
در اون صفحه کاملا توضیح داده شده که هر کدوم از اون لینک ها برای چه کاری هستند، مثلا یکیش برای برطرف کردن یک باگ در دلفی 6 هست، یکیش مربوط به C++ Builder هست، چندتا مثال هستند، و... یکی هم دانلود خودِ Delphi HH Kit هست.
توضیحات صفحه را خواندید، یا فقط به لینک ها توجه کردید؟!
http://helpware.net/delphi/delphikit.zip

parniant
دوشنبه 02 دی 1387, 22:02 عصر
با سلام راستشو بخواید فقط به لینک ها نگاه کردم اتفاقا این رو هم دانلود کردم اما چون فایل اجرایی نداشت نمی دونستم باید این قطعات رو باید در برنامم بیارم یا چطور از اونها استفاده کنم ؟ می شه بگید باید با این قطعات کد چیکار کنم یعنی این ها رو هم رو با برنامم وصل کنم و برنامم رو اجرایی کنم ؟
چون من تو برنامم این دستورات رو نوشتم


var
helppath:string;
begin
HelpPath := ExtractFilePath(Application.ExeName) + 'h\htmlhelp.chm';
ShellExecute(Handle,NIL,PChar(HelpPath), nil,nil,SW_SHOWNORMAL);
end;

اما برنامه راهنمام که درمسیر چک کردم وجود داره اما اجرا نمی شه می شه بگید مشکل چیه ؟ البته نمی دونستم اون فایل که گذاشتید رو کجاش بذارم بنابراین از اون استفاده نکردم البته به همراه فایلهای pas و dpr هم که میارم هیچ فرقی نکرد و باز هم اجرا نشد

vcldeveloper
سه شنبه 03 دی 1387, 01:17 صبح
با سلام راستشو بخواید فقط به لینک ها نگاه کردم اتفاقا این رو هم دانلود کردم اما چون فایل اجرایی نداشت نمی دونستم باید این قطعات رو باید در برنامم بیارم یا چطور از اونها استفاده کنم ؟ می شه بگید باید با این قطعات کد چیکار کنم یعنی این ها رو هم رو با برنامم وصل کنم و برنامم رو اجرایی کنم ؟
درباره چگونگی استفاده از یک یونیت می تونید هر کتاب پاسکال یا دلفی که خواستید مطالعه کنید، چون از مطالب اولیه ایی هست که در همه این کتاب ها بهش پرداخته میشه. در ضمن، در همون سایت لینک چندتا مثال هم ارائه شده. همین فایل Zipایی هم که دانلود کردید، شامل یک فایل Text هست که چگونگی استفاده از اون کدها را توضیح میده.



ما برنامه راهنمام که درمسیر چک کردم وجود داره اما اجرا نمی شه می شه بگید مشکل چیه ؟ البته نمی دونستم اون فایل که گذاشتید رو کجاش بذارم بنابراین از اون استفاده نکردم البته به همراه فایلهای pas و dpr هم که میارم هیچ فرقی نکرد و باز هم اجرا نشد
مشکل اینه که یک حرف h قبل از \ گذاشتید.