interface
-uses Classes, SysUtils, Forms, Menus, RegexUtils;
+uses Classes, SysUtils, Forms, Menus, RegexUtils, Contnrs;
type
// \88È\89º\82Ì5\82Â\82Ì\83N\83\89\83X\82Ì\92è\8b`\82Í\81A\8f¬\82³\82¢\95û\82©\82ç\81¨\91å\82«\82¢\95û\82Ö\81A\82Æ
// \8c\9f\8dõ\8cê\82Æ\92u\8a·\8cê\82Ì\83y\83A\82Æ\82»\82Ì\83I\83v\83V\83\87\83\93\82ð\8bL\98^\82·\82é\8d\\91¢\91Ì
TReplacePairRec = record
- BeforeStr: String;
- AfterStr: String;
+ BeforeStr: string;
+ AfterStr: string;
IgnoreCase: boolean;
UseRegExp: boolean;
end;
TReplacePair = class(TCollectionItem)
private
FPairRec: TReplacePairRec;
- procedure SetAfterStr(const Value: String);
- procedure SetBeforeStr(const Value: String);
+ procedure SetAfterStr(const Value: string);
+ procedure SetBeforeStr(const Value: string);
procedure SetIgnoreCase(const Value: boolean);
procedure SetUseRegExp(const Value: boolean);
- function GetAfterStr: String;
- function GetBeforeStr: String;
+ function GetAfterStr: string;
+ function GetBeforeStr: string;
function GetIgnoreCase: boolean;
function GetUseRegExp: boolean;
public
- function ExecuteReplace(TargetStr: String): String;
+ constructor Create(Collection: TCollection); override;
+ function ExecuteReplace(TargetStr: string): string;
procedure Assign(Source: TPersistent); override;
+ procedure Clear;
+ function IsValidPair: Boolean;
published
- property BeforeStr: String read GetBeforeStr write SetBeforeStr;
- property AfterStr: String read GetAfterStr write SetAfterStr;
- property IgnoreCase: boolean read GetIgnoreCase write SetIgnoreCase;
- property UseRegExp: boolean read GetUseRegExp write SetUseRegExp;
+ property BeforeStr: string read GetBeforeStr write SetBeforeStr;
+ property AfterStr: string read GetAfterStr write SetAfterStr;
+ property IgnoreCase: boolean read GetIgnoreCase write SetIgnoreCase default false;
+ property UseRegExp: boolean read GetUseRegExp write SetUseRegExp default false;
end;
- // TReplacePair\82Ì\83R\83\8c\83N\83V\83\87\83\93\83N\83\89\83X
+ // TReplacePair\82Ì\83R\83\8c\83N\83V\83\87\83\93\83N\83\89\83X\81B
TReplacePairCollection = class(TCollection)
+ private
+ function GetItem(Index: Integer): TReplacePair;
public
- function ExecuteReplace(TargetStr: String): String;
+ function Add: TReplacePair;
+ property Items[Index: Integer]: TReplacePair read GetItem; default;
+ function ExecuteReplace(TargetStr: string): string;
+ function StringExpression: string;
end;
// TReplacePair\82Ì\83R\83\8c\83N\83V\83\87\83\93\82ð\95Û\8e\9d\82µ\81A\83^\83C\83g\83\8b\82È\82Ç\82ð\82Ü\82Æ\82ß\82Ä
// 1\82Â\82Ì\83v\83\8a\83Z\83b\83g\90Ý\92è\8d\80\96Ú\82ð\95\\8c»\82·\82é\83N\83\89\83X
TReplacePreset = class(TCollectionItem)
private
- FTitle: String;
+ FTitle: string;
FPairs: TReplacePairCollection;
FShortCut: TShortCut;
+ FConfirmAfterReplace: Boolean;
procedure SetPairs(const Value: TReplacePairCollection);
procedure SetShortCut(const Value: TShortCut);
- procedure SetTitle(const Value: String);
+ procedure SetTitle(const Value: string);
+ procedure SetConfirmAfterReplace(const Value: Boolean);
public
constructor Create(Collection: TCollection); override;
destructor Destroy; override;
procedure Assign(Source: TPersistent); override;
published
property Pairs: TReplacePairCollection read FPairs write SetPairs;
- property Title: String read FTitle write SetTitle;
+ property Title: string read FTitle write SetTitle;
property ShortCut: TShortCut read FShortCut write SetShortCut;
+ property ConfirmAfterReplace: Boolean read FConfirmAfterReplace write SetConfirmAfterReplace;
end;
- // \83v\83\8a\83Z\83b\83g\90Ý\92è\8d\80\96ÚTReplacePreset\82Ì\83R\83\8c\83N\83V\83\87\83\93\83N\83\89\83X
TReplacePresetCollection = class(TCollection)
+ private
+ function GetItem(Index: Integer): TReplacePreset;
+ public
+ function Add: TReplacePreset;
+ property Items[Index: Integer]: TReplacePreset read GetItem; default;
end;
// \8dÅ\8fI\93I\82É\82±\82ê\82ð\83V\83\8a\83A\83\89\83C\83Y\82·\82é
FPairRec := (Source as TReplacePair).FPairRec;
end;
-function TReplacePair.ExecuteReplace(TargetStr: String): String;
+procedure TReplacePair.Clear;
+begin
+ with FPairRec do
+ begin
+ BeforeStr := '';
+ AfterStr := '';
+ UseRegExp := false;
+ IgnoreCase := false;
+ end;
+end;
+
+constructor TReplacePair.Create(Collection: TCollection);
+begin
+ inherited;
+ IgnoreCase := true;
+end;
+
+function TReplacePair.ExecuteReplace(TargetStr: string): string;
var
Options: TReplaceFlags;
begin
Result := StringReplace(Result, BeforeStr, AfterStr, Options);
end;
-function TReplacePair.GetAfterStr: String;
+function TReplacePair.GetAfterStr: string;
begin
Result := FPairRec.AfterStr;
end;
-function TReplacePair.GetBeforeStr: String;
+function TReplacePair.GetBeforeStr: string;
begin
Result := FPairRec.BeforeStr;
end;
Result := FPairRec.UseRegExp;
end;
-procedure TReplacePair.SetAfterStr(const Value: String);
+function TReplacePair.IsValidPair: Boolean;
+begin
+ Result := true;
+ if BeforeStr = '' then
+ Result := false
+ else
+ try
+ ExecuteReplace(' ')
+ except
+ Result := false;
+ end;
+end;
+
+procedure TReplacePair.SetAfterStr(const Value: string);
begin
FPairRec.AfterStr := Value;
end;
-procedure TReplacePair.SetBeforeStr(const Value: String);
+procedure TReplacePair.SetBeforeStr(const Value: string);
begin
FPairRec.BeforeStr := Value;
end;
Pairs.Assign(Src.Pairs);
Title := Src.Title;
ShortCut := Src.ShortCut;
+ ConfirmAfterReplace := Src.ConfirmAfterReplace;
end;
end;
FShortCut := Value;
end;
-procedure TReplacePreset.SetTitle(const Value: String);
+procedure TReplacePreset.SetTitle(const Value: string);
begin
FTitle := Value;
end;
+procedure TReplacePreset.SetConfirmAfterReplace(const Value: Boolean);
+begin
+ FConfirmAfterReplace := Value;
+end;
+
{ TReplacePresets }
procedure TReplacePresets.Assign(Source: TPersistent);
-var
- Src: TReplacePresets;
begin
if not (Source is TReplacePresets) then
inherited
else
begin
- Src := Source as TReplacePresets;
- Presets.Assign(Src.Presets);
+ FPresets.Assign((Source as TReplacePresets).FPresets);
end;
end;
{ TReplacePairCollection }
-function TReplacePairCollection.ExecuteReplace(TargetStr: String): String;
+function TReplacePairCollection.Add: TReplacePair;
+begin
+ Result := inherited Add as TReplacePair;
+end;
+
+function TReplacePairCollection.ExecuteReplace(TargetStr: string): string;
var
- i: integer;
+ i: Integer;
begin
Result := TargetStr;
for i := 0 to Count-1 do
end;
end;
+function TReplacePairCollection.GetItem(Index: Integer): TReplacePair;
+begin
+ Result := (inherited GetItem(Index)) as TReplacePair;
+end;
+
+function TReplacePairCollection.StringExpression: string;
+var
+ i: Integer;
+begin
+ Result := '';
+ for i := 0 to Count-1 do
+ begin
+ if i > 0 then
+ Result := Result + '\81A';
+ Result := Result + Format('\81u%s\81v\81¨\81u%s\81v',
+ [Items[i].BeforeStr, Items[i].AfterStr]);
+ end;
+end;
+
+{ TReplacePresetCollection }
+
+function TReplacePresetCollection.Add: TReplacePreset;
+begin
+ Result := inherited Add as TReplacePreset;
+end;
+
+function TReplacePresetCollection.GetItem(Index: Integer): TReplacePreset;
+begin
+ Result := inherited GetItem(Index) as TReplacePreset;
+end;
+
initialization
Classes.RegisterClass(TReplacePresets);