如何固定專案內的字型 |
尚未結案
|
yx_huang77
一般會員 發表:46 回覆:64 積分:22 註冊:2004-03-19 發送簡訊給我 |
|
bigdogchina
版主 發表:238 回覆:523 積分:312 註冊:2003-04-28 發送簡訊給我 |
yx_huang77大大,您好!
看看下面的idea,能否對您解決問題有所幫助< > 幾乎每個視覺化元件都擁有<>>屬性,所以若我們在設計時修改了某個元件的字體,那該元件的字體資訊也會隨著元件的其他資訊存儲在>>的資料繼承機制,由<>>類提供。 物件屬性繼承能力的讀寫功能由>> 負責寫入屬性
② <>> 負責讀出屬性
但是這兩個方法都是聲明在<>>段,外界無法使用(呀呀呀,看得著吃不著 < >),所以必須派生新的類,將方法釋放出來才行。 那就來包裝一下,看看下面的這個 class="code">
unit KTopStream; interface uses Windows, SysUtils, Classes, Forms, TypInfo; procedure SavePropertyToStream(Stream: TStream; Instance: TPersistent; PropName: string);
procedure LoadPropertyFromStream(Stream: TStream; Instance: TPersistent); implementation type
TMyWriter = class(TWriter)
public
procedure WriteProperty(Instance: TPersistent; PropInfo: Pointer);
end; TMyReader = class(TReader)
public
procedure ReadProperty(Instance: TPersistent);
end; procedure TMyWriter.WriteProperty(Instance: TPersistent; PropInfo: Pointer);
begin
inherited WriteProperty(Instance, PropInfo);
end; procedure TMyReader.ReadProperty(Instance: TPersistent);
begin
inherited ReadProperty(Instance);
end; procedure SavePropertyToStream(Stream: TStream; Instance: TPersistent; PropName: string);
begin
with TMyWriter.Create(Stream, 4096) do
try
WriteListBegin;
WriteProperty(Instance, GetPropInfo(Instance.ClassInfo, PropName));
WriteListEnd;
finally
Free;
end;
end; procedure LoadPropertyFromStream(Stream: TStream; Instance: TPersistent);
begin
with TMyReader.Create(Stream, 4096) do
try
ReadListBegin;
while not EndOfList do ReadProperty(Instance);
ReadListEnd;
finally
Free;
end;
end; end. 利用上面單元中的SavePropertyToStream函數和LoadPropertyFromStream函數,就可以很方便的操作,維持元件的字體資訊以及其他資訊。
下面的例子是將Form的Font資訊寫如test.dat文件:
…. uses KTopStreams; …. procedure TForm1.Button1Click(Sender: TObject); var Stream: TStream; begin Stream := TFileStream.Create('test.dat',fmCreate of fmOpenWrite); with Stream do try SavePropertyToStream(Stream,Form1,'Font'); //寫入字體設置 finally Free; end; end;當您需要的時候,再把Font資訊從test.dat中用LoadPropertyFromStream()讀出來,這樣就可以讓您的字體不隨Windows的字體改變而改變了 我也是一知半解,如有謬誤,請您多多指教! < class="code"> =============== 人生在勤,不索何获? ===============
------
人生在勤,不索何获? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |