اگر بخواهیم بدون موس اشاره گر را روی یک lable ببریم تا بعد بتوانیم در رویداد onclick ان کدی بنویسم چه کار باید کرد
Printable View
اگر بخواهیم بدون موس اشاره گر را روی یک lable ببریم تا بعد بتوانیم در رویداد onclick ان کدی بنویسم چه کار باید کرد
سوالت اصلا" واضح نيست بشتر توضيح بده .
سلامنقل قول:
مي خواهيد حركت ماوس را شبيه سازي كنيد يا مي خواهيد بدون اينكه روي ليبل برويد رويداد OnClick ليبل را فراخواني كنيد؟
براي كار دوم مي تونيد اين كار را انجام دهيد :
براي اولي :کد:Label1.OnClick(Self);
کد:var
point: TPoint; // point-structure needed by getcursorpos()
begin
getcursorpos(point); // get current mouse position
setcursorpos(300, 400); // set mouse cursor to menu item or whatever
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); // click down
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); // +click up = double click
setcursorpos(point.x, point.y); // set cursor pos to origin pos
end;
من برنامه اي نوشتم که داراي چندعنوان است که با کليک موس روي انها
کارهايي انجام مي شود.ان عنوانها را براي اينکه با تصويرپشت انها يکي شود وترانسپارنت شود lableگذاشتم.اين برنامه با موس به خوبی اجرا می شود زیرا دررویداد ان کلیک لیبل ها کدهای مربوطه گذاشته می شود.
حال سوال این است اگر موس نبود برای اجرای برنامه چه باید کردطوری که مثلا وقتی کلید اینتر روی یک لیبل
زده شد این کار تکرار شود .یا اصلا کامپونتی با توجه به موارد ذکر شده جای لیبل ها گذاشت
مشکل اینه که Lable خاصیتTabStop نداره یعنی هیچ وقت کنترل برنامه به Lable نمیرسه که بخوای روش Enter بزنی
خوب به جای ان کامپونتی که بشه ترانسپارنت کرد وفقط متن ان نشان داده بشه وروی ان پرش کرد پیه
مي توني به جاي ليبل از كامپوننت TranButton استفاده كني كه در سايت torry.net قسمت buttons قابل دريافته...