PDA

View Full Version : نمایان شدن hint بدون قرار گرفتن ماوس



اصغر (پآچ)
شنبه 28 اردیبهشت 1387, 16:41 عصر
سلام
من یه ICon از برنامه ام رو در Systry قرار دادم حالا می خوام اگه اتفاق جدید تو برنامه ام بیوفته بدون اینکه ماوس روش قرار بگیره Hint آیکونم نمایش داده بشه

یه چیزی تو مایه ی Sign in یا Sign out شدن یه کاربر توی yahoo messenger یا رسیدن یه امیل جدید تو یاهو

vcldeveloper
شنبه 28 اردیبهشت 1387, 19:37 عصر
نمایان شدن hint بدون قرار گرفتن ماوس
Application.ActivateHint


یه چیزی تو مایه ی Sign in یا Sign out شدن یه کاربر توی yahoo messenger یا رسیدن یه امیل جدید تو یاهو
اونی که یاهو نشون میده، Hint نیست. بلکه خودش برای اینکار یک پنجره خاص میسازه. می تونید خودتون چیزی شبیه اون بسازید، یا از کامپوننت های آماده برای این کار استفاده کنید؛ فکر کنم JVCL یک کامپوننت برای این کار داشت.

B-Vedadian
شنبه 28 اردیبهشت 1387, 21:22 عصر
به کامپوننت TToolTipManager آقاي خجسته هم نگاهي بيندازيد، چيز قشنگيه و با استفاده از API ويندوز XP کارهاي قشنگي ميکنه.

http://www.delphiarea.com/products/tooltips/ttm.zip

اصغر (پآچ)
یک شنبه 29 اردیبهشت 1387, 17:29 عصر
این کامپوننت رو دیدم اما مشکل اونجاست که باید موس روش قرار بگیره تا hint نمایش داده بشه

اصغر (پآچ)
سه شنبه 07 خرداد 1387, 21:19 عصر
Application.ActivateHint

اونی که یاهو نشون میده، Hint نیست. بلکه خودش برای اینکار یک پنجره خاص میسازه. می تونید خودتون چیزی شبیه اون بسازید، یا از کامپوننت های آماده برای این کار استفاده کنید؛ فکر کنم JVCL یک کامپوننت برای این کار داشت.

این روش جواب نداد چطوریه؟

من یه TIconTry توی دیتا ماژول قرار دادم می خوام وقتی یه رکورد جدید توی سیستم اضافه می شه Hint اون نمایش داده بشه!

اما این روش شما هیچی رو نشون نمیده میشه بیشتر در این زمینه راهنماییم کنی؟

B-Vedadian
چهارشنبه 08 خرداد 1387, 13:25 عصر
برای TrayIcon از کامپوننت آزاد TCoolTray استفاده کن. تابع ActivateHint یا یه چیزی شبیه همین توش هست که Baloon Tooltip برات نمایش میده!

دنیای دلفی
چهارشنبه 08 خرداد 1387, 13:47 عصر
در مجموعه Rize هم يك بالون بسيار كامل به همراه پشتيباني تصاوير وجود دارد . چهار تا تصوير هم مي توانيد در چهار گوشه اون بگذاريد . و به راحتي قابليت نمايش بالون را به صورت خود كار داره

اصغر (پآچ)
چهارشنبه 08 خرداد 1387, 15:28 عصر
ممنون از دوستان هستم
امتحان می کنم روش هاتونو اگه به جواب رسیدم خبر می دم

volvo B12
چهارشنبه 04 شهریور 1388, 00:33 صبح
با سلام
همونطور که خیلی ها می دونن کدها و کامپوننت های زیادی برای تولید انواع و اقسام hint ها بالاخص بالونی کردن اون وجود داره اما اغلب اونها باب دل و گاهی قابل تغییر نیستند.
من در اینجا کدی رو براتون گذاشتم که انعطاف پذیری خوبی داره و میشه برحسب نیازتون اون رو تغییر بدید فقط یه مشکل (البته بزرگ) وجود داره و اونم اینه که تا وقتی موس رو روی شیئ مورد نظر نبرید راهنما نمایش داده نمیشه من نمی دونم باید برای نمایش دائم Hint روی یک کنترل چی کار کرد اگه کسی می دونه لطفا راهنمایی کنه؟
به عنوان مثال فرض کنید که می خواهید همونطور که کاربر داخل یک edit تایپ می کنه همونطور هم یک hint به شکل بالون بالا سر ادیت نمایش داده بشه و مثلا متنی رو به کاربر نشون بده برای اینکار از کد زیر استفاده می کنم اما فقط نمی دونم چطور باید اون بالون رو بدون حرکت موس روی ادیت نمایش داد





uses commctrl;

procedure ShowBalloonTip(Control: TWinControl; Icon: integer; Title: pchar; MsgText: string;
BackCL, TextCL: TColor);
const
TOOLTIPS_CLASS = 'tooltips_class32';
TTS_ALWAYSTIP = $01;
TTS_NOPREFIX = $02;
TTS_BALLOON = $40;
TTF_SUBCLASS = $0010;
TTF_TRANSPARENT = $0100;
TTF_CENTERTIP = $0002;
TTM_ADDTOOL = $0400 + 50;
TTM_SETTITLE = (WM_USER + 32);
ICC_WIN95_CLASSES = $000000FF;
type
TOOLINFO = packed record
cbSize: Integer;
uFlags: Integer;
hwnd: THandle;
uId: Integer;
rect: TRect;
hinst: THandle;
lpszText: PWideChar;
lParam: Integer;
end;
var
hWndTip: THandle;
ti: TOOLINFO;
hWnd: THandle;
Text : array[0..11] of WideChar;
begin
StringToWideChar(MsgText, text, 12);
hWnd := Control.Handle;
hWndTip := CreateWindow(TOOLTIPS_CLASS, nil,
TTS_ALWAYSTIP or WS_POPUP or TTS_NOPREFIX or TTS_BALLOON,
0, 0, 0, 0, hWnd, 0, HInstance, nil);
if hWndTip <> 0 then
begin
SetWindowPos(hWndTip, HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
ti.cbSize := SizeOf(ti);
ti.uFlags := TTF_CENTERTIP or TTF_TRANSPARENT or TTF_SUBCLASS;
ti.hwnd := hWnd;
ti.lpszText := Text;
Windows.GetClientRect(hWnd, ti.rect);
SendMessage(hWndTip, TTM_SETTIPBKCOLOR, BackCL, 0);
SendMessage(hWndTip, TTM_SETTIPTEXTCOLOR, TextCL, 0);
SendMessage(hWndTip, TTM_ADDTOOL, 1, Integer(@ti));
SendMessage(hWndTip, TTM_SETTITLE, Icon mod 4, Integer(Title));
end;
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
ShowBalloonTip(edit1, 1, 'Title', Edit1.text, clBlue, clNavy);
end;