自作プロパティについて

解決


鷹羽 あずさ  2002-04-04 02:49:24  No: 755

自作のプロパティを作成しているのですが、integer型の配列型のプロパティにしようとして、困っています。以下に現状のソースを置きますので、どなたかわかる方いましたらどこが悪いかご指摘いただければ、お願いします。

unit StringGridEx;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Grids;
type
    TAInt = array[0..255] of Integer;
type
  TFrameStringGridEx = class(TFrame)
    StringGrid1: TStringGrid;

    procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
  private
    FCenterCols: TAInt;
    procedure SetCenterCols(const Value: TAInt);
    { Private 宣言 }
  public
    { Public 宣言 }
    property CenterCols:TAInt read FCenterCols write SetCenterCols;

  end;

implementation

以下省略


にしの  2002-04-04 07:54:14  No: 756

配列のプロパティは、

property CenterCols[Index: integer] :integer read GetCenterCols write SetCenterCols;

function GetCenterCols(Index: integer): integer;
procedure SetCenterCols(Index: Integer; const Value: integer);
となります。

この場合、readやwriteに変数を設定するのでなく、ファンクション、プロシージャになります。

配列をいっぺんに設定・取得するプロパティを作るより、そういうメソッドを用意して、
Procedure Assign(intArray: TAInt);
などとしたほうがいいと思います。


鷹羽 あずさ  2002-04-04 19:28:02  No: 757

にしのさんいつもありがとうございます。
ご指摘どおりにしたら、なんなく解決しました。
本当にありがとうございました。


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加