![]() |
![]() ![]() ![]() |
TextTemplateConverter component.
|
type
|
TacTemplateParameter = class(TCollectionItem)
|
published
|
property Name: String;
|
property Value: String;
|
end;
|
|
TacTemplateParameters = class(TCollection)
|
public
|
function Add: TacTemplateParameter;
|
function Convert(const Value: String): String;
|
|
property Owner: TComponent read FOwner;
|
property IgnoreCase: Boolean;
|
property Items[Index: Integer]: TacTemplateParameter; default;
|
end;
|
|
property Params: TTextTemplateParameters; // True by default
|
The Params is the collection of keywords (and their values) which should be converted in the template.
|
|
Each item of Params collection is the object which contains 2 properties: Name and Value. The Name property specifies the template keyword which can be used in the text templates, and Value property is the actual string which sould replace the template keyword.
|
|
For example, our Params property contains 2 following items:
|
Item1:
|
Name = %RECIPIENT_NAME%
|
Value = Bill Gates
|
Item2:
|
Name = %RECIPIENT_EMAIL%
|
Value = billgates@microsoft.com
|
|
Plus we have the text template, which contains %RECIPIENT_NAME% and %RECIPIENT_EMAIL% keywords instead of real name and email address. For example, the text like:
|
To: %RECIPIENT_NAME% <%RECIPIENT_EMAIL%>
|
Dear %RECIPIENT_NAME%,
|
etc, etc...
|
|
After calling the Convert method, all the keywords specified in Name property of each item will be replaced by the words specified in Value property. For example, after convertion, the text displayed above will looks like follows:
|
To: Bill Gates <billgates@microsoft.com>
|
Dear Bill Gates,
|
etc, etc...
|
// how to add the the template parameters at run-time
|
var
|
Param: TacTemplateParameter;
|
begin
|
Param := TextTemplateConverter1.Params.Add;
|
Param.Name := '%keyword%';
|
Param.Value := 'Value';
|
|
// how to modify the template values at run-time
|
TextTemplateConverter1.ParamByName('%keyword%').Value := 'value';
|
TextTemplateConverter1.ParamByValue('value').Name := '%another_keyword%';
|
|
// also you can enumerate all parameters
|
var
|
I: Integer;
|
begin
|
I := TextTemplateConverter1.Count;
|
if I <> 0 then
|
for I := 0 to I - 1 do
|
with TextTemplateConverter1 do
|
Caption := Params[I].Name + ' = ' + Params[I].Value;
|
end;
|
IgnoreCaseOfParams property;
|
ParamByName, ParamByValue and Convert methods.
|