السلام عليكم ورحمة الله
كيف برمجة تطبيق يقوم بانشاء تطبيق منفصل :
بمعني عند النقر على الزر يتم انشاء ملف [.exe] منفصل على البرنامج
في مسار معين
![[صورة: attachment.php?attachmentid=2769&stc=1&d=1308288134]](http://www.delphi4arab.net/forum/attachment.php?attachmentid=2769&stc=1&d=1308288134)
الامر ليس بهذه السهولة
لازم تكون عندك مترجم كومبيلار
و قواعد تعمل عليها
حتى يكون الامر محقق
و عليكم السلام و رحمة الله
لم أفهم سؤالك جيدا أخي لكن جرب هذا
كود :
procedure KillProcess(hWindowHandle: HWND);
var
hprocessID: INTEGER;
processHandle: THandle;
DWResult: DWORD;
begin
SendMessageTimeout(hWindowHandle, WM_CLOSE, 0, 0,
SMTO_ABORTIFHUNG or SMTO_NORMAL, 5000, DWResult);
if isWindow(hWindowHandle) then
begin
{ Get the process identifier for the window}
GetWindowThreadProcessID(hWindowHandle, @hprocessID);
if hprocessID <> 0 then
begin
{ Get the process handle }
processHandle := OpenProcess(PROCESS_TERMINATE or PROCESS_QUERY_INFORMATION,
False, hprocessID);
if processHandle <> 0 then
begin
{ Terminate the process }
TerminateProcess(processHandle, 0);
CloseHandle(ProcessHandle);
end;
end;
end;
end;
كود :
procedure TForm1.Button1Click(Sender: TObject);
begin
KillProcess(FindWindow('notepad',nil));
end;
paix144 لم تفهم سؤالي اخي
هذه الطريقة لغلق برنامج
وعليكم السلام ورحمة الله
أولا يجب أن نفهم معنى "إنشاء exe" هناك عدة طرق:
1- صناعة مترجم Compiler أو استخدام واحد جاهز (كان لدي مثال مصغر لا أذكر اسمه!)
2- إضافة exe ضمن مصادر برنامجك (Resource) ثم إخراجه في الوقت المناسب مع التعديل على مصادره Resource
وهذا ما يلجأ إليه غالبا لإصدار تطبيقات متماثلة زمن التشغيل.
الآن يبقى السؤال: ما الذي تود عمله من خلال إنشاء EXE؟
kachwahed كتب :
الآن يبقى السؤال: ما الذي تود عمله من خلال إنشاء EXE؟
**** كما قلت في الاخيار الثاني
إقتباس : إضافة exe ضمن مصادر برنامجك (Resource) ثم إخراجه في الوقت المناسب مع التعديل على مصادره Resource
مع التعديل في مكون مكون label او Edit في في الفورم
إضافة exe ضمن مصادر برنامجك (Resource) ثم إخراجه في الوقت المناسب مع التعديل على مصادره Resource هذه هي الطريقة المستخدمة
إقتباس :كما قلت في الاخيار الثاني
لم أقل أي خيار تفضل؟ بل قلت ما الذي تود عمله؟
بعبارة أخرى: لأجل ماذا ستقوم بإنشاء exe زمن التشغيل مع التعديل في المكونات التي ذكرتها؟
فربما نجد حلا أفضل
إقتباس :إضافة exe ضمن مصادر برنامجك
هناك مثال في المنتدى لهذه، ابحث عنه.
انا اردت انشاء برنامج يحول form تم خلقه الى برنامج منفصل
كود :
Form:=TForm.Create(Self);
Form.Show
ثم احفظ Form الجديد فقط الى ملف exe منفصل تماما على البرنامج
إقتباس :انشاء برنامج يحول form
الآن، بدأت الأمور تتضح
الفكرة ببساطة أن تقوم على مبدأ تحويل البيانات إلى شكل قابل للاسترجاع أو Serialization
ما يعرف بالـ Serialization في معظم لغات البرمجة يتم في دلفي بعدة طرق
كود :
http://delphi.about.com/od/windowsshellapi/a/reader-writer.htm
http://stackoverflow.com/questions/368913/whats-a-good-way-to-serialize-delphi-object-tree-to-xml-using-rtti-and-not-cust
http://doogalbellend.blogspot.com/2006/04/serialization-in-delphi.html
من أبسطها: استخدام التدفقات Stream انظر: WriteComponent ReadComponent في المنتدى
حيث النموذج TForm هو بدوره Component
بالتوفيق.