PDA

View Full Version : محو کردن فرم



diplomat
پنج شنبه 17 مرداد 1387, 07:43 صبح
با سلام خدمت دوستان عزیز
آیا میشود فرم را به حالت نیمه پنهان در آورد ؟

mzjahromi
پنج شنبه 17 مرداد 1387, 08:48 صبح
نیمه پنهان رو تاحالا نشنیده بودیم
اگر منظورتون رو کاملتر توضیح بدید شاید بشه کاری کرد.

hassan_blue
پنج شنبه 17 مرداد 1387, 09:54 صبح
شاید منظورت شفافیت فرم (خاصیت AlphaBlend فرم)

Hsimple11
پنج شنبه 17 مرداد 1387, 10:56 صبح
خاصیت AlphaBlend فرم را True کنید و Value آن را هم Set کنید. اگر از ورژنی استفاده میکنید که این خاصیت را ندارد با استفاده از این کد فرم نیمه شفافی خواهید داشت؛ البته این عمل فقط بر روی ویندوزهای 32بیتی قابل اجراست :



const
WS_EX_LAYERED = $80000;
LWA_COLORKEY = 1;
LWA_ALPHA = 2;

type
TSetLayeredWindowAttributes = function (
hwnd : HWND;
crKey : TColor;
bAlpha : byte;
dwFlags : DWORD
): BOOL; stdcall;

procedure SetTransparentForm(AHandle : THandle; AValue : byte = 0);
var
Info: TOSVersionInfo;
SetLayeredWindowAttributes: TSetLayeredWindowAttributes;
begin
Info.dwOSVersionInfoSize := SizeOf(Info);
GetVersionEx(Info);
if (Info.dwPlatformId = VER_PLATFORM_WIN32_NT) and
(Info.dwMajorVersion >= 5) then
begin
SetLayeredWindowAttributes := GetProcAddress(GetModulehandle(user32),
'SetLayeredWindowAttributes');
if Assigned(SetLayeredWindowAttributes) then
begin
SetWindowLong(AHandle, GWL_EXSTYLE,
GetWindowLong(AHandle, GWL_EXSTYLE) or WS_EX_LAYERED);
//Make form transparent
SetLayeredWindowAttributes(AHandle, 0, AValue, LWA_ALPHA);
end;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
SetTransparentForm(Handle, 100);
end;

lord_viper
پنج شنبه 17 مرداد 1387, 16:47 عصر
ایا میشه این alphablend رو به فورم فقط اعمال کرد و بقیه کنترلها در حالت معمولی باشند؟
(مثل بعضی تمهای ویستا که فقط فورمها حالت محو دارند ولی کنترلهای مربوط به فورمها اینطور نیستن)

Hsimple11
پنج شنبه 17 مرداد 1387, 16:55 عصر
وقتی Owner کنترلهای روی فرم، خود فرم است مسلما از آن تاثیر میگیرند.

lord_viper
پنج شنبه 17 مرداد 1387, 19:19 عصر
خب برای اینجام این کار چه میشه کرد؟

diplomat
شنبه 19 مرداد 1387, 12:16 عصر
شرمنده من در طرح سوالم اشتباه کردم
برای کنترل میزان Transparent یه Image راهی وجود داره یا خیر
با تشکر

Hsimple11
شنبه 19 مرداد 1387, 17:37 عصر
شرمنده من در طرح سوالم اشتباه کردم
برای کنترل میزان Transparent یه Image راهی وجود داره یا خیر


چه جالب!

خاصیت Transparent مربوط به Image خود را True کنید. متدهای TransparentMode و TransparentColor را در خود Help دلفی جستجو کنید.

diplomat
یک شنبه 20 مرداد 1387, 08:06 صبح
TransparentMode اون کاری که مورد نظر من انجام نمیده
من میخوام تصویر به صورت نیمه شفاف در بیاد

diplomat
پنج شنبه 24 مرداد 1387, 11:45 صبح
کسی نیست جواب بده