private FLines: TStrings; protected procedure SetLines(Value: TStrings); published property Lines: TStrings read FLines write SetLines;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questioninterface uses Windows, SysUtils, Classes; type TTaskDialog = class(TComponent) private fCustomButtons : TStringList; fRadioButtons : TStringList; fOnChange : TNotifyEvent; fOnChanging : TNotifyEvent; procedure SetCustomBtns(Value: TStringList); procedure SetRadioBtns(Value: TStringList); protected procedure Change(const liP: Longint); virtual; procedure DoStringsChange(Sender: TObject); property OnChange : TNotifyEvent read fOnChange write fOnChange; published property CustomButtons : TStringList read fCustomButtons write SetCustomBtns; property RadioButtons : TStringList read fRadioButtons write SetRadioBtns; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; implementation { TTaskDialog } procedure TTaskDialog.Change(const liP: LongInt); begin // case liP of // 1 : // change by fCustomButtons // 2 : // change by fRadioButtons // end; end; constructor TTaskDialog.Create(AOwner: TComponent); begin inherited; fCustomButtons := TStringList.Create; fCustomButtons.OnChange := DoStringsChange; fRadioButtons := TStringList.Create; fRadioButtons.OnChange := DoStringsChange; end; destructor TTaskDialog.Destroy; begin fRadioButtons.Free; fCustomButtons.Free; inherited; end; procedure TTaskDialog.DoStringsChange(Sender: TObject); begin if Sender = fCustomButtons then change(1) else change(2); if assigned(fOnChange) then fOnChange(Self); end; procedure TTaskDialog.SetCustomBtns(Value: TStrings); begin fCustomButtons.Assign(Value); end; procedure TTaskDialog.SetRadioBtns(Value: TString); begin fRadioButtons.Assign(Value); end; end.
property CustomButtons: TStringList read FCustomButtons write SetCustomButtons; procedure XXX.SetCustomButtons(const Value: TStrings); begin FCustomButtons.Assign(Value); end;