一、巧用TAG屬性儲存對象的指針
指針的資料類型是整型,一個指針就是一個整型的數值。是以凡整型的變量(這個整型的變量可以是聲明在INI檔案中,也可以是聲明在函數中的)也好,對象的整型的屬性也好,都可以用來存儲一個指針。但對象往往沒有多餘的整型屬性,而TAG屬性就是整型的,正好可以用它來存放指針。
goods := TGoods.Create(Button1);
goods.goodsId := goodsId;
goods.goodsName := goodsName;
goods.price := price;
Button1.Tag := THandle(goods);
使用:
TGoods(TButton(Sender).Tag).buyNum
不過在需要注意的就是,當我們在釋放Button1的時候,一定要記得先釋放其Tag中存放的對象資源,以免記憶體洩漏。如:
if Assigned(goods) then goods.Free;
或者:
if Button1.Tag<>0 then TGoods(Button1.Tag).Free;
var
FUserInfo: TUserInfo = nil;
function UserInfo: TUserInfo;
begin
if not Assigned(FUserInfo) then
FUserInfo := TUserInfo.Create;
Result := FUserInfo;
end;