PDA

View Full Version : EditButton



_alish_
یک شنبه 25 مرداد 1383, 11:10 صبح
سلام خدمت دوستان
من یک کامپوننت TEditButton نوشته ام که


type
TEditButton = class(TWinControl)
private
FEdit:TEdit;
FSpeedButton:TSpeedButton;
{ Private declarations }


و این دو آبجکت در کنار هم قرار گرفته اند حال تمام رویدادهای event این کامپوننت را به رویداد FEdit نسبت دادم. مشکل اینجاست که وقتی من درون برنامه از رویداد مثلا
OnExit آن استفاده کنم و Sender آن(Sender as TEditButton).Name را فرا بخوانم نام خالی آبجکت FEdit را بر می گرداند .
سوال اینجاست من از درون کامپوننت چگونه Edit Sender را به کامپوننت اصلی تغییر دهم.


procedure SetOnExit(Value:TNotifyEvent);
Function GetOnExit:TNotifyEvent;

procedure SetOnKeyPress(Value:TKeyPressEvent);
Function GetOnKeyPress:TKeyPressEvent;

function TEditButton.GetOnExit: TNotifyEvent;
begin
Result:=FEdit.OnExit;
end;

function TEditButton.GetOnKeyPress: TKeyPressEvent;
begin
Result:=FEdit.OnKeyPress;
end;

procedure TEditButton.SetOnExit(Value: TNotifyEvent);
begin
FEdit.OnExit:=Value;
end;

procedure TEditButton.SetOnKeyPress(Value: TKeyPressEvent);
begin
FEdit.OnKeyPress:=Value;
end;

نمی خوام از کلاس TEdit و ]ControlStyle:=controlStyle+[csAcceptsControls و message هم نمی خوام استفاده کنم

SalarSoft
یک شنبه 25 مرداد 1383, 13:19 عصر
دیگه این کارا تو دلفی 7 لازم نیست فقط کافیه این کد رو در بخش Published بنویسی:


Property EditControl:TEdit read fEdit;

_alish_
یک شنبه 25 مرداد 1383, 14:13 عصر
آقای SalarSoft کار جالبی برای Propertyبود آخ اگه برای Event هم می شود چه بحال می شد اگر از Cmponent نویسی چیزی می دانید ببینید چه کار می شه کرد واقعا از شما ممنونم :flower: :heart:

یکی به ما کمک کنه چی می شه مگه از هر دست بدی از هما دست می گیری بد گیر کردم