16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"RE:兄弟コンポの一括リネーム"
この発言は #01412 tach さんの兄弟コンポの一括リネーム に対するコメントです
リネームするだけでは利用価値が低いので、
リサイズ、リロケートできるよう拡張してみました。
----------- 以下 ソース(Interface部分) -----------
unit CompoRen;
{
filename: CompoRen
TCompoRenamer:
コンポーネントエディタを利用して、
設計時に兄弟コンポの一括リネーム、リサイズ、リロケートを行う
使用法:
eg.
Edit1..Edit9の内、Edit5..Edit9を UserName1..UserName5に
変更する場合。
TargetName = 'Edit5'
NewName = 'UserName'
StartNo = 1
RepCount = 5
を設定した後このコンポーネントをダブルクリックする
またはポップアップメニューから 'Rename: Edit5'を選択する
Edit1..Edit9のサイズをW:80, H:20に変更する場合。
TargetName = 'Edit1'
RepCount = 9
TargetWidth = 80
TargetHeight = 20
とし、ポップアップメニューから 'Resize: Edit1' を選択する
Edit1..Edit9を縦一列に整列させる場合。
TargetName = 'Edit1'
RepCount = 9
TargetAlign = taRow
とし、ポップアップメニューから 'Relocate: Edit1' を選択する
tach YIU01245
}
interface
uses
Classes, Controls, SysUtils, DsgnIntf, Dialogs;
type
TTargetAlign = // 並び順
(taRow, //縦一列
taRowByCount,// StraightCountまで縦一列
taCol, //横一列
taColByCount // StraightCountまで横一列
);
TCompoRenamer = class(TComponent)
private
FTargetName: String;
FNewName: String;
FStraightCount: Integer;
FTargetWidth, FTargetHeight: Integer;
FXClearance, FYClearance: Integer;
FTargetAlign: TTargetAlign;
FStartNo: Integer;
FRepCount: Integer;
procedure SetTargetName(AName: String);
procedure DoRenameTarget;
procedure DoResizeTarget;
procedure DoRelocateTarget;
function CanRename: boolean;
function CanRelocate: boolean;
function TargetSuffixNum: Integer;
function TargetBody: String;
public
constructor Create(AOwner: TComponent); override;
published
property TargetName: String read FTargetName write SetTargetName;
property TargetWidth: Integer read FTargetWidth write
FTargetWidth;
property TargetHeight: Integer
read FTargetHeight write FTargetHeight;
property XClearance: Integer read FXClearance write FXClearance;
property YClearance: Integer read FYClearance write FYClearance;
property StraightCount: Integer
read FStraightCount write FStraightCount;
property TargetAlign:
TTargetAlign read FTargetAlign write FTargetAlign;
property NewName: String read FNewName write FNewName;
property StartNo: Integer read FStartNo write FStartNo;
property RepCount: Integer read FRepCount write FRepCount;
end;
TCompoRenamerEditor = class(TComponentEditor)
public
procedure ExecuteVerb(Index: Integer); override;
function GetVerb(Index: Integer): String; override;
function GetVerbCount: Integer; override;
procedure Edit; override;
end;
procedure Register;
//----------- implementation 部へ続く --------------------
Original document by tach 氏 ID:(YIU01245)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|