Beispiel:
Code: Alles auswählen
type
TMyEdit = class(TEdit)
private
FEnhReadOnly: Boolean;
function GetEnhReadOnly(): Boolean; virtual;
procedure SetEnhReadOnly(AValue: Boolean); virtual;
public
constructor Create(AOwner: TComponent); override;
published
property ReadOnly: Boolean read GetEnhReadOnly write SetEnhReadOnly;
end;
Code: Alles auswählen
constructor TMyEdit.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FEnhReadOnly := inherited ReadOnly;
end;
function TMyEdit.GetEnhReadOnly(): Boolean;
begin
Result := FEnhReadOnly;
end;
procedure TMyEdit.SetEnhReadOnly(AValue: Boolean);
begin
if (FEnhReadOnly <> AValue) then
begin
FEnhReadOnly := AValue;
end;
end;
Also wenn ich in diesem Beispiel
Code: Alles auswählen
MyEdit1.ReadOnly := true;
Code: Alles auswählen
lBoolean := (MyEdit1 as TEdit).ReadOnly;
Bei einem HardCast
Code: Alles auswählen
lBoolean := TEdit(MyEdit1).ReadOnly;
Bug oder Feature ???
.