31:
How can I use my own operators only

with Expression1 do
begin
	AllowValueKeyword := False;
	AllowDefaultOperators := False;
	AddCustomOperator('+','<b>+</b>','This is a new binary-operator',OleVariant(2));
	AddCustomOperator('xxx','<b>xxx</b>','This is a new keyword',OleVariant(0));
	AddCustomOperator('yyy','<b>yyy</b>','This is a unary-operator',OleVariant(1));
	AddCustomOperator('zzz','<b>zzz</b>','This is a binary-operator',OleVariant(2));
	Text := 'xxx + yyy(100 zzz 200)';
end
30:
How can I add a new binary-operator

with Expression1 do
begin
	AddCustomOperator('xxx','<b>xxx</b>','This is a new binary-operator',OleVariant(2));
	Text := 'value + 100 xxx 200';
end
29:
How can I add a new unary-operator

with Expression1 do
begin
	AddCustomOperator('xxx','<b>xxx</b>','This is a new unary-operator',OleVariant(1));
	Text := 'value + xxx(100)';
end
28:
How can I add a new keyword

with Expression1 do
begin
	AddCustomOperator('xxx','<b>xxx</b>','This is a new keyword',OleVariant(0));
	Text := 'value + xxx';
end
27:
How can I disable all operators
with Expression1 do
begin
	AllowValueKeyword := False;
	AllowDefaultOperators := False;
end
26:
How can I disable the value keyword
with Expression1 do
begin
	AllowValueKeyword := False;
end
25:
Usage of and ( and operator )

with Expression1 do
begin
	SplitPaneWidth := 196;
	Expression := '(value contains 1) and (value != 1)';
end
24:
Usage of or ( or operator )

with Expression1 do
begin
	SplitPaneWidth := 196;
	Expression := '(value=1) or value=`string`';
end
23:
Usage of not ( not operator )

with Expression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'not(value=1)';
end
22:
Usage of - ( subtraction operator )

with Expression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'value - 2';
end
21:
Usage of + ( addition operator )

with Expression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'value + 2';
end
20:
Usage of mod ( reminder operator )

with Expression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'value mod 2';
end
19:
Usage of / (divide operator)

with Expression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'value / 2';
end
18:
Usage of * (multiplicity operator)

with Expression1 do
begin
	SplitPaneWidth := 196;
	Expression := '2 * value';
end
17:
How can I get the word from cursor when user double clicks the control
// DblClick event - Occurs when the user double clicks the left mouse button over an object.
procedure TForm1.Expression1DblClick(ASender: TObject; Shift : Smallint;X : Integer;Y : Integer);
begin
	with Expression1 do
	begin
		OutputDebugString( 'Word: ' );
		OutputDebugString( WordFromPoint[-1,-1,Null] );
	end
end;

with Expression1 do
begin
	Expression := 'value';
	AllowSplitter := EXPRESSIONLib_TLB.exVSplitter;
	SplitPaneHeight := 196;
end
16:
How do I determine the word from the cursor
// Click event - Occurs when the user presses and then releases the left mouse button over the list control.
procedure TForm1.Expression1Click(ASender: TObject; );
begin
	with Expression1 do
	begin
		OutputDebugString( 'Word: ' );
		OutputDebugString( WordFromPoint[-1,-1,Null] );
	end
end;

with Expression1 do
begin
	Expression := 'value';
	SplitPaneHeight := 196;
	Background[EXPRESSIONLib_TLB.exVSplitterApp] := $f0f0f0;
	AllowSplitter := EXPRESSIONLib_TLB.exVSplitter;
end
15:
How can I check if the expression is valid/syntactically correct
// Change event - Indicates that the control's text has changed.
procedure TForm1.Expression1Change(ASender: TObject; );
begin
	with Expression1 do
	begin
		OutputDebugString( 'Valid: ' );
		OutputDebugString( IsValid );
	end
end;

with Expression1 do
begin
	Expression := 'value';
	SplitPaneHeight := 196;
	Background[EXPRESSIONLib_TLB.exVSplitterApp] := $f0f0f0;
	AllowSplitter := EXPRESSIONLib_TLB.exVSplitter;
end
14:
How can I change the visual appearance of the horizontal splitter

with Expression1 do
begin
	Expression := 'value';
	SplitPaneHeight := 196;
	Background[EXPRESSIONLib_TLB.exVSplitterApp] := $f0f0f0;
	AllowSplitter := EXPRESSIONLib_TLB.exVSplitter;
end
13:
How can I change the visual appearance of the vertical splitter

with Expression1 do
begin
	Expression := 'value';
	SplitPaneWidth := 196;
	Background[EXPRESSIONLib_TLB.exHSplitterApp] := $f0f0f0;
end
12:
How can I add a new menu-item to control's context menu
// ExecuteContextMenu event - Occurs when the user selects an user item from the control's context menu.
procedure TForm1.Expression1ExecuteContextMenu(ASender: TObject; Item : WideString;Position : Integer);
begin
	with Expression1 do
	begin
		OutputDebugString( 'ExecuteContextMenu: ' );
		OutputDebugString( Item );
	end
end;

with Expression1 do
begin
	Expression := 'value + 100';
	ContextMenuItems := 'Test';
end
11:
How can I change the tooltip that shows when cursor hovers a keyword

with Expression1 do
begin
	Expression := 'value';
	Description[EXPRESSIONLib_TLB.exKeywordValue] := 'This is a bit of text to be shown when cursor hovers the <b>value</b> keyword.';
	Refresh();
end
10:
How do I check if the expression is correct
with Expression1 do
begin
	Expression := 'currency(value)';
	OutputDebugString( IsValid );
end
9:
How do I programmatically evaluate the expression
with Expression1 do
begin
	Expression := 'currency(value)';
	OutputDebugString( Evaluate['value=100'] );
end
8:
How can I assign multiple values for variables %1, %2, ...

with Expression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'currency(%1 + %2)';
	EvaluationText := '%1 = 100;%2 = 200';
end
7:
How can I change the values to show the result
with Expression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'currency(value)';
	EvaluationText := 'value = 100';
end
6:
How can I prevent changing the color when expression is invalid
with Expression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'value 2';
	ForeColorInvalid := RGB(0,0,0);
end
5:
How can I change the color when expression is invalid
with Expression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'value 2';
	ForeColorInvalid := RGB(255,0,0);
end
4:
How can I prevent evaluation the selection

with Expression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'value + 1';
	EvaluateSelection := False;
	HideSelection := False;
	SelLength := 1;
end
3:
How can I programatically show the result
with Expression1 do
begin
	SplitPaneWidth := 196;
	Expression := 'value';
end
2:
How can I get ride of the right-vertical line/split
with Expression1 do
begin
	AllowSplitter := EXPRESSIONLib_TLB.exNoSplitter;
	Expression := 'value + 1';
end
1:
How can I change the control's background
with Expression1 do
begin
	Expression := 'value';
	BackColor := RGB(240,240,240);
end