お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"ActiveX Propety保存問題"





ActiveX Controlを作成し、Excel、Wordに貼り付けて使用しようとしたところ、Proper
tyの変更がWordでは保存されませんでした(ExcelはOK)。インターフェースのIsDirtyがうまく機
能していないところに問題がありそうです。
そこで、IPersistStorageを再実装し、IsDirtyを変更すれば、この問題は回避できまし
たが、なんとなくスマートでありません。ベターな方法を知っている方いませんか?

Edit Controlを継承した例

{IPersistStorageを再実装}
TEditX = class(TActiveXControl, IPersistStorage,IEditX)
  private
    { Private 宣言 Wizardにて自動生成される部分 }
  protected
    { Protected 宣言 Wizardにて自動生成される部分 }
   .........................

   {手動追加部分}
    function IsDirty: HResult; stdcall;
   {以下は、TActiveXControl記述部分を再度宣言}
    function IPersistStorage.InitNew = PersistStorageInitNew;
    function IPersistStorage.Load = PersistStorageLoad;
    function IPersistStorage.Save = PersistStorageSave;

implementation

function TEditX.IsDirty: HResult; //stdcall;
begin
   {独自の判断処理が必要ですが、とりあえず全てDirty判断}
    Result:=S_OK;
end;

Original document by RIN             氏 ID:(ZVQ05076)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum