بسم الله الرحمن الرحیم
دوستان سلام
ساده ترین کدی که می توان برای این برنامه نوشت چیست؟
متشکرم
بسم الله الرحمن الرحیم
دوستان سلام
ساده ترین کدی که می توان برای این برنامه نوشت چیست؟
متشکرم
برنامه چی کار میکنه ؟
مثل اینکه در برنامه از تایمر استفاده شده ، با اجرای برنامه در ویندوز 7 نسخه 64 بیت بعد از 2 ثانیه برنامه فریز و بسته میشه .
دقیقا نفهمیدم برنامه چیکار می کنه، ولی اگه منظور Caption متحرک و بقیه مسائل ظاهریه:
بسم الله الرحمن الرحیم
دوست عزیز سلام
همانطور که مشاهده می کنید لیستی از درایوهای کامپیوتر شما شناسایی شده و با کلیک روی نام هر درایو بلافاصله درایو مورد نظر باز می شود.
من ساده ترین کد را برای این کار می خواستم
متشکرم
روی سیستم من بعد از کلیک روی موارد لیست هیچ اتفاقی نمی افته، ولی تو شرکت چک کردم همونطور که گفتید explorer باز می شه! هر دو تا سیستم هم xp.همانطور که مشاهده می کنید لیستی از درایوهای کامپیوتر شما شناسایی شده و با کلیک روی نام هر درایو بلافاصله درایو مورد نظر باز می شود.
به هر صورت تغییر مد نظر رو دادم:
سلام....
میشه گفت یکی از ساده ترین برنامه هایی که میتوان نوشت اینه چون سر هم 4..5 خط کد بیشتر لازم نداره...
ابتدا در بخش uses .... shellapi رو اضافه کنید سپس یک کامپونت Drivecombobox از تب Win 3.1 به فرم اضافه کنید و در رویداد Onkeypress کد زیر رو بنویسید
procedure TForm1.DriveComboBox1KeyPress(Sender: TObject; var Key: Char);
var s:string;
begin
if getasynckeystate(vk_Return)<> 0 then begin
s:=drivecombobox1.Drive+':\';
shellexecute(handle,'Open',pchar(s),nil,nil,SW_nor mal);
keybd_event(ord(VK_return),0,0,0);
form1.Show;
end;
end;
این از فایل ها که ضمیمه کردم...امیدوارم بتونه کمک کنه
آخرین ویرایش به وسیله majidbestgame : پنج شنبه 03 تیر 1389 در 23:38 عصر
سلام ! ممنون میشم اگه در مورد کار این کدها مختصری توضیح بدین !procedure TForm1.WMNCHitTest(var Msg: TWMNCHitTest);
begin
inherited;
if Msg.Result = htClient then Msg.Result := htCaption;
end;
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
SendMessage(Form1.Handle, WM_SYSCOMMAND, 61458, 0) ;
end;
سلام. ببخشید که کمی دیر ...سلام ! ممنون میشم اگه در مورد کار این کدها مختصری توضیح بدین !
procedure TForm1.WMNCHitTest(var Msg: TWMNCHitTest);
begin
inherited;
if Msg.Result = htClient then Msg.Result := htCaption;
end;
اگه توجه کرده باشین BorderStyle فرم به bsNone تغییر کرده که با عث می شه TitleBar فرم حذف بشه (تا خودمون بصورت متحرک شبیه سازیش کنیم). توی این بخش می خواهیم کاری کنیم با Drag کردن روی فرم عمل Move یا جابجایی انجام بشه. روال WMNCHitTest بعد از همه رویداد های mouse اجرا میشه و ما با بازنویسی این روال کاری می کنیم که ویندوز تصور کند که موس بجای محیط Client فرم روی TitleBar آن Drag (یا رویداد های دیگر) شده.
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
SendMessage(Form1.Handle, WM_SYSCOMMAND, 61458, 0) ;
end;
توی اینجا هم مسئله اینه که ما توی فرممون یه Panel به عنوان TitleBar قرار دادیم و باید کاری کنیم که Messageی که برای Panel اومده متوقف بشه و بجاش پیغامی برای فرم ارسال بشه.
منبع: http://delphi.about.com/od/windowssh...gnocaption.htm
موفق باشید
پ . ن: این دو بخش ربطی به موضوع اصلی مد نظر شما در برنامه ای که گذاشتید ندارند. همونطور که قبلا هم گفتم من اول مثال شما رو روی سیستم خونه چک کردم که اینجا بعد از انتخاب درایو ها هیچ اتفاقی نمی افته! و چون توضیح بیشتری هم توی متن سوال نبود من تصور کردم که شما قصد شبیه سازی فرم برنامه مثال رو دارید و برای همین برنامه اول رو نوشتم. توی برنامه دوم هم که همون قضیه باز شدن explorer رو درست مثل majidbestgame با ShellExecute پیاده کردم، اما مثل برنامه مثال توی OnChange .
آخرین ویرایش به وسیله SAASTN : جمعه 28 خرداد 1389 در 23:38 عصر دلیل: پی نوشت