Good Looking
دوشنبه 28 مرداد 1387, 01:03 صبح
Function CombineIcons(FontIcon,BackIcon:HIcon):HIcon;
Var
WinDC:HDC;
FrontInfo:TIconInfo;
FrontDC:HDC;
FrontSV:HBITMAP;
BackInfo:TIconInfo;
BackDC:HDC;
BackSV:HBITMP;
Bmpobj:tagBitmap;
Begin
winDC :=GetDC(0);
GetIconInfo(fronticon,frontinfo);
FrontDc :=CreatCompatibleDC(WinDC);
FrontSV := selectobject(FrontDC,FrontInfo.hbmMask);
Get IconInfo(BackIcon,BackInfo);
BackDC := CreatecompatibleDC(winDC);
BackSV := selectobject(BackDC,BackInfo.hbmMask);
Getobject(FrontInfo.hbmMask,SizeOf(Bmpobj),@Bmpobj );
BitBlt(BackDC,0,0,Bmpobj.bmWidth,Bmobj.bmHeight,Fr ontDC,0,0,SRCAND);
SelectObject(BackDC,BackInfo.hbmColor);
DrawIconEx(BackDC,0,0,FrontIcon,0,0,0,0,DI_NORMAL) ;
Result :=CreatIconIndirect(BackInfo);
SelectObject(FrontDC,FrontSV);
DeleteDC(FrontDC);
SelectObject(BackDC,BackSV);
DeleteDC(BackDC);
ReleaseDC(0,WinDC);
DeleteObject(FrontInfo.hbmColor);
DeleteObject(FrontInfo.hbmMask);
DeleteObject(BackInfo.hbmColor);
DeleteObject(BackInfo.hbmMask);
End;
اگر به ایکون شورتکاتها توجه کرده باشید دیده اید که در کنار انها یک علامت فلش کوچک نیز موجود است. در کدهای بالا چگونگی شبیه سازی این عمل ویندوز شرح داده شده است . وپس از خاتمه كار با ایکون ساخته شده از دستورDestroyIcon() با ید استفاده شود.
(البته من این کد را در جایی پیدا کرده ام و سئوال من از حرفه ایهای دلفی این است که
1:بعد از نوشتن کدها باید از چه ابزارهایی استفاده کنم تا اینکه بتوانم برنامه مورد نظر را کامپایل نمایم؟
2:اگر ممکن است توضیح مختصری راجع به این کدها بیان بفرمایید چونکه اغلب انها را متوجه نشدم. )
با سپاس و تشکر فراوان
Var
WinDC:HDC;
FrontInfo:TIconInfo;
FrontDC:HDC;
FrontSV:HBITMAP;
BackInfo:TIconInfo;
BackDC:HDC;
BackSV:HBITMP;
Bmpobj:tagBitmap;
Begin
winDC :=GetDC(0);
GetIconInfo(fronticon,frontinfo);
FrontDc :=CreatCompatibleDC(WinDC);
FrontSV := selectobject(FrontDC,FrontInfo.hbmMask);
Get IconInfo(BackIcon,BackInfo);
BackDC := CreatecompatibleDC(winDC);
BackSV := selectobject(BackDC,BackInfo.hbmMask);
Getobject(FrontInfo.hbmMask,SizeOf(Bmpobj),@Bmpobj );
BitBlt(BackDC,0,0,Bmpobj.bmWidth,Bmobj.bmHeight,Fr ontDC,0,0,SRCAND);
SelectObject(BackDC,BackInfo.hbmColor);
DrawIconEx(BackDC,0,0,FrontIcon,0,0,0,0,DI_NORMAL) ;
Result :=CreatIconIndirect(BackInfo);
SelectObject(FrontDC,FrontSV);
DeleteDC(FrontDC);
SelectObject(BackDC,BackSV);
DeleteDC(BackDC);
ReleaseDC(0,WinDC);
DeleteObject(FrontInfo.hbmColor);
DeleteObject(FrontInfo.hbmMask);
DeleteObject(BackInfo.hbmColor);
DeleteObject(BackInfo.hbmMask);
End;
اگر به ایکون شورتکاتها توجه کرده باشید دیده اید که در کنار انها یک علامت فلش کوچک نیز موجود است. در کدهای بالا چگونگی شبیه سازی این عمل ویندوز شرح داده شده است . وپس از خاتمه كار با ایکون ساخته شده از دستورDestroyIcon() با ید استفاده شود.
(البته من این کد را در جایی پیدا کرده ام و سئوال من از حرفه ایهای دلفی این است که
1:بعد از نوشتن کدها باید از چه ابزارهایی استفاده کنم تا اینکه بتوانم برنامه مورد نظر را کامپایل نمایم؟
2:اگر ممکن است توضیح مختصری راجع به این کدها بیان بفرمایید چونکه اغلب انها را متوجه نشدم. )
با سپاس و تشکر فراوان