PDA

View Full Version : سوال: ثابت نگاه داشتن Hint مربوط به کادرمتن



Fastdesign
شنبه 08 بهمن 1390, 00:22 صبح
سلام
می خوام خاصیت Hint مربوط به Edit را ثابت نگه دارم . یعنی اگه ماوس را جابجا کنم باز هم نمایش داده بشه و مخفی نشه.
آیا چنین کاری امکان داره؟

با تشکر

Mask
شنبه 08 بهمن 1390, 12:28 عصر
از هینت مجموعه آلفا کنترل استفاده کنید . تاب تونید زمان بدید برای نمایش هینت.

AliReza Vafakhah
شنبه 08 بهمن 1390, 15:20 عصر
Application.HintHidePause:= 20000;
Application.HintPause:= 1;

مشکل شما رو حل میکنه

Fastdesign
شنبه 08 بهمن 1390, 16:30 عصر
جناب وفاخواه این جوری که شما می گین بازهم ثابت نمی شه .
من تو یک برنامه حسابداری که با دلفی نوشته شده بود این خاصیت را دیدم . به طوری که وقتی کاربر کد یک کالا را از جدول جستجو می کرد نام اون کالا در هینت پایین Edit نمایش داده می شد و ثابت بود . حتی با حرکت اشاره گر ماوس هم تغییر نمی کرد و همچنان ثابت بود .

اگه کسی راه حلی داره بی دریغ نکنه .

با تشکر

SAASTN
شنبه 08 بهمن 1390, 21:15 عصر
جناب وفاخواه این جوری که شما می گین بازهم ثابت نمی شه .
کدی که ایشون قرار دادن مدت زمان نمایش Hint رو افزایش میده، اگه منظورتون اینه که اون زمان هم کافی نیست، می تونید بجای اون مقدار عددی از مقدار MAXINT استفاده کنید. با توجه به این که واحد HintHidePause میلی ثانیه هست، MAXINT باعث میشه که Hint در حدود 600 ساعت نمایش پیدا کنه!
اما اگه منظورتون اینه که حتی با خارج شدن موس از محدوده کنترل Edit بازهم Hint مخفی نشه، خودتون باید مدیریت نمایش و مخفی شدن پنجره Hint رو بدست بگیرید. توی مثال پائین با ورود موس به محدوده Edit1 پنجره Hint نمایش پیدا می کنه و تازمانی که روی Button1 کلیک نکنید مخفی نمیشه:
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Edit1MouseEnter(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
aHintWindow: THintWindow;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
aHintWindow.ReleaseHandle;
end;

procedure TForm1.Edit1MouseEnter(Sender: TObject);
begin
aHintWindow.ActivateHint(Rect(
Edit1.ClientOrigin.X, Edit1.ClientOrigin.Y+Edit1.Height,
Edit1.ClientOrigin.X+Edit1.Width, Edit1.ClientOrigin.Y+Edit1.Height+50),
'Hello World!');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
aHintWindow := THintWindow.Create(Self);
end;