joooje
یک شنبه 06 آذر 1390, 18:21 عصر
سلام به همه
من با کد زیر دارم یه برنامه رو تو برنامم باز میکنم
var
H : Cardinal;
begin
Form2.Show;
ShellExecute(Handle, nil, PChar('C:\Windows\notepad.exe'), nil, nil, SW_HIDE);
H := FindWindow(nil, PChar('Untitled - Notepad'));
Windows.SetParent(H, Form2.Handle);
ShowWindow(H, SW_SHOWMAXIMIZED);
end;
خب این کد برای Notepad درست جواب میده
ولی برای بعضی برنامه ها مشکل داره
مشکلشم اینه که وقتی دستور میدم که برنامه رو باز کنه ، برنامه با تاخیر باز میشه و برنامه من دیگه پنجره ی اون رو پیدا نمیکنه که parentش کنه
حالا من میخوام یه حلقه بسازم و قبل از دستور parent چک کنم که آیا این پنجره وجود داره یا نه
و هر وقت باز شد ، دستور parent بدم
ولی نمیدونم چطور میشه تو اجرای یک حلقه مکث زمانی ایجاد کرد
یعنی برای اجرای هر بار حلقه مثلا 1 ثانیه مکث کنه
البته نمی خوام از تایمر استفاده کنم
و یا اگر راه دیگه ای برای این کار هست راهنمایی کنید
و یه سوال دیگه
آیا میشه کاری کرد که یه حلقه تا بینهایت تکرار بشه مگر اینکه خودمون اون رو متوقف کنیم
و کدی که بشه یه حلقه رو متوقف کرد وجود داره؟
ممنون از راهنماییتون
البته جستجو هم کردم
یه نفر این کد رو پیشنهاد کرده بود
for i:= 1 to 100 do begin
if(i mod 5)<>0 then Continue;
d:= d + i;
end;
ولی به نظرم کد استانداردی نبود!!
کسی گفته بود به جای For از While استفاده کنید
و من اصلا نمیدونم While چی هست و نحوه کارش چطوره
اگه در مورد این کد هم (While) راهنمایی کنید ممنون میشم
من با کد زیر دارم یه برنامه رو تو برنامم باز میکنم
var
H : Cardinal;
begin
Form2.Show;
ShellExecute(Handle, nil, PChar('C:\Windows\notepad.exe'), nil, nil, SW_HIDE);
H := FindWindow(nil, PChar('Untitled - Notepad'));
Windows.SetParent(H, Form2.Handle);
ShowWindow(H, SW_SHOWMAXIMIZED);
end;
خب این کد برای Notepad درست جواب میده
ولی برای بعضی برنامه ها مشکل داره
مشکلشم اینه که وقتی دستور میدم که برنامه رو باز کنه ، برنامه با تاخیر باز میشه و برنامه من دیگه پنجره ی اون رو پیدا نمیکنه که parentش کنه
حالا من میخوام یه حلقه بسازم و قبل از دستور parent چک کنم که آیا این پنجره وجود داره یا نه
و هر وقت باز شد ، دستور parent بدم
ولی نمیدونم چطور میشه تو اجرای یک حلقه مکث زمانی ایجاد کرد
یعنی برای اجرای هر بار حلقه مثلا 1 ثانیه مکث کنه
البته نمی خوام از تایمر استفاده کنم
و یا اگر راه دیگه ای برای این کار هست راهنمایی کنید
و یه سوال دیگه
آیا میشه کاری کرد که یه حلقه تا بینهایت تکرار بشه مگر اینکه خودمون اون رو متوقف کنیم
و کدی که بشه یه حلقه رو متوقف کرد وجود داره؟
ممنون از راهنماییتون
البته جستجو هم کردم
یه نفر این کد رو پیشنهاد کرده بود
for i:= 1 to 100 do begin
if(i mod 5)<>0 then Continue;
d:= d + i;
end;
ولی به نظرم کد استانداردی نبود!!
کسی گفته بود به جای For از While استفاده کنید
و من اصلا نمیدونم While چی هست و نحوه کارش چطوره
اگه در مورد این کد هم (While) راهنمایی کنید ممنون میشم