Class Helper
Dễ dàng thêm các trường và phương thức và class có sẵn
Dễ dàng thêm các trường và phương thức và class có sẵn
Đặt vấn đề, giả sử bạn cần thêm một tính năng (một hàm chẳng hạn) vào một class có sẵn. Bạn sẽ làm gì ?
Bạn có thể nghĩ rằng nên khai báo thêm một class mới kế thừa class cũ và bổ sung thêm hàm. Nhưng như thế sẽ khá rắc rối và tăng kích thước mã.
Delphi cung cấp một tính năng mới gọi là class helper (hoặc record helper), cho phép thêm trực tiếp một hàm vào một class có sẵn.
Ta sẽ thêm một hàm Found(const S: string): boolean vào một lớp TStringList có sẵn
type
TStringListHelper = class helper for TStringList
public
function Found(const S: string): boolean;
end;
function TStringListHelper.Found(const S: string): boolean;
begin
if IndexOf(s) = -1 then
Result := false // Không tìm thấy
else
Result := true; // Tìm thấy
end;
var
S: TStringList;
begin
S:= TStringList.Create;
S.Add('ABC');
S.Add('DEF');
if S.Found('GHI') = true then
WriteLn('Co GHI')
else
WriteLn('Khong co GHI');
ReadLn
end.