PDA

View Full Version : تشخیص اینکه کاربر کدام دکمه را فشار داده



یعقوب
شنبه 19 دی 1383, 01:56 صبح
با سلام
لطفا بگین چطور روی یک فرم تشخیص بدم که کاربر کدوم دکمه (Button) رو فشار داده؟

خیلی متشکرم

arshia_
شنبه 19 دی 1383, 08:02 صبح
اگر کدهای صفحه کلید رو بلدی کافیه که توی قسمت keydown یه کد بنویسی تا چک کنه چه دکمه ای فشار داده شده و با توجه به دبکمه مورد نظر عملیات لازم انجام بشه
مثلا کد دکمه enter=#13

یعقوب
شنبه 19 دی 1383, 13:18 عصر
سلام
خیلی ممنون
ولی منظورم دکمه های صفحه کلید نبود.
دکمه هایی که موقع طراحی فرم روی فرم می ذاریم. همون دکمه های Button خودمون.
می خواستم ببینم که تابعی چیزی هست که دکمه فشرده رو برگردونه؟
آخه اینجوری نوشتن برنامه راحت تره...! :wink: :thnx:

Kamran.K
یک شنبه 20 دی 1383, 19:32 عصر
توضیحاتتون کافی نیست

ولی در هر حال هر دکمه که فشرده میشه رویداد خاص خودش رو اجرا می‌کنه و پارامتر Sender اشاره‌گری است به آن دکمه. با توجه به خصوصیات این Sender می‌تونید به هدفتون برسید.

Kamran.K
یک شنبه 20 دی 1383, 19:35 عصر
روی یه فرم سه دکمه داریم و میخوایم هر بار که یه دکمه فشرده شد، مثلاً Caption اون دکمه خاص عوض بشه!
کافی این کد را برای رویداد کلیک یکی از اونا بنویسی


procedure TForm1.Button1Click(Sender: TObject);
begin
(sender as TButton).Caption:='I found you';
end;

و رویداد کلیک مابقی رو هم روی همین دکمه تنظیم کنی. همین!

_alish_
دوشنبه 21 دی 1383, 08:14 صبح
از sender هم می توانی ولی اگر می خواهی از message ها استفاده کنی از کامپوننت ApplicationEvents بدین شکل استفاده کن


procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
if Msg.message=WM_LBUTTONUP then
if Msg.hwnd = Button1.Handle then
ShowMessage('Button1 Clicked')
else
if Msg.hwnd = Button2.Handle then
ShowMessage('Button2 Clicked')
else
if Msg.hwnd = Button3.Handle then
ShowMessage('Button3 Clicked')
end;