PDA

View Full Version : تغییر آیکون Cursor در کل ویندوز



persia_hrn
یک شنبه 20 مرداد 1392, 02:35 صبح
سلام دوستان ،
من به راحتی Cursor برنامم رو تغییر میدم ولی این تغییر فقط روی فرمم قابل مشاهده است ، چطور میتونم Cursor رو جوری تغییر بدم که توی کل محیط ویندوز اونو داشته باشم ؟

البته یه سرچی زدم توی سایت ولی چیزی بدست نیاوردم .

من از این کد استفاده می کنم :


var H: THandle;
H := LoadImage(0,'\Cursor.Cur'),IMAGE_CURSOR,0,0,LR_DEF AULTSIZE OR LR_LOADFROMFILE);
if H <> 0 then
begin
Screen.Cursors[1]:=H;
Form1.Cursor:=1;
end;

AliReza Vafakhah
یک شنبه 20 مرداد 1392, 10:31 صبح
این کد دوست عزیز

SetSystemCursor(Screen.Cursors[crDefault], OCR_NORMAL);

persia_hrn
یک شنبه 20 مرداد 1392, 14:49 عصر
داداش علیرضا کارت درسته ممنون :قلب:

persia_hrn
یک شنبه 20 مرداد 1392, 15:20 عصر
حالا یه مشکل جدید برام پیش اومد !

میخوام وقتی برنامه بسته میشه شکل کرسر رو برگردونم به حالت اولش ولی چون CrDefault و همینطور CrArrow تغییر کردن نمیتونم شکل اولیه رو برگردونم ، راهی هست که قبل از تغییر دادن کرسر آدرس یا یه کپی از کرسر اصلی ویندوز رو بگیرم که وقت بسته شدن برنامه اونو لود کنم ؟

و یه سوال دیگه اینکه اگه بخوام حالت crlBeam رو تغییر بدم چجوریه ؟
دلفی 20 تا کرسر برای هر آبجکت تعریف کرده ولی وقتی توی دستور زیر ایندکس رو از 1 تا 40 تغییر میدم هیچکدوم مربوط به crlBeam نیست .

Screen.Cursors[INDEX] := X ;

تنکیو دارید اگه بتونید جواب بدید :تشویق:

persia_hrn
یک شنبه 20 مرداد 1392, 17:22 عصر
واقعاً خنده داره ها !
خودمون میپرسیم بعد خودمون جواب میدیم !
این نشون دهنده اینه که ما وقت واسه تحقیق نمیذاریم ! واسه خودم متاسف شدم !

برای تغییر حالت crIBeam دستور زیر عمل میکنه :


var H: THandel
H := LoadImage(0,'\Cursor.Cur'),IMAGE_CURSOR,0,0,LR_DEF AULTSIZE OR LR_LOADFROMFILE);
if H <> 0 then SetSystemCursor(H,OCR_IBEAM);

AliReza Vafakhah
دوشنبه 21 مرداد 1392, 00:14 صبح
داداش تو زندگیت کمی صبور باش من که خیلی نمیام اینجا ولی الحق که بقیه بچه های فروم همیشه رسیدگی می کنند مخصوصا این بخش

شما به این لینک (http://stackoverflow.com/questions/4201109/delphi-screen-cursor-not-working-and-cant-figure-out-windows-setcursorcrhourg) مراجعه کنید کارتون رو حتما راه میندازه

موفق و پیروز باشید

persia_hrn
دوشنبه 21 مرداد 1392, 01:45 صبح
علیرضا جون واقعاً کارت درسته داداش . :تشویق:
البته لینکتون رو دیدم که توی Help خود دلفی هم بود و اون دستور درست جواب نمیده چون من CrDefault رو عوض میکنم .
خودم یه کار دیگه کردم و جواب گرفتم ، کاری که کردم این بود که از توی رجیستری آدرس کرسرهای Default ویندوز رو درآوردم و توی OnClose اون کرسرهارو Set کردم .
البته به همین راحتی هم نبود ولی درست شد . :چشمک:
اینم آدرس رجیستریشه :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Control Panel\Cursors\Default