_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 هم نمی خوام استفاده کنم
من یک کامپوننت 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 هم نمی خوام استفاده کنم