2010-07-30

原來 IFontDisp 這樣用!

第一次遇到 IFontDisp 發現什麼都沒有!天啊,一頭霧水。原來 ActiveX.IFontDisp 要這樣用!記得 uses AxCtrls。
procedure TdlgPaperSet.BitBtn1Click(Sender: TObject);
var
  { 擷取部分內容 }
  vFormatText: OleVariant;
  vTxtObj: ITextObject;
  vFont: TFont;
  vFontDisp: IFontDisp;
  vPageFooterSection, vPageHeaderSection: ISection;
begin
  vFont := TFont.Create;

  { 擷取部分內容 }

  // TxtObj
  vTxtObj :=
    vPageHeaderSection.AddTextObject(
      Format('%.0n"(mm)"', [edtWidth.Value]),
      Trunc(edtWidth.Value),           // Left
      50,                              // Top
      vFormatText);

  // 將要異動的 IFontDisp 取出到 TFont
  vFontDisp := vTxtObj.Font;
  GetOleFont(vFont, vFontDisp);

  // 對 TFont 作異動
  vFont.Size := 14;

  // 將異動後的 TFont 寫入到 IFontDisp
  SetOleFont(vFont, vFontDisp);
  vTxtObj.Font := vFontDisp;

  { 擷取部分內容 }
end;
IFontDisp

沒有留言: