執行時 修改Delphi物件屬性

2021-04-09 02:45:16 字數 1640 閱讀 1483

// 執行時 修改delphi物件屬性, 以備不時之需

// 簡單的寫了幾個屬性, 已經夠用了。 請注意, 只能修改published屬性,

// 就是能夠出現在object inspector中的屬性

procedure setcmpntproperty(ownercmpnt:tcomponent; scomponent, sprop, spropvalue:string);

varacmpnt:tcomponent;

begin

acmpnt := ownercmpnt.findcomponent(scomponent);

if acmpnt=nil then exit;

setcmpntproperty(acmpnt, sprop, spropvalue);

end;

procedure setcmpntproperty(acmpnt:tcomponent; sprop, spropvalue:string);

begin

setobjectproperty(acmpnt, sprop, spropvalue);

end;

//procedure setobjectproperty(obj:tobject; sprop, spropvalue:string);overload;

varobjptypeinfo:ppropinfo;

begin

if obj=nil then

begin

showmessage('setobjectproperty: null object');

exit;

end;

objptypeinfo := getpropinfo(obj, sprop);

if objptypeinfo=nil then raise exception.create('invalid property:'+sprop);

// ttypekind = (tkunknown, tkinteger, tkchar, tkenumeration, tkfloat, tkstring, tkset, tkclass, tkmethod, tkwchar, tklstring, tkwstring, tkvariant, tkarray, tkrecord, tkinte***ce, tkdynarray);

case objptypeinfo^.proptype^.kind of

tkinteger:setordprop(obj, objptypeinfo, strtoint(spropvalue));

tkfloat:setfloatprop(obj, objptypeinfo, strtofloat(spropvalue));

tkstring, tklstring, tkwstring:setstrprop(obj, objptypeinfo, spropvalue);

tkenumeration:setenumprop(obj, objptypeinfo, spropvalue);

tkset:setsetprop(obj, objptypeinfo, spropvalue);

else

raise exception.create(''unsupported property type:'+sprop);

end;

end;

delphi 程式執行時移動控制元件

程式在執行時使用者需要對一些控制元件進行重新移動佈局,下次進入介面時顯示佈局後的 方法1 每移動控制元件時就把位置寫入ini檔案中 只需在控制元件的onmousedown事件寫如下 procedure tfmain.speedbutton4mousedown sender tobject butto...

Silk 執行時 控制元件 屬性

1.如果一個silk的識別物件是在執行時載入的某個屬性且無法事先定義,可以用動態tag識別來作一定的操作。e.g.我這裡的error dialog裡的error message是根據具體的頁面欄位報錯,所以我無法事先宣告此lable物件的tag值。2.我們首先用scripted.來重新識別物件。3....

在執行時修改ObjectDataSource的引數

在一個使用者查詢頁面有三個查詢分別查詢全部使用者,按名稱模糊查詢使用者和按照角色查詢使用者。這三個功能需要呼叫業務端三個不同的函式,它們的返回值一樣,都是資料物件集合sesgmembershipusercollection 使用gridview1來顯示查詢結果,objectdatasource1是資...

在執行時修改ObjectDataSource的引數

在一個使用者查詢頁面有三個查詢分別查詢全部使用者,按名稱模糊查詢使用者和按照角色查詢使用者。這三個功能需要呼叫業務端三個不同的函式,它們的返回值一樣,都是資料物件集合sesgmembershipusercollection 使用gridview1來顯示查詢結果,objectdatasource1是資...

執行時修改註解資訊

當時的需求是匯出的時候加一個title,然後用的是easyexcel,註解使用的是excelproperty,然後就懶嘛,不想一個個加了,所以直接改註解,上 功能描述 修改註解資訊 param t param title return void author lpj date 2022 01 05 ...