PDA

View Full Version : انتخاب یک کلید از dbnavigator



davoodmz
یک شنبه 15 مرداد 1385, 07:25 صبح
باسلام خدمت دوستان
من dbnavigator را با کد زیر کنترل می‌کنم
یک نمونه کد کنترل :

var
BtnName:string;
begin
if Button=nbfirst then begin
edit1.text:='davood';
end;
if Button=nblast then begin
...
حالا می خواهم بعد از زدن کلیدی مانند اینتر دکمه Post دیبی نویگیتور SetFocus شود
یک چیزی مانند کد زیر
if key=#13 then
...........................کلید post نویگیتور فوکوس شود.
باتشکر از همه عزیزان

vcldeveloper
یک شنبه 15 مرداد 1385, 08:46 صبح
می تونی با کدی مثل کد زیر به خصوصیات هر یک از کلیدهای DBNavigator بصورت جدا از هم دسترسی داشته باشی:


type
THackDBNavigator = class(TDBNavigator);
procedure TForm1.Button1Click(Sender: TObject);
begin
THackDBNavigator(DBNavigator1).Buttons[nbFirst].Flat := True;
end;

اما این دکمه ها دارای متد SetFocus نیستند!
برای رفع این مشکل می تونی خودت از یک سری Button و یک ActionList استفاده کنی. به این صورت که در ActionList برای اضافه کردن Action جدید به لیست از گزینه New Standard Action استفاده میکنی و Action های موجود در بخش DataSet را به ActionList اضافه می کنی. حالا می تونی caption و Image هر یک از Action ها را تنظیم کنی و هر یک از اونها را به یک Button بر روی فرم اختصاص بدی (با استفاده از خصوصیت Action هر یک از Button ها).
این Action مثل دکمه های DBNavigator بصورت خودکار عمل می کنند و لازم نیست برای کنترلشان کدی بنویسی.
بعد از انجام مراحل بالا، می تونی از طریق متد SetFocus هر یک از Button ها، Focus را به آن منتقل کنی.

davoodmz
دوشنبه 16 مرداد 1385, 15:05 عصر
جناب مهندس کشاورز
با سلام
از پاسخ شما کمال تشکر را دارم ولی من نمی خواهم از غیر نویگیتور از باتونهای جدا استفاده کنم
این کار را که با باتونهای جدا کارکنم قبلاً انجام دادم ولی کاش می شد دکمه های این نویگیتورها را ست فوکوس کرد
ولی من دیدم وقتی که ست فوکوس نویگیتور را true میکنیم فوکوس روی همه دکمه ها میرود
با تشکر
داود